Imported Upstream version 3.6.3
authorHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:55:06 +0000 (10:55 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:57:09 +0000 (10:57 +0900)
Change-Id: I37f403f7fe83e4986d33ce0ede833f83dc0c78c1
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
519 files changed:
CHANGES.txt
PKG-INFO
doc/conf.py [deleted file]
doc/donating.txt [deleted file]
doc/html/FAQ.html
doc/html/api.html
doc/html/api/abc.ABCMeta-class.html
doc/html/api/api-objects.txt
doc/html/api/class-tree.html
doc/html/api/cssselect.parser.SelectorError-class.html
doc/html/api/cssselect.parser.SelectorSyntaxError-class.html
doc/html/api/cssselect.xpath.ExpressionError-class.html
doc/html/api/cssselect.xpath.XPathExpr-class.html
doc/html/api/deprecated-index.html
doc/html/api/exceptions.AssertionError-class.html
doc/html/api/help.html
doc/html/api/identifier-index-A.html
doc/html/api/identifier-index-B.html
doc/html/api/identifier-index-C.html
doc/html/api/identifier-index-D.html
doc/html/api/identifier-index-E.html
doc/html/api/identifier-index-F.html
doc/html/api/identifier-index-G.html
doc/html/api/identifier-index-H.html
doc/html/api/identifier-index-I.html
doc/html/api/identifier-index-J.html
doc/html/api/identifier-index-K.html
doc/html/api/identifier-index-L.html
doc/html/api/identifier-index-M.html
doc/html/api/identifier-index-N.html
doc/html/api/identifier-index-O.html
doc/html/api/identifier-index-P.html
doc/html/api/identifier-index-Q.html
doc/html/api/identifier-index-R.html
doc/html/api/identifier-index-S.html
doc/html/api/identifier-index-T.html
doc/html/api/identifier-index-U.html
doc/html/api/identifier-index-V.html
doc/html/api/identifier-index-W.html
doc/html/api/identifier-index-X.html
doc/html/api/identifier-index-Y.html
doc/html/api/identifier-index-Z.html
doc/html/api/identifier-index-_.html
doc/html/api/identifier-index.html
doc/html/api/lxml-module.html
doc/html/api/lxml-pysrc.html
doc/html/api/lxml.ElementInclude-module.html
doc/html/api/lxml.ElementInclude-pysrc.html
doc/html/api/lxml.ElementInclude.FatalIncludeError-class.html
doc/html/api/lxml.builder-module.html
doc/html/api/lxml.builder-pysrc.html
doc/html/api/lxml.builder.ElementMaker-class.html
doc/html/api/lxml.cssselect-module.html
doc/html/api/lxml.cssselect-pysrc.html
doc/html/api/lxml.cssselect.CSSSelector-class.html
doc/html/api/lxml.cssselect.LxmlHTMLTranslator-class.html
doc/html/api/lxml.cssselect.LxmlTranslator-class.html
doc/html/api/lxml.doctestcompare-module.html
doc/html/api/lxml.doctestcompare-pysrc.html
doc/html/api/lxml.doctestcompare.LHTMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare.LXMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare._RestoreChecker-class.html
doc/html/api/lxml.etree-module.html
doc/html/api/lxml.etree.AncestorsIterator-class.html
doc/html/api/lxml.etree.AttributeBasedElementClassLookup-class.html
doc/html/api/lxml.etree.C14NError-class.html
doc/html/api/lxml.etree.CDATA-class.html
doc/html/api/lxml.etree.CommentBase-class.html
doc/html/api/lxml.etree.CustomElementClassLookup-class.html
doc/html/api/lxml.etree.DTD-class.html
doc/html/api/lxml.etree.DTDError-class.html
doc/html/api/lxml.etree.DTDParseError-class.html
doc/html/api/lxml.etree.DTDValidateError-class.html
doc/html/api/lxml.etree.DocInfo-class.html
doc/html/api/lxml.etree.DocumentInvalid-class.html
doc/html/api/lxml.etree.ETCompatXMLParser-class.html
doc/html/api/lxml.etree.ETXPath-class.html
doc/html/api/lxml.etree.ElementBase-class.html
doc/html/api/lxml.etree.ElementChildIterator-class.html
doc/html/api/lxml.etree.ElementClassLookup-class.html
doc/html/api/lxml.etree.ElementDefaultClassLookup-class.html
doc/html/api/lxml.etree.ElementDepthFirstIterator-class.html
doc/html/api/lxml.etree.ElementNamespaceClassLookup-class.html
doc/html/api/lxml.etree.ElementTextIterator-class.html
doc/html/api/lxml.etree.EntityBase-class.html
doc/html/api/lxml.etree.Error-class.html
doc/html/api/lxml.etree.ErrorDomains-class.html
doc/html/api/lxml.etree.ErrorLevels-class.html
doc/html/api/lxml.etree.ErrorTypes-class.html
doc/html/api/lxml.etree.FallbackElementClassLookup-class.html
doc/html/api/lxml.etree.HTMLParser-class.html
doc/html/api/lxml.etree.HTMLPullParser-class.html
doc/html/api/lxml.etree.LxmlError-class.html
doc/html/api/lxml.etree.LxmlRegistryError-class.html
doc/html/api/lxml.etree.LxmlSyntaxError-class.html
doc/html/api/lxml.etree.NamespaceRegistryError-class.html
doc/html/api/lxml.etree.PIBase-class.html
doc/html/api/lxml.etree.ParseError-class.html
doc/html/api/lxml.etree.ParserBasedElementClassLookup-class.html
doc/html/api/lxml.etree.ParserError-class.html
doc/html/api/lxml.etree.PyErrorLog-class.html
doc/html/api/lxml.etree.PythonElementClassLookup-class.html
doc/html/api/lxml.etree.QName-class.html
doc/html/api/lxml.etree.RelaxNG-class.html
doc/html/api/lxml.etree.RelaxNGError-class.html
doc/html/api/lxml.etree.RelaxNGErrorTypes-class.html
doc/html/api/lxml.etree.RelaxNGParseError-class.html
doc/html/api/lxml.etree.RelaxNGValidateError-class.html
doc/html/api/lxml.etree.Resolver-class.html
doc/html/api/lxml.etree.Schematron-class.html
doc/html/api/lxml.etree.SchematronError-class.html
doc/html/api/lxml.etree.SchematronParseError-class.html
doc/html/api/lxml.etree.SchematronValidateError-class.html
doc/html/api/lxml.etree.SerialisationError-class.html
doc/html/api/lxml.etree.SiblingsIterator-class.html
doc/html/api/lxml.etree.TreeBuilder-class.html
doc/html/api/lxml.etree.XInclude-class.html
doc/html/api/lxml.etree.XIncludeError-class.html
doc/html/api/lxml.etree.XMLParser-class.html
doc/html/api/lxml.etree.XMLPullParser-class.html
doc/html/api/lxml.etree.XMLSchema-class.html
doc/html/api/lxml.etree.XMLSchemaError-class.html
doc/html/api/lxml.etree.XMLSchemaParseError-class.html
doc/html/api/lxml.etree.XMLSchemaValidateError-class.html
doc/html/api/lxml.etree.XMLSyntaxError-class.html
doc/html/api/lxml.etree.XPath-class.html
doc/html/api/lxml.etree.XPathDocumentEvaluator-class.html
doc/html/api/lxml.etree.XPathElementEvaluator-class.html
doc/html/api/lxml.etree.XPathError-class.html
doc/html/api/lxml.etree.XPathEvalError-class.html
doc/html/api/lxml.etree.XPathFunctionError-class.html
doc/html/api/lxml.etree.XPathResultError-class.html
doc/html/api/lxml.etree.XPathSyntaxError-class.html
doc/html/api/lxml.etree.XSLT-class.html
doc/html/api/lxml.etree.XSLTAccessControl-class.html
doc/html/api/lxml.etree.XSLTApplyError-class.html
doc/html/api/lxml.etree.XSLTError-class.html
doc/html/api/lxml.etree.XSLTExtension-class.html
doc/html/api/lxml.etree.XSLTExtensionError-class.html
doc/html/api/lxml.etree.XSLTParseError-class.html
doc/html/api/lxml.etree.XSLTSaveError-class.html
doc/html/api/lxml.etree._Attrib-class.html
doc/html/api/lxml.etree._BaseErrorLog-class.html
doc/html/api/lxml.etree._Comment-class.html
doc/html/api/lxml.etree._Document-class.html
doc/html/api/lxml.etree._DomainErrorLog-class.html
doc/html/api/lxml.etree._Element-class.html
doc/html/api/lxml.etree._ElementIterator-class.html
doc/html/api/lxml.etree._ElementMatchIterator-class.html
doc/html/api/lxml.etree._ElementStringResult-class.html
doc/html/api/lxml.etree._ElementTagMatcher-class.html
doc/html/api/lxml.etree._ElementTree-class.html
doc/html/api/lxml.etree._ElementUnicodeResult-class.html
doc/html/api/lxml.etree._Entity-class.html
doc/html/api/lxml.etree._ErrorLog-class.html
doc/html/api/lxml.etree._FeedParser-class.html
doc/html/api/lxml.etree._IDDict-class.html
doc/html/api/lxml.etree._ListErrorLog-class.html
doc/html/api/lxml.etree._LogEntry-class.html
doc/html/api/lxml.etree._ProcessingInstruction-class.html
doc/html/api/lxml.etree._RotatingErrorLog-class.html
doc/html/api/lxml.etree._SaxParserTarget-class.html
doc/html/api/lxml.etree._TargetParserResult-class.html
doc/html/api/lxml.etree._Validator-class.html
doc/html/api/lxml.etree._XPathEvaluatorBase-class.html
doc/html/api/lxml.etree._XSLTProcessingInstruction-class.html
doc/html/api/lxml.etree._XSLTResultTree-class.html
doc/html/api/lxml.etree.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.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.CElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreePullTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree._ETreeTestCaseBase-class.html
doc/html/api/lxml.tests.test_elementtree._XMLPullParserTest-class.html
doc/html/api/lxml.tests.test_errors-module.html
doc/html/api/lxml.tests.test_errors-pysrc.html
doc/html/api/lxml.tests.test_errors.ErrorTestCase-class.html
doc/html/api/lxml.tests.test_etree-module.html
doc/html/api/lxml.tests.test_etree-pysrc.html
doc/html/api/lxml.tests.test_etree.ETreeC14NTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeErrorLogTest-class.html
doc/html/api/lxml.tests.test_etree.ETreeOnlyTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeWriteTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeXIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree.ElementIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree.XMLPullParserTest-class.html
doc/html/api/lxml.tests.test_etree._XIncludeTestCase-class.html
doc/html/api/lxml.tests.test_htmlparser-module.html
doc/html/api/lxml.tests.test_htmlparser-pysrc.html
doc/html/api/lxml.tests.test_htmlparser.HtmlParserTestCase-class.html
doc/html/api/lxml.tests.test_http_io-module.html
doc/html/api/lxml.tests.test_http_io-pysrc.html
doc/html/api/lxml.tests.test_http_io.HttpIOTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile-module.html
doc/html/api/lxml.tests.test_incremental_xmlfile-pysrc.html
doc/html/api/lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.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_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-3.5.0.beta1.html [deleted file]
doc/html/changes-3.5.0.html [deleted file]
doc/html/changes-3.5.dev.html [deleted file]
doc/html/changes-3.6.3.html [moved from doc/html/changes-3.6.0.html with 98% 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/funding.html [deleted file]
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
doc/pdf/pubkey.asc [new file with mode: 0644]
doc/sitemap.txt [deleted file]
doc/sphinx/FAQ.html [deleted file]
doc/sphinx/Makefile [deleted file]
doc/sphinx/_images/tagpython.png [deleted file]
doc/sphinx/_sources/FAQ.txt [deleted file]
doc/sphinx/_sources/api.txt [deleted file]
doc/sphinx/_sources/build.txt [deleted file]
doc/sphinx/_sources/capi.txt [deleted file]
doc/sphinx/_sources/compatibility.txt [deleted file]
doc/sphinx/_sources/cssselect.txt [deleted file]
doc/sphinx/_sources/element_classes.txt [deleted file]
doc/sphinx/_sources/elementsoup.txt [deleted file]
doc/sphinx/_sources/extensions.txt [deleted file]
doc/sphinx/_sources/html/api/api-objects.txt [deleted file]
doc/sphinx/_sources/html5parser.txt [deleted file]
doc/sphinx/_sources/index.txt [deleted file]
doc/sphinx/_sources/intro.txt [deleted file]
doc/sphinx/_sources/licenses/BSD.txt [deleted file]
doc/sphinx/_sources/licenses/GPL.txt [deleted file]
doc/sphinx/_sources/licenses/ZopePublicLicense.txt [deleted file]
doc/sphinx/_sources/licenses/elementtree.txt [deleted file]
doc/sphinx/_sources/lxml-source-howto.txt [deleted file]
doc/sphinx/_sources/lxml2.txt [deleted file]
doc/sphinx/_sources/lxmlhtml.txt [deleted file]
doc/sphinx/_sources/main.txt [deleted file]
doc/sphinx/_sources/memorymanagement.txt [deleted file]
doc/sphinx/_sources/objectify.txt [deleted file]
doc/sphinx/_sources/parsing.txt [deleted file]
doc/sphinx/_sources/performance.txt [deleted file]
doc/sphinx/_sources/resolvers.txt [deleted file]
doc/sphinx/_sources/s5/lxml-ep2008.txt [deleted file]
doc/sphinx/_sources/sax.txt [deleted file]
doc/sphinx/_sources/sitemap.txt [deleted file]
doc/sphinx/_sources/tutorial.txt [deleted file]
doc/sphinx/_sources/valgrind.txt [deleted file]
doc/sphinx/_sources/validation.txt [deleted file]
doc/sphinx/_sources/xpathxslt.txt [deleted file]
doc/sphinx/_static/basic.css [deleted file]
doc/sphinx/_static/default.css [deleted file]
doc/sphinx/_static/pygments.css [deleted file]
doc/sphinx/_static/sphinxdoc.css [deleted file]
doc/sphinx/_static/tagpython-big.png [deleted file]
doc/sphinx/api.html [deleted file]
doc/sphinx/build.html [deleted file]
doc/sphinx/capi.html [deleted file]
doc/sphinx/compatibility.html [deleted file]
doc/sphinx/cssselect.html [deleted file]
doc/sphinx/element_classes.html [deleted file]
doc/sphinx/elementsoup.html [deleted file]
doc/sphinx/extensions.html [deleted file]
doc/sphinx/genindex.html [deleted file]
doc/sphinx/html/api/api-objects.html [deleted file]
doc/sphinx/html5parser.html [deleted file]
doc/sphinx/index.html [deleted file]
doc/sphinx/intro.html [deleted file]
doc/sphinx/licenses/BSD.html [deleted file]
doc/sphinx/licenses/GPL.html [deleted file]
doc/sphinx/licenses/ZopePublicLicense.html [deleted file]
doc/sphinx/licenses/elementtree.html [deleted file]
doc/sphinx/lxml-source-howto.html [deleted file]
doc/sphinx/lxml2.html [deleted file]
doc/sphinx/lxmlhtml.html [deleted file]
doc/sphinx/main.html [deleted file]
doc/sphinx/memorymanagement.html [deleted file]
doc/sphinx/objectify.html [deleted file]
doc/sphinx/parsing.html [deleted file]
doc/sphinx/performance.html [deleted file]
doc/sphinx/resolvers.html [deleted file]
doc/sphinx/s5/lxml-ep2008.html [deleted file]
doc/sphinx/sax.html [deleted file]
doc/sphinx/search.html [deleted file]
doc/sphinx/sitemap.html [deleted file]
doc/sphinx/tutorial.html [deleted file]
doc/sphinx/valgrind.html [deleted file]
doc/sphinx/validation.html [deleted file]
doc/sphinx/xpathxslt.html [deleted file]
setupinfo.py
src/lxml.egg-info/PKG-INFO
src/lxml.egg-info/SOURCES.txt
src/lxml.egg-info/requires.txt
src/lxml/includes/lxml-version.h
src/lxml/lxml.etree.c
src/lxml/lxml.objectify.c
tools/manylinux/build-wheels.sh
version.txt

index 6f9a579..1d7f94f 100644 (file)
@@ -2,6 +2,12 @@
 lxml changelog
 ==============
 
+3.6.3 (2016-08-18)
+==================
+
+* release without source changes to provide cleanly built Linux wheels
+
+
 3.6.2 (2016-08-18)
 ==================
 
index d6a6f22..90b8e97 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.6.2
+Version: 3.6.3
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
@@ -36,7 +36,7 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         as soon as a maintenance branch has been established.  Note that this
         requires Cython to be installed at an appropriate version for the build.
         
-        3.6.2 (2016-08-18)
+        3.6.3 (2016-08-18)
         ==================
         
         * release without source changes to provide cleanly built Linux wheels
diff --git a/doc/conf.py b/doc/conf.py
deleted file mode 100644 (file)
index bd6ec38..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# lxml documentation build configuration file, created by
-# sphinx-quickstart on Thu Mar 10 22:53:40 2011.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.append(os.path.abspath('.'))
-
-# -- General configuration -----------------------------------------------------
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.coverage']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.txt'
-
-# The encoding of source files.
-#source_encoding = 'utf-8'
-
-# The master toctree document.
-master_doc = 'main'
-
-# General information about the project.
-project = u'lxml'
-copyright = u'2011, Stefan Behnel et al.'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '2.3'
-# The full version, including alpha/beta/rc tags.
-release = '2.3'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-language = 'en' # None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of documents that shouldn't be included in the build.
-unused_docs = ['licenses/GPL', 'licenses/BSD', 'licenses/ZopePublicLicense', 'licenses/elementtree',
-               'lxml2', 'memorymanagement', 'valgrind']
-
-# List of directories, relative to source directory, that shouldn't be searched
-# for source files.
-exclude_trees = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  Major themes that come with
-# Sphinx are currently 'default' and 'sphinxdoc'.
-html_theme = 'default'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-html_title = "lxml v%s - Processing XML and HTML with Python" % release
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-html_logo = '_static/python-xml-title.png' # None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = 'favicon.ico'
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_use_modindex = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'lxmldoc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-latex_documents = [
-  ('main', 'lxml.tex', u'lxml Documentation',
-   u'Stefan Behnel', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_use_modindex = True
diff --git a/doc/donating.txt b/doc/donating.txt
deleted file mode 100644 (file)
index 0e1a2df..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-=====================
-Donate to the project
-=====================
-
-PayPal donations are used to cover the costs for project hosting, general
-maintenance and support.  Basically, they are what keeps the free lxml
-software alive for everyone to use.
-
-If, instead, you are interested in financing the development of specific
-features or the resolution of a specific problem, get in touch with the
-lead developer, `Stefan Behnel <http://consulting.behnel.de/>`_.
-
-
-Making a one-time donation
---------------------------
-
-When you click the PayPal icon, you will be taken to the PayPal website
-where you can donate any amount up to ten thousand US dollars or the
-equivalent in another currency to the lxml project.  Note that you do
-not have to create a PayPal account in order to donate money to the
-lxml project.  You can also pay with your credit card or by other means
-directly.  Please make sure you have read the legal notice at the bottom
-of this page.
-
-ONETIMEBUTTON
-
-Regular contribution each month
--------------------------------
-
-If you would like to donate money to the lxml project each month through
-your PayPal subscription, please select a currency and amount and then
-click the PayPal icon.  You will be taken to the PayPal website where
-you can initiate the monthly donation.  After that, your credit card will
-be automatically charged each month via PayPal until you cancel this
-monthly donation.  If you do not have a PayPal account, you will need to
-create one on the PayPal website.  Please make sure you have read the
-legal notice at the bottom of this page.
-
-REGULARBUTTON
-
-------
-
-Legal notice
-    By making a donation to the lxml project you state that you have
-    acknowledged, understood, accepted, and agreed to the terms and
-    conditions contained in this notice.  Your donation to the lxml
-    project is voluntary and is not a fee for any services, goods,
-    or advantages.  Making a donation to the lxml project does not
-    entitle you to any services, goods, or advantages.  We have the
-    right to use the money you donate to the lxml project in any
-    lawful way and for any lawful purpose we see fit and we are not
-    obligated to disclose the way and purpose to any party unless
-    required by applicable law.  Although lxml is free software, to
-    our best knowledge the lxml project does not have any tax exempt
-    status.  The lxml project is neither a registered non-profit
-    corporation nor a registered charity in any country. Your donation
-    may or may not be tax-deductible; please consult your tax advisor
-    in this matter.  We will not publish or disclose your name and/or
-    e-mail address without your consent, unless required by applicable
-    law.  Your donation is non-refundable.
index dd66f64..6c71081 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -185,7 +185,7 @@ a web server accelerator with on-the-fly XSLT processing</li>
 a secure HTTP proxy</li>
 <li><a class="reference external" href="http://pypi.python.org/pypi/lwebstring">lwebstring</a>,
 an XML template engine</li>
-<li><a class="reference external" href="https://openpyxl.readthedocs.org/">openpyxl</a>,
+<li><a class="reference external" href="https://openpyxl.readthedocs.io/">openpyxl</a>,
 a library to read/write MS Excel 2007 files</li>
 <li><a class="reference external" href="http://permalink.gmane.org/gmane.comp.python.lxml.devel/3250">OpenXMLlib</a>,
 a library for handling OpenXML document meta data</li>
@@ -263,19 +263,19 @@ also the section on <a class="reference external" href="#threading">threading</a
 <p>The ElementTree tree model defines an Element as a container with a tag name,
 contained text, child Elements and a tail text.  This means that whenever you
 serialise an Element, you will get all parts of that Element:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;tag&gt;text&lt;child/&gt;&lt;/tag&gt;tail&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;tag&gt;text&lt;child/&gt;&lt;/tag&gt;tail&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
 <span class="go">&lt;tag&gt;text&lt;child/&gt;&lt;/tag&gt;tail</span>
 </pre></div>
 <p>Here is an example that shows why not serialising the tail would be
 even more surprising from an object point of view:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"test"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"test"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"TEXT"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"TEXT"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">&lt;test&gt;TEXT&lt;/test&gt;</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s">"TAIL"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s2">"TAIL"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">&lt;test&gt;TEXT&lt;/test&gt;TAIL</span>
 
@@ -297,7 +297,7 @@ places, as most HTML algorithms benefit from a tail-free behaviour.</p>
 </div>
 <div class="section" id="how-can-i-find-out-if-an-element-is-a-comment-or-pi">
 <h2>How can I find out if an Element is a comment or PI?</h2>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;?my PI?&gt;&lt;root&gt;&lt;!-- empty --&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;?my PI?&gt;&lt;root&gt;&lt;!-- empty --&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'root'</span>
@@ -491,12 +491,12 @@ versions of libxml2 and libxslt - and make sure they are used.
 <div class="syntax"><pre><span class="kn">import</span> <span class="nn">sys</span>
 <span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
 
-<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="s">'Python'</span><span class="p">,</span>           <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="s">'lxml.etree'</span><span class="p">,</span>       <span class="n">etree</span><span class="o">.</span><span class="n">LXML_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="s">'libxml used'</span><span class="p">,</span>      <span class="n">etree</span><span class="o">.</span><span class="n">LIBXML_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="s">'libxml compiled'</span><span class="p">,</span>  <span class="n">etree</span><span class="o">.</span><span class="n">LIBXML_COMPILED_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="s">'libxslt used'</span><span class="p">,</span>     <span class="n">etree</span><span class="o">.</span><span class="n">LIBXSLT_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="s">'libxslt compiled'</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">LIBXSLT_COMPILED_VERSION</span><span class="p">))</span>
+<span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%-20s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="s1">'Python'</span><span class="p">,</span>           <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">))</span>
+<span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%-20s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="s1">'lxml.etree'</span><span class="p">,</span>       <span class="n">etree</span><span class="o">.</span><span class="n">LXML_VERSION</span><span class="p">))</span>
+<span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%-20s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="s1">'libxml used'</span><span class="p">,</span>      <span class="n">etree</span><span class="o">.</span><span class="n">LIBXML_VERSION</span><span class="p">))</span>
+<span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%-20s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="s1">'libxml compiled'</span><span class="p">,</span>  <span class="n">etree</span><span class="o">.</span><span class="n">LIBXML_COMPILED_VERSION</span><span class="p">))</span>
+<span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%-20s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="s1">'libxslt used'</span><span class="p">,</span>     <span class="n">etree</span><span class="o">.</span><span class="n">LIBXSLT_VERSION</span><span class="p">))</span>
+<span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%-20s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="s1">'libxslt compiled'</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">LIBXSLT_COMPILED_VERSION</span><span class="p">))</span>
 </pre></div>
 <p>If you can figure that the problem is not in lxml but in the
 underlying libxml2 or libxslt, you can ask right on the respective
@@ -731,7 +731,7 @@ e.g. in the page header, between table structure tags, etc.  Therefore,
 it is also safe to use this option with the HTMLParser, as it will keep
 content like the following intact (i.e. it will not remove the space
 that separates the two words):</p>
-<div class="syntax"><pre><span class="nt">&lt;p&gt;&lt;b&gt;</span>some<span class="nt">&lt;/b&gt;</span> <span class="nt">&lt;em&gt;</span>text<span class="nt">&lt;/em&gt;&lt;/p&gt;</span>
+<div class="syntax"><pre><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;&lt;</span><span class="nt">b</span><span class="p">&gt;</span>some<span class="p">&lt;/</span><span class="nt">b</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">em</span><span class="p">&gt;</span>text<span class="p">&lt;/</span><span class="nt">em</span><span class="p">&gt;&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
 </pre></div>
 <p>If you want to be sure all blank text is removed from an XML document
 (or just more blank text than the parser does by itself), you have to
@@ -955,7 +955,7 @@ map it to your namespace.  See also the question above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 211a309..b7a4d8d 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -81,12 +81,12 @@ mapping between libxml2 nodes and the Element classes used by lxml.etree.</p>
 <h1>Trees and Documents</h1>
 <p>Compared to the original ElementTree API, lxml.etree has an extended tree
 model.  It knows about parents and siblings of elements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"a"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"c"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"d"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">d</span><span class="p">,</span>    <span class="s">"e"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"a"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"c"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"d"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">d</span><span class="p">,</span>    <span class="s2">"e"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">b</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span> <span class="o">==</span> <span class="n">root</span>
 <span class="go">True</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">b</span><span class="o">.</span><span class="n">getnext</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -162,15 +162,15 @@ itself, as opposed to <tt class="docutils literal">element.iter()</tt>.  The lat
 implements the 'descendant-or-self' axis in XPath.</p>
 <p>All of these iterators support one (or more, since lxml 3.0) additional
 arguments that filter the generated elements by tag name:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="s">'a'</span><span class="p">)</span> <span class="p">]</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['a']</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="s">'a'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">[]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterdescendants</span><span class="p">(</span><span class="s">'d'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterdescendants</span><span class="p">(</span><span class="s1">'d'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['d']</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'d'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'d'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['d']</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'d'</span><span class="p">,</span> <span class="s">'a'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'d'</span><span class="p">,</span> <span class="s1">'a'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['a', 'd']</span>
 </pre></div>
 <p>Note that the order of the elements is determined by the iteration order,
@@ -183,8 +183,8 @@ traverses the tree in document order.  This is implemented by the
 <tt class="docutils literal">.iter()</tt> method.  While there is no dedicated method for
 breadth-first traversal, it is almost as simple if you use the
 <tt class="docutils literal">collections.deque</tt> type that is available in Python 2.4 and later.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/root&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">))</span>
 <span class="go">&lt;root&gt;</span>
 <span class="go">  &lt;a&gt;</span>
 <span class="go">    &lt;b/&gt;</span>
@@ -197,8 +197,8 @@ breadth-first traversal, it is almost as simple if you use the
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([</span><span class="n">root</span><span class="p">])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-<span class="gp">... </span>   <span class="n">el</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>  <span class="c"># pop next element</span>
-<span class="gp">... </span>   <span class="n">queue</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>      <span class="c"># append its children</span>
+<span class="gp">... </span>   <span class="n">el</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>  <span class="c1"># pop next element</span>
+<span class="gp">... </span>   <span class="n">queue</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>      <span class="c1"># append its children</span>
 <span class="gp">... </span>   <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">root</span>
 <span class="go">a</span>
@@ -221,15 +221,15 @@ application level.  Whenever an exception is raised, you can retrieve the
 errors that occurred and "might have" lead to the problem from the error log
 copy attached to the exception:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">clear_error_log</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">broken_xml</span> <span class="o">=</span> <span class="s">'''</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">'''</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">broken_xml</span> <span class="o">=</span> <span class="s1">'''</span>
+<span class="gp">... </span><span class="s1">&lt;root&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;a&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">try</span><span class="p">:</span>
 <span class="gp">... </span>  <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">broken_xml</span><span class="p">))</span>
 <span class="gp">... </span><span class="k">except</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSyntaxError</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
-<span class="gp">... </span>  <span class="k">pass</span> <span class="c"># just put the exception into e</span>
+<span class="gp">... </span>  <span class="k">pass</span> <span class="c1"># just put the exception into e</span>
 </pre></div>
 <p>Once you have caught this exception, you can access its <tt class="docutils literal">error_log</tt> property
 to retrieve the log entries or filter them by a specific type, error domain or
@@ -279,7 +279,7 @@ the local error logs of XSLT, XMLSchema, etc.</p>
 <p>lxml.etree has direct support for pretty printing XML output.  Functions like
 <tt class="docutils literal">ElementTree.write()</tt> and <tt class="docutils literal">tostring()</tt> support it through a keyword
 argument:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;test/&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;test/&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">b'&lt;root&gt;&lt;test/&gt;&lt;/root&gt;'</span>
 
@@ -292,12 +292,12 @@ argument:</p>
 output.  It was added in lxml 2.0.</p>
 <p>By default, lxml (just as ElementTree) outputs the XML declaration only if it
 is required by the standard:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span> <span class="s">u"t</span><span class="se">\u3120</span><span class="s">st"</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">u"t</span><span class="se">\u0A0A</span><span class="s">st"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"utf-8"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span> <span class="s2">u"t</span><span class="se">\u3120</span><span class="s2">st"</span> <span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">u"t</span><span class="se">\u0A0A</span><span class="s2">st"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span>
 <span class="go">b'&lt;t\xe3\x84\xa0st&gt;t\xe0\xa8\x8ast&lt;/t\xe3\x84\xa0st&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"iso-8859-1"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"iso-8859-1"</span><span class="p">))</span>
 <span class="go">&lt;?xml version='1.0' encoding='iso-8859-1'?&gt;</span>
 <span class="go">&lt;t&amp;#12576;st&gt;t&amp;#2570;st&lt;/t&amp;#12576;st&gt;</span>
 </pre></div>
@@ -309,23 +309,23 @@ keyword argument for the serialisation:</p>
 <span class="go">&lt;root&gt;&lt;test/&gt;&lt;/root&gt;</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"UTF-16LE"</span><span class="p">,</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"UTF-16LE"</span><span class="p">,</span>
 <span class="gp">... </span>                             <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 <span class="go">b'&lt;\x00t\x00 1s\x00t\x00/\x00&gt;\x00'</span>
 </pre></div>
 <p>Note that a standard compliant XML parser will not consider the last line
 well-formed XML if the encoding is not explicitly provided somehow, e.g. in an
 underlying transport protocol:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">notxml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"UTF-16LE"</span><span class="p">,</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">notxml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"UTF-16LE"</span><span class="p">,</span>
 <span class="gp">... </span>                                      <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">notxml</span><span class="p">)</span>        <span class="c">#doctest: +ELLIPSIS</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">notxml</span><span class="p">)</span>        <span class="c1">#doctest: +ELLIPSIS</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">...</span>
 </pre></div>
 <p>Since version 2.3, the serialisation can override the internal subset
 of the document with a user provided DOCTYPE:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;!DOCTYPE root&gt;</span><span class="se">\n</span><span class="s">&lt;root/&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;!DOCTYPE root&gt;</span><span class="se">\n</span><span class="s1">&lt;root/&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">))</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">))</span>
@@ -333,7 +333,7 @@ of the document with a user provided DOCTYPE:</p>
 <span class="go">&lt;root/&gt;</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">doctype</span><span class="o">=</span><span class="s">'&lt;!DOCTYPE root SYSTEM "/tmp/test.dtd"&gt;'</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="n">doctype</span><span class="o">=</span><span class="s1">'&lt;!DOCTYPE root SYSTEM "/tmp/test.dtd"&gt;'</span><span class="p">))</span>
 <span class="go">&lt;!DOCTYPE root SYSTEM "/tmp/test.dtd"&gt;</span>
 <span class="go">&lt;root/&gt;</span>
 </pre></div>
@@ -445,7 +445,7 @@ document is required to adhere to existing XML language definitions.
 For these special cases, you can instruct the parser to leave CDATA
 sections in the document:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">strip_cdata</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span>
 <span class="go">'test'</span>
 
@@ -456,7 +456,7 @@ sections in the document:</p>
 text content is wrapped by a CDATA section.  If you want to make sure
 your data is wrapped by a CDATA block, you can use the <tt class="docutils literal">CDATA()</tt>
 text wrapper:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">'test'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'test'</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span>
 <span class="go">'test'</span>
@@ -475,11 +475,11 @@ text wrapper:</p>
 <h1>XInclude and ElementInclude</h1>
 <p>You can let lxml process xinclude statements in a document by calling the
 xinclude() method on a tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">data</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</span>
-<span class="gp">... </span><span class="s">&lt;foo/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;xi:include href="doc/test.xml" /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/doc&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">data</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;foo/&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;xi:include href="doc/test.xml" /&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/doc&gt;'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">xinclude</span><span class="p">()</span>
@@ -501,18 +501,18 @@ resolvers, you have to stick to the external Python module.</p>
 object as argument.  This file object will receive an UTF-8 representation of
 the canonicalized form of the XML, following the W3C C14N recommendation.  For
 example:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">f2</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">write_c14n</span><span class="p">(</span><span class="n">f2</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">f2</span><span class="o">.</span><span class="n">getvalue</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">"utf-8"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">f2</span><span class="o">.</span><span class="n">getvalue</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">"utf-8"</span><span class="p">))</span>
 <span class="go">&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;</span>
 </pre></div>
 </div>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 78c9a1d..b613fa4 100644 (file)
@@ -259,7 +259,7 @@ even via super()).</p>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_invalidation_counter"></a><span class="summary-name">_abc_invalidation_counter</span> = <code title="22">22</code>
+        <a name="_abc_invalidation_counter"></a><span class="summary-name">_abc_invalidation_counter</span> = <code title="21">21</code>
     </td>
   </tr>
 </table>
@@ -426,7 +426,8 @@ even via super()).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 83e1cf9..a7107f0 100644 (file)
@@ -1,6 +1,3 @@
-lxml   lxml-module.html
-lxml.get_include       lxml-module.html#get_include
-lxml.__package__       lxml-module.html#__package__
 lxml.ElementInclude    lxml.ElementInclude-module.html
 lxml.ElementInclude.include    lxml.ElementInclude-module.html#include
 lxml.ElementInclude.XINCLUDE_INCLUDE   lxml.ElementInclude-module.html#XINCLUDE_INCLUDE
@@ -11,6 +8,9 @@ lxml.ElementInclude._lxml_default_loader       lxml.ElementInclude-module.html#_lxml_d
 lxml.ElementInclude.XINCLUDE   lxml.ElementInclude-module.html#XINCLUDE
 lxml.ElementInclude._wrap_et_loader    lxml.ElementInclude-module.html#_wrap_et_loader
 lxml.ElementInclude.default_loader     lxml.ElementInclude-module.html#default_loader
+lxml   lxml-module.html
+lxml.get_include       lxml-module.html#get_include
+lxml.__package__       lxml-module.html#__package__
 lxml.builder   lxml.builder-module.html
 lxml.builder.E lxml.builder-module.html#E
 lxml.builder.__package__       lxml.builder-module.html#__package__
@@ -79,6 +79,12 @@ lxml.etree.clear_error_log   lxml.etree-module.html#clear_error_log
 lxml.etree.fromstringlist      lxml.etree-module.html#fromstringlist
 lxml.etree.Element     lxml.etree-module.html#Element
 lxml.etree.fromstring  lxml.etree-module.html#fromstring
+lxml.html.ElementSoup  lxml.html.ElementSoup-module.html
+lxml.html.ElementSoup.parse    lxml.html.ElementSoup-module.html#parse
+lxml.html.ElementSoup._parse   lxml.html.soupparser-module.html#parse
+lxml.html.ElementSoup.convert_tree     lxml.html.ElementSoup-module.html#convert_tree
+lxml.html.ElementSoup.__doc__  lxml.html.ElementSoup-module.html#__doc__
+lxml.html.ElementSoup.__package__      lxml.html.ElementSoup-module.html#__package__
 lxml.html      lxml.html-module.html
 lxml.html._rel_links_xpath     lxml.html-module.html#_rel_links_xpath
 lxml.html._looks_like_full_html_unicode        lxml.html-module.html#_looks_like_full_html_unicode
@@ -123,12 +129,6 @@ lxml.html._transform_result        lxml.html-module.html#_transform_result
 lxml.html.find_rel_links       lxml.html-module.html#find_rel_links
 lxml.html.open_http_urllib     lxml.html-module.html#open_http_urllib
 lxml.html.xhtml_to_html        lxml.html-module.html#xhtml_to_html
-lxml.html.ElementSoup  lxml.html.ElementSoup-module.html
-lxml.html.ElementSoup.parse    lxml.html.ElementSoup-module.html#parse
-lxml.html.ElementSoup._parse   lxml.html.soupparser-module.html#parse
-lxml.html.ElementSoup.convert_tree     lxml.html.ElementSoup-module.html#convert_tree
-lxml.html.ElementSoup.__doc__  lxml.html.ElementSoup-module.html#__doc__
-lxml.html.ElementSoup.__package__      lxml.html.ElementSoup-module.html#__package__
 lxml.html.builder      lxml.html.builder-module.html
 lxml.html.builder.BLOCKQUOTE   lxml.html.builder-module.html#BLOCKQUOTE
 lxml.html.builder.OBJECT       lxml.html.builder-module.html#OBJECT
@@ -2807,10 +2807,10 @@ lxml.html.Classes       lxml.html.Classes-class.html
 _abcoll.Sized.__metaclass__    abc.ABCMeta-class.html
 lxml.html.Classes._abc_negative_cache  lxml.html.Classes-class.html#_abc_negative_cache
 lxml.html.Classes.toggle       lxml.html.Classes-class.html#toggle
+lxml.html.Classes.__init__     lxml.html.Classes-class.html#__init__
 lxml.html.Classes.__contains__ lxml.html.Classes-class.html#__contains__
 lxml.html.Classes.__abstractmethods__  lxml.html.Classes-class.html#__abstractmethods__
 lxml.html.Classes.add  lxml.html.Classes-class.html#add
-lxml.html.Classes.__init__     lxml.html.Classes-class.html#__init__
 lxml.html.Classes.__len__      lxml.html.Classes-class.html#__len__
 lxml.html.Classes.update       lxml.html.Classes-class.html#update
 lxml.html.Classes.__iter__     lxml.html.Classes-class.html#__iter__
@@ -3554,6 +3554,7 @@ lxml.html.clean.Cleaner.whitelist_tags    lxml.html.clean.Cleaner-class.html#whitel
 lxml.html.clean.Cleaner.__call__       lxml.html.clean.Cleaner-class.html#__call__
 lxml.html.clean.Cleaner.remove_tags    lxml.html.clean.Cleaner-class.html#remove_tags
 lxml.html.clean.Cleaner._kill_elements lxml.html.clean.Cleaner-class.html#_kill_elements
+lxml.html.clean.Cleaner.inline_style   lxml.html.clean.Cleaner-class.html#inline_style
 lxml.html.clean.Cleaner._has_sneaky_javascript lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript
 lxml.html.clean.Cleaner.processing_instructions        lxml.html.clean.Cleaner-class.html#processing_instructions
 lxml.html.clean.Cleaner.javascript     lxml.html.clean.Cleaner-class.html#javascript
@@ -6813,6 +6814,7 @@ lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_i
 lxml.tests.test_objectify.ObjectifyTestCase.etree      lxml.etree-module.html
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_custom_prefixes    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes
 lxml.tests.test_objectify.ObjectifyTestCase.test_xsitype_deannotate    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate
+lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_default_relative  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_custom     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom
 lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_complex   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex
 lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail_parse_empty  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty
@@ -6844,6 +6846,7 @@ lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_intliteral     lxml.tests
 lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create_list   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list
 lxml.tests.test_objectify.ObjectifyTestCase.test_date_element_efactory_text    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text
 lxml.tests.test_objectify.ObjectifyTestCase.test_root  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root
+lxml.tests.test_objectify.ObjectifyTestCase.test_type_float_precision  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision
 lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_empty        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty
 lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_int       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr_floatliteral        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral
@@ -6871,7 +6874,7 @@ lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_element      lxm
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_default    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default
 lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi_nsmap lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap
 lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_subtype      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype_xsitype  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype
+lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_float_hash_repr  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash_repr
 lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_elements     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements
 lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod
 lxml.tests.test_objectify.ObjectifyTestCase.test_child_index   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index
@@ -6909,8 +6912,10 @@ lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi lxml.tests.test
 lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_partial_neg  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_element_arg      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg
 lxml.tests.test_objectify.ObjectifyTestCase.test_type_none_cmp lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp
+lxml.tests.test_objectify.ObjectifyTestCase.test_type_float_instantiation_precision    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_instantiation_precision
 lxml.tests.test_objectify.ObjectifyTestCase.test_child_len     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytype_none      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none
+lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod_data_elements    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements
 lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_insert       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_empty      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty
 lxml.tests.test_objectify.ObjectifyTestCase.test_schema_types_prefixed lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed
@@ -6927,7 +6932,7 @@ lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_add    lxml.tests.test_o
 lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_root  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root
 lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_hasattr   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr
 lxml.tests.test_objectify.ObjectifyTestCase.test_XML_base_url_docinfo  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_default_relative  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative
+lxml.tests.test_objectify.ObjectifyTestCase.test_type_float_precision_consistency      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision_consistency
 lxml.tests.test_objectify.ObjectifyTestCase.test_xsiannotate_use_old   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old
 lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytype_none_compat       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat
@@ -6960,13 +6965,14 @@ lxml.tests.test_objectify.ObjectifyTestCase.test_child  lxml.tests.test_objectify
 lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_floatliteral lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral
 lxml.tests.test_objectify.ObjectifyTestCase.test_parse_base_url_docinfo        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo
 lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_custom  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom
+lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_float_precision  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_precision
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_bool     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool
 lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_insert_neg   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg
 lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_value_concatenation  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation
 lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_deannotate     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate
 lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_neg  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg
 lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_int  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod_data_elements    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements
+lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype_xsitype  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype
 lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_invalid_pytype   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype
 lxml.tests.test_objectify.ObjectifyTestCase.test_setattr_nonunicode    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode
 lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_empty       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty
@@ -7373,7 +7379,6 @@ lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_invalid        lxml.tests.te
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_shortcut      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_allow  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_message       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_invalid_stylesheet    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_unicode       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_message_terminate     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input
@@ -7391,6 +7396,7 @@ lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt  lxml.tests.test_xslt.ETreeXSLTT
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_error        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_empty lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_missing     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing
+lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_invalid_stylesheet    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_encoding_override     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_include_from_filelike lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_elementtree_error     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error
index a6fd77c..3b1d73f 100644 (file)
@@ -659,11 +659,11 @@ Immutable object that represents a compiled object path.</em>
       <em class="summary">PyType(self, name, type_check, type_class, stringify=None)
 User defined type.</em>
     </li>
+    <li> <strong class="uidlink"><a href="xml.etree.ElementTree.QName-class.html">xml.etree.ElementTree.QName</a></strong>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.QName-class.html">lxml.etree.QName</a></strong>:
       <em class="summary">QName(text_or_uri_or_element, tag=None)</em>
     </li>
-    <li> <strong class="uidlink"><a href="xml.etree.ElementTree.QName-class.html">xml.etree.ElementTree.QName</a></strong>
-    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.RelaxNGErrorTypes-class.html">lxml.etree.RelaxNGErrorTypes</a></strong>:
       <em class="summary">Libxml2 RelaxNG error types</em>
     </li>
@@ -915,7 +915,7 @@ A global error log that connects to the Python stdlib logging package.</em>
     <li> <strong class="uidlink"><a href="lxml.etree._FeedParser-class.html" onclick="show_private();">lxml.etree._FeedParser</a></strong>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.etree.HTMLParser-class.html">lxml.etree.HTMLParser</a></strong>:
-      <em class="summary">HTMLParser(self, encoding=None, remove_blank_text=False,                    remove_comments=False, remove_pis=False, strip_cdata=True,                    no_network=True, target=None, XMLSchema schema=None,                    recover=True, compact=True)</em>
+      <em class="summary">HTMLParser(self, encoding=None, remove_blank_text=False,                    remove_comments=False, remove_pis=False, strip_cdata=True,                    no_network=True, target=None, schema: XMLSchema =None,                    recover=True, compact=True)</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.html.HTMLParser-class.html">lxml.html.HTMLParser</a></strong>:
       <em class="summary">An HTML parser that is configured to return lxml.html Element
@@ -1123,13 +1123,13 @@ A DTD validator.</em>
       <em class="summary">RelaxNG(self, etree=None, file=None)
 Turn a document into a Relax NG validator.</em>
     </li>
-    <li> <strong class="uidlink"><a href="lxml.isoschematron.Schematron-class.html">lxml.isoschematron.Schematron</a></strong>:
-      <em class="summary">An ISO Schematron validator.</em>
-    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.Schematron-class.html">lxml.etree.Schematron</a></strong>:
       <em class="summary">Schematron(self, etree=None, file=None)
 A Schematron validator.</em>
     </li>
+    <li> <strong class="uidlink"><a href="lxml.isoschematron.Schematron-class.html">lxml.isoschematron.Schematron</a></strong>:
+      <em class="summary">An ISO Schematron validator.</em>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.XMLSchema-class.html">lxml.etree.XMLSchema</a></strong>:
       <em class="summary">XMLSchema(self, etree=None, file=None)
 Turn a document into an XML Schema validator.</em>
@@ -1319,7 +1319,8 @@ type(name, bases, dict) -&gt; a new type</em>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 93670e1..81ad28a 100644 (file)
@@ -194,7 +194,8 @@ You can just use ``except SelectorError:`` when calling
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6cfba36..360d00e 100644 (file)
@@ -201,7 +201,8 @@ Parsing a selector that does not match the grammar.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 386d952..2a3e6a9 100644 (file)
@@ -193,7 +193,8 @@ Unknown or unsupported selector (eg. pseudo-class).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 232f5a9..ac04bfd 100644 (file)
@@ -379,7 +379,8 @@ to a single parent.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0d6484b..a99d6fe 100644 (file)
@@ -145,7 +145,8 @@ with older versions of lxml or ElementTree.</li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dfc87b8..d30473f 100644 (file)
@@ -280,7 +280,8 @@ Assertion failed.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2dd5306..b560239 100644 (file)
@@ -256,7 +256,8 @@ page was last updated. </p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c5bfb8e..8e50d14 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2b33611..a4dbc88 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3eda222..650f4a9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed7647f..ddd7763 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 37d85b7..8da28fa 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 07b6681..a242a0b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3712165..8c10302 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 331c9f2..be736bc 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b49838..0f038f9 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ECONNREFUSED">IO_ECONNREFUSED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_WRITE">IO_WRITE</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#is_attribute">is_attribute</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#I18N">I18N</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EDEADLK">IO_EDEADLK</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#is_attribute">is_attribute</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#is_end_tag">is_end_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#I18N_CONV_FAILED">I18N_CONV_FAILED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EDOM">IO_EDOM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#is_end_tag">is_end_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#IS_PYPY">IS_PYPY</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#I18N_EXCESS_HANDLER">I18N_EXCESS_HANDLER</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EEXIST">IO_EEXIST</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#IS_PYPY">IS_PYPY</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#IS_PYTHON3">IS_PYTHON3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EFAULT">IO_EFAULT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#IS_PYTHON3">IS_PYTHON3</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#is_python3">is_python3</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#I18N_NO_NAME">I18N_NO_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EFBIG">IO_EFBIG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#is_python3">is_python3</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#is_start_tag">is_start_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#I18N_NO_OUTPUT">I18N_NO_OUTPUT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EINPROGRESS">IO_EINPROGRESS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#is_start_tag">is_start_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#is_tail">is_tail</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#IFRAME">IFRAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EINTR">IO_EINTR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#is_tail">is_tail</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#is_text">is_text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EINVAL">IO_EINVAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#is_text">is_text</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#is_word">is_word()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#include">include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EIO">IO_EIO</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#is_word">is_word()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#iselement">iselement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EISCONN">IO_EISCONN</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html#iselement">iselement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#ISINDEX">ISINDEX</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EISDIR">IO_EISDIR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#ISINDEX">ISINDEX</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#iso_abstract_expand">iso_abstract_expand</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.includes-module.html">includes</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EMFILE">IO_EMFILE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#iso_abstract_expand">iso_abstract_expand</a><br />
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#iso_dsdl_include">iso_dsdl_include</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare-module.html">lxml.tests.test_doctestcompare</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EMLINK">IO_EMLINK</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#iso_dsdl_include">iso_dsdl_include</a><br />
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#iso_svrl_for_xslt1">iso_svrl_for_xslt1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EMSGSIZE">IO_EMSGSIZE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#iso_svrl_for_xslt1">iso_svrl_for_xslt1</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#INPUT">INPUT</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENAMETOOLONG">IO_ENAMETOOLONG</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html">isoschematron</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html">InputElement</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENCODER">IO_ENCODER</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#inline_style">inline_style</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENAMETOOLONG">IO_ENAMETOOLONG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#item_count">item_count</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html">InputGetter</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENETUNREACH">IO_ENETUNREACH</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#INPUT">INPUT</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENCODER">IO_ENCODER</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#items">items()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html">InputMixin</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENFILE">IO_ENFILE</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html">InputElement</a></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENETUNREACH">IO_ENETUNREACH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#items">items()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#inputs">inputs</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENODEV">IO_ENODEV</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html">InputGetter</a></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENFILE">IO_ENFILE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#items">items()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#INS">INS</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOENT">IO_ENOENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html">InputMixin</a></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENODEV">IO_ENODEV</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#iter">iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html">InsensitiveSequenceMatcher</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOEXEC">IO_ENOEXEC</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#inputs">inputs</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOENT">IO_ENOENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#iter">iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#insert">insert()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOLCK">IO_ENOLCK</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#INS">INS</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOEXEC">IO_ENOEXEC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#iterancestors">iterancestors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#insert_before">insert_before</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOMEM">IO_ENOMEM</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html">InsensitiveSequenceMatcher</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOLCK">IO_ENOLCK</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.selftest-module.html#iterators">iterators()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.selftest-module.html">lxml.tests.selftest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#insert_errors">insert_errors()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOSPC">IO_ENOSPC</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#insert">insert()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOMEM">IO_ENOMEM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#iterchildren">iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#insert_errors_html">insert_errors_html()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOSYS">IO_ENOSYS</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#insert_before">insert_before</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOSPC">IO_ENOSPC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#iterdescendants">iterdescendants()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#install">install()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTDIR">IO_ENOTDIR</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#insert_errors">insert_errors()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOSYS">IO_ENOSYS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#iterelements">iterelements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#install_clone">install_clone()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTEMPTY">IO_ENOTEMPTY</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#insert_errors_html">insert_errors_html()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTDIR">IO_ENOTDIR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLike-class.html#iterelements">iterelements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLike-class.html">LargeFileLike</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#install_dt_self">install_dt_self()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTSOCK">IO_ENOTSOCK</a><br />
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#install">install()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTEMPTY">IO_ENOTEMPTY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html#iterelements">iterelements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.IntElement-class.html">IntElement</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTSUP">IO_ENOTSUP</a><br />
+<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#install_clone">install_clone()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTSOCK">IO_ENOTSOCK</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#iterentities">iterentities()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.selftest-module.html#interface">interface()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.selftest-module.html">lxml.tests.selftest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTTY">IO_ENOTTY</a><br />
+<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#install_dt_self">install_dt_self()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTSUP">IO_ENOTSUP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#iterfind">iterfind()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#internalDTD">internalDTD</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENXIO">IO_ENXIO</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.IntElement-class.html">IntElement</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENOTTY">IO_ENOTTY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#iterfind">iterfind()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#invalid_tag">invalid_tag</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EPERM">IO_EPERM</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.selftest-module.html#interface">interface()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.selftest-module.html">lxml.tests.selftest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ENXIO">IO_ENXIO</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#iteritems">iteritems()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#IO">IO</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EPIPE">IO_EPIPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#internalDTD">internalDTD</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EPERM">IO_EPERM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#iteritems">iteritems()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_BUFFER_FULL">IO_BUFFER_FULL</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ERANGE">IO_ERANGE</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#invalid_tag">invalid_tag</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EPIPE">IO_EPIPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#iterkeys">iterkeys()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EACCES">IO_EACCES</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EROFS">IO_EROFS</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#IO">IO</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ERANGE">IO_ERANGE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#iterkeys">iterkeys()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EADDRINUSE">IO_EADDRINUSE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_BUFFER_FULL">IO_BUFFER_FULL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ESPIPE">IO_ESPIPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EROFS">IO_EROFS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#iterlinks">iterlinks</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EAFNOSUPPORT">IO_EAFNOSUPPORT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EACCES">IO_EACCES</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ESRCH">IO_ESRCH</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ESPIPE">IO_ESPIPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#iterlinks">iterlinks()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EAGAIN">IO_EAGAIN</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EADDRINUSE">IO_EADDRINUSE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ETIMEDOUT">IO_ETIMEDOUT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ESRCH">IO_ESRCH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html">iterparse</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EALREADY">IO_EALREADY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EAFNOSUPPORT">IO_EAFNOSUPPORT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EXDEV">IO_EXDEV</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ETIMEDOUT">IO_ETIMEDOUT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.selftest-module.html#iterparse">iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.selftest-module.html">lxml.tests.selftest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EBADF">IO_EBADF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EAGAIN">IO_EAGAIN</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_FLUSH">IO_FLUSH</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EXDEV">IO_EXDEV</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#itersiblings">itersiblings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EBADMSG">IO_EBADMSG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EALREADY">IO_EALREADY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_LOAD_ERROR">IO_LOAD_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_FLUSH">IO_FLUSH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#itertext">itertext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EBUSY">IO_EBUSY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EBADF">IO_EBADF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_NETWORK_ATTEMPT">IO_NETWORK_ATTEMPT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_LOAD_ERROR">IO_LOAD_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#itervalues">itervalues()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ECANCELED">IO_ECANCELED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EBADMSG">IO_EBADMSG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_NO_INPUT">IO_NO_INPUT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_NETWORK_ATTEMPT">IO_NETWORK_ATTEMPT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#itervalues">itervalues()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ECHILD">IO_ECHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_EBUSY">IO_EBUSY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_UNKNOWN">IO_UNKNOWN</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_NO_INPUT">IO_NO_INPUT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html">iterwalk</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ECANCELED">IO_ECANCELED</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_UNKNOWN">IO_UNKNOWN</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_ECHILD">IO_ECHILD</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#IO_WRITE">IO_WRITE</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
 </table>
 </td></tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3bf08eb..79e1804 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c30d3b7..fd5eaad 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 763f17d..fd508ff 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c5db1f..e18396a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e3eda14..fdb282e 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 428b38c..ea69c73 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e4d0e2..edba1fc 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f710c98..de37ac7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 76abf20..a5e0a56 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:06 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9db25dd..23e6ab6 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f8dec76..c943c1b 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#test_flush">test_flush()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#table_tags">table_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_flush">test_flush()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag">tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html">tag_token</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tail">tail</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TBODY">TBODY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TD">TD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end_exact">test_setslice_end_exact()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert">test_setslice_insert()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end_exact">test_setslice_end_exact()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg">test_setslice_insert_neg()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert">test_setslice_insert()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg">test_setslice_insert_neg()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial">test_setslice_partial()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg">test_setslice_partial_allneg()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#temp_install">temp_install()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial">test_setslice_partial()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg">test_setslice_partial_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg">test_setslice_partial_allneg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial">test_getslice_partial()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg">test_setslice_partial_neg()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test__str">test__str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr">test_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_element">test_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html5_doctype">test_html5_doctype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_cycle">test_addnext_cycle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_html_decl">test_html_decl()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser">test_html_feed_parser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_chunky">test_html_feed_parser_chunky()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_more_tags">test_html_feed_parser_more_tags()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_fromstring_target_exceptions">test_html_fromstring_target_exceptions()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken">test_html_iterparse_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken_no_recover">test_html_iterparse_broken_no_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file">test_html_iterparse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_stop_short">test_html_iterparse_stop_short()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html_full">test_html_parser_target_doctype_html_full()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_exceptions">test_html_parser_target_exceptions()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon">test_html_subelement_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty">test_html_subelement_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote">test_html_subelement_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_space">test_html_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html">test_htmlparser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client">test_http_client()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404">test_http_client_404()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_gzip">test_http_client_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html">test_http_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_ietf_decl">test_ietf_decl()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_ietf_decl">test_ietf_decl()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.EncodingsTestCase-class.html#test_illegal_utf8">test_illegal_utf8()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.EncodingsTestCase-class.html#test_illegal_utf8_recover">test_illegal_utf8_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_include_paths">test_include_paths()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html">test_incremental_xmlfile</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute_extra_duplicate">test_attribute_extra_duplicate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_internal_dtds">test_internal_dtds()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_invalid_decl_1">test_invalid_decl_1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare-module.html">lxml.tests.test_doctestcompare</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_invalid_decl_2">test_invalid_decl_2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html">test_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare-module.html">lxml.tests.test_doctestcompare</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementpath-module.html">lxml.tests.test_elementpath</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html">test_isoschematron</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementpath-module.html">lxml.tests.test_elementpath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_nonstring">test_attribute_set_nonstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_posarg">test_iterchildren_tag_multiple_posarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_posarg">test_iterchildren_tag_posarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_tags_upper_lower_case">test_tags_upper_lower_case()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_build_from_xpath_result">test_build_from_xpath_result()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_tags_upper_lower_case_html">test_tags_upper_lower_case_html()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree">test_build_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_tags_upper_lower_case">test_tags_upper_lower_case()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html">test_builder</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_tags_upper_lower_case_html">test_tags_upper_lower_case_html()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover">test_iterparse_broken_multi_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover">test_iterparse_broken_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd_end">test_iterparse_file_dtd_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd_start">test_iterparse_file_dtd_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html#test_cache">test_cache()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt">test_thread_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_cdata_solo">test_cdata_solo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt">test_thread_xslt()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_tail">test_cdata_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr">test_child_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_iterparse_utf16_bom">test_iterparse_utf16_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index">test_child_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_iterparse_utf8_bom">test_iterparse_utf8_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_large_sourceline_XML">test_large_sourceline_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup">test_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib">test_lookup_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool">test_lookup_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get">test_lookup_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_closing_out_of_order_in_error_case">test_closing_out_of_order_in_error_case()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default">test_lookup_get_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren">test_lookup_getchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem">test_lookup_getitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg">test_lookup_getitem_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_instantiation_precision">test_type_float_instantiation_precision()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext">test_lookup_getnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision">test_type_float_precision()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent">test_lookup_getparent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision_consistency">test_type_float_precision_consistency()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious">test_lookup_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice">test_lookup_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children">test_lookup_iter_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren">test_lookup_iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag">test_lookup_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add">test_type_str_add()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add">test_type_str_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix">test_lookup_prefix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline">test_lookup_sourceline()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag">test_lookup_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_mul()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_mul()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_missing_attributes">test_missing_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_missing_children">test_missing_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML">test_module_HTML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access">test_module_HTML_access()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral">test_type_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken">test_module_HTML_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral">test_type_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata">test_module_HTML_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print">test_module_HTML_pretty_print()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode">test_module_HTML_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html">test_module_parse_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error">test_module_parse_html_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike">test_module_parse_html_filelike()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_norecover">test_module_parse_html_norecover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash_repr">test_data_element_float_hash_repr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject">test_module_parse_large_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_precision">test_data_element_float_precision()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr1">test_unicode_repr1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr2">test_unicode_repr2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr1">test_unicode_repr1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr3">test_unicode_repr3()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr2">test_unicode_repr2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_attributes">test_namespace_cleanup_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr4">test_unicode_repr4()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr3">test_unicode_repr3()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_deep">test_namespace_cleanup_deep()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_repr4">test_unicode_repr4()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_deep_to_top">test_namespace_cleanup_deep_to_top()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid">test_unicode_tag_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_keep_prefixes">test_namespace_cleanup_keep_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_text">test_unicode_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid">test_unicode_tag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_keep_prefixes_top">test_namespace_cleanup_keep_prefixes_top()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml">test_unicode_xml()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_text">test_unicode_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_many">test_namespace_cleanup_many()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken">test_unicode_xml_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml">test_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_uniname">test_uniname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken">test_unicode_xml_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_anonymous">test_namespace_nested_anonymous()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_uniname">test_uniname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_nsmap">test_namespace_nested_nsmap()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_unknown_event">test_unknown_event()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_nsmap">test_namespace_nested_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nsmap">test_namespace_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_unknown_type_raises">test_unknown_type_raises()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nsmap">test_namespace_nsmap()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_vars">test_vars()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version">test_version()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_void_elements">test_void_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction">test_weird_dict_interaction()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_other">test_namespaces_default_and_other()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_wide_unicode_xml">test_wide_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_other">test_namespaces_default_and_other()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_wide_unicode_xml">test_wide_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace">test_nested_default_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io.ETreeIOTestCase-class.html#test_write_compressed_text">test_write_compressed_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace">test_nested_default_namespace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace_and_other">test_nested_default_namespace_and_other()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_write_declaration">test_write_declaration()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace_and_other">test_nested_default_namespace_and_other()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element">test_write_Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element_repeatedly">test_write_Element_repeatedly()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_apos">test_declaration_apos()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_escape_quote_pid">test_declaration_escape_quote_pid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_apos">test_declaration_apos()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_quote_withoutpid">test_declaration_quote_withoutpid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_escape_quote_pid">test_declaration_escape_quote_pid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_quote_withoutpid">test_declaration_quote_withoutpid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_filename">test_write_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename">test_write_invalid_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi_dtd">test_deepcopy_pi_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_write_namespaced_element">test_write_namespaced_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi_dtd">test_deepcopy_pi_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver_recursive">test_xinclude_resolver_recursive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup_pull_parser">test_default_class_lookup_pull_parser()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup_pull_parser">test_default_class_lookup_pull_parser()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_no_id_dict">test_XMLDTDID_no_id_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html">test_xmlschema</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema">test_xmlschema()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_comment_error">test_xmlschema_comment_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes">test_xmlschema_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error">test_xmlschema_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_error_log">test_xmlschema_error_log()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file">test_xmlschema_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_illegal_validation_error">test_xmlschema_illegal_validation_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_attributes">test_differing_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_tags">test_differing_tags()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_attributes">test_differing_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2">test_xmlschema_invalid_schema2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_tags">test_differing_tags()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse">test_xmlschema_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html">test_objectify</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_open_namespaced_element">test_open_namespaced_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html">test_doctestcompare</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html">test_doctestcompare</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_resolvers()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_resolvers()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_api_internal">test_dtd_api_internal()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_api_internal">test_dtd_api_internal()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_parse_file_dtd">test_parse_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid_duplicate_id">test_dtd_invalid_duplicate_id()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid_duplicate_id">test_dtd_invalid_duplicate_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node">test_xpath_context_node()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root">test_xpath_document_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error">test_xpath_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_file_url">test_dtd_parse_valid_file_url()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative_file_url">test_dtd_parse_valid_relative_file_url()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_file_url">test_dtd_parse_valid_file_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator">test_xpath_evaluator()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative_file_url">test_dtd_parse_valid_relative_file_url()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator">test_xpath_evaluator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_parse_utf8_bom">test_parse_utf8_bom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree">test_xpath_evaluator_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree">test_xpath_evaluator_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup">test_parser_based_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_parser_input_mix">test_parser_input_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment">test_parser_target_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2">test_xpath_extensions_nodes_append2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_no_id_dict">test_parser_target_feed_no_id_dict()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_no_id_dict">test_parser_target_feed_no_id_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_text_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty">test_xpath_namespace_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns">test_xpath_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty">test_xpath_ns_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none">test_xpath_ns_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_pi">test_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_pi">test_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node">test_xpath_on_context_node()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node">test_xpath_on_foreign_context_node()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset">test_xpath_variables_nodeset()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html">test_xpathevaluator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_elementtree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra">test_element_with_attributes_extra()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra_duplicate">test_element_with_attributes_extra_duplicate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra">test_element_with_attributes_extra()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra_duplicate">test_element_with_attributes_extra_duplicate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html">test_xslt</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt">test_xslt()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html">test_elementpath</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings">test_proxy_collect_siblings()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html">test_elementpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings">test_proxy_collect_siblings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings_text">test_proxy_collect_siblings_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings_text">test_proxy_collect_siblings_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing">test_proxy_hashing()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing">test_proxy_hashing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse">test_proxy_reuse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse">test_proxy_reuse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root">test_proxy_reuse_after_del_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root">test_proxy_reuse_after_del_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_gc">test_proxy_reuse_after_gc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_gc">test_proxy_reuse_after_gc()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target">test_pull_from_simple_target()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath">test_elementtree_getelementpath()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target">test_pull_from_simple_target()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath_ns">test_elementtree_getelementpath_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath">test_elementtree_getelementpath()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath_ns">test_elementtree_getelementpath_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_resolver()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error">test_xslt_elementtree_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_resolver()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error">test_xslt_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html">test_pyclasslookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_override()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_empty_decl">test_empty_decl()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_empty_decl">test_empty_decl()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_xpath()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_xpath()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_equal_input">test_equal_input()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry">test_registry()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean">test_rel_xpath_boolean()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_equal_input">test_equal_input()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements">test_rel_xpath_list_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html">test_relaxng</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng">test_relaxng()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#test_relaxng_compact">test_relaxng_compact()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">RelaxNGCompactTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#test_relaxng_compact_file_obj">test_relaxng_compact_file_obj()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">RelaxNGCompactTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#test_relaxng_compact_str">test_relaxng_compact_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">RelaxNGCompactTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error">test_relaxng_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error">test_relaxng_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include">test_relaxng_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_parameters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema">test_relaxng_invalid_schema()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2">test_relaxng_invalid_schema2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_standalone()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema3">test_relaxng_invalid_schema3()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema4">test_relaxng_invalid_schema4()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut">test_relaxng_shortcut()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests-module.html">tests</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut">test_relaxng_shortcut()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio">test_relaxng_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio">test_relaxng_stringio()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#text">text</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare">text_compare()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#text_content">text_content()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TEXTAREA">TEXTAREA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html">TextareaElement</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TFOOT">TFOOT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TH">TH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#THEAD">THEAD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_fail_on_report">test_schematron_fail_on_report()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_fail_on_report">test_schematron_fail_on_report()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold">threshold</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html" onclick="show_private();">InsensitiveSequenceMatcher</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_attributes">test_extra_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TITLE">TITLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_children">test_extra_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_attributes">test_extra_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.Classes-class.html#toggle">toggle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.Classes-class.html">Classes</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_children">test_extra_children()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html">token</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html">token</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize">tokenize()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize">tokenize()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize_annotated">tokenize_annotated()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize_annotated">tokenize_annotated()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#top_level_tags">top_level_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#tostring">tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tostring">tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tostringlist">tostringlist()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tounicode">tounicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TR">TR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover_no_id_dict">test_feed_parser_recover_no_id_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#TREE">TREE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover_no_id_dict">test_feed_parser_recover_no_id_dict()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_DEC">TREE_INVALID_DEC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_HEX">TREE_INVALID_HEX</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_set_decl_html">test_set_decl_html()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_NOT_UTF8">TREE_NOT_UTF8</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_set_decl_html">test_set_decl_html()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_public">test_set_decl_public()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#TREE_PYTYPE">TREE_PYTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_not_closing">test_filelike_not_closing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_public">test_set_decl_public()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_system">test_set_decl_system()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_UNTERMINATED_ENTITY">TREE_UNTERMINATED_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_system">test_set_decl_system()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_not_closing">test_filelike_not_closing()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TT">TT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_empty_prefix">test_findall_empty_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type">type</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_empty_prefix">test_findall_empty_prefix()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#type">type</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#type_check">type_check</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type_name">type_name</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index">&nbsp;</td>
 </tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 33c2359..d9d4952 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c96835..6af4e94 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5a91173..269ff21 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5fa235d..73372d1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d92abe5..bac8064 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4d645be..1ea6157 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6231ccc..8563105 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8f8d63d..b3a55f6 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6092607..b5818c1 100644 (file)
@@ -237,7 +237,8 @@ with statically linked libraries.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5dd87e2..53f572b 100644 (file)
@@ -123,7 +123,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 82b5dd2..0a94688 100644 (file)
@@ -277,7 +277,8 @@ form of custom URL resolvers.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e53773e..6d895cc 100644 (file)
@@ -543,7 +543,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 086ba4a..927f918 100644 (file)
@@ -229,7 +229,8 @@ exceptions.BaseException --+           |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4e702dc..9acfab9 100644 (file)
@@ -160,7 +160,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="E"></a><span class="summary-name">E</span> = <code title="ElementMaker()">ElementMaker()</code>
+        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.builder.ElementMaker object&gt;">&lt;lxml.builder.ElementMaker object&gt;</code>
     </td>
   </tr>
 <tr>
@@ -202,7 +202,8 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 009a64e..a9fcea7 100644 (file)
@@ -464,7 +464,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6c6ff1f..1ff97d8 100644 (file)
@@ -352,7 +352,8 @@ and/or a specific target <tt class="rst-docutils literal">namespace</tt> to the
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b81a86a..7d6016d 100644 (file)
@@ -231,7 +231,8 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80092ca..b18b8cf 100644 (file)
@@ -304,7 +304,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fa5a52a..199ea2a 100644 (file)
@@ -308,7 +308,8 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 310d36b..f515395 100644 (file)
@@ -310,7 +310,8 @@ lxml extensions + HTML support.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index abc36dd..72f526d 100644 (file)
@@ -362,7 +362,8 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f3bb8da..8b05184 100644 (file)
@@ -296,7 +296,7 @@ doctest only.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.doctestcompare-module.html#_html_parser" class="summary-name" onclick="show_private();">_html_parser</a> = <code title="etree.HTMLParser(recover= False, remove_blank_text= True)">etree.HTMLParser(recover= False, remove_blank_t<code class="variable-ellipsis">...</code></code>
+        <a name="_html_parser"></a><span class="summary-name">_html_parser</span> = <code title="&lt;lxml.etree.HTMLParser object&gt;">&lt;lxml.etree.HTMLParser object&gt;</code>
     </td>
   </tr>
 <tr class="private">
@@ -417,24 +417,6 @@ otherwise the XML parser is used.</p>
   </td>
 </tr>
 </table>
-<a name="_html_parser"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_html_parser</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-etree.HTMLParser(recover= False, remove_blank_text= True)
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
 <a name="__test__"></a>
 <div class="private">
 <table class="details" border="1" cellpadding="3"
@@ -493,7 +475,8 @@ etree.HTMLParser(recover= False, remove_blank_text= True)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a52fb54..39e31ca 100644 (file)
@@ -1123,7 +1123,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0937b1..caedd25 100644 (file)
@@ -229,7 +229,8 @@ doctest.OutputChecker --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b9186d7..2a249f5 100644 (file)
@@ -610,7 +610,8 @@ to compare <code class="link">want</code> and <code class="link">got</code>.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ff6e87e..58c10a6 100644 (file)
@@ -349,7 +349,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac9a7e1..fe1654f 100644 (file)
@@ -65,7 +65,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
 
 <hr />
 <div class="fields">      <p><strong>Version:</strong>
-        3.6.0
+        3.6.3
       </p>
 </div><!-- ==================== CLASSES ==================== -->
 <a name="section-Classes"></a>
@@ -317,7 +317,7 @@ Iterates over the text content of a subtree.
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="lxml.etree.HTMLParser-class.html" class="summary-name">HTMLParser</a><br />
-      HTMLParser(self, encoding=None, remove_blank_text=False,                    remove_comments=False, remove_pis=False, strip_cdata=True,                    no_network=True, target=None, XMLSchema schema=None,                    recover=True, compact=True)
+      HTMLParser(self, encoding=None, remove_blank_text=False,                    remove_comments=False, remove_pis=False, strip_cdata=True,                    no_network=True, target=None, schema: XMLSchema =None,                    recover=True, compact=True)
     </td>
   </tr>
 <tr class="private">
@@ -1677,14 +1677,14 @@ 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="LIBXML_COMPILED_VERSION"></a><span class="summary-name">LIBXML_COMPILED_VERSION</span> = <code title="(2, 9, 1)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>1<code class="variable-group">)</code></code>
+        <a name="LIBXML_COMPILED_VERSION"></a><span class="summary-name">LIBXML_COMPILED_VERSION</span> = <code title="(2, 9, 3)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>3<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXML_VERSION"></a><span class="summary-name">LIBXML_VERSION</span> = <code title="(2, 9, 1)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>1<code class="variable-group">)</code></code>
+        <a name="LIBXML_VERSION"></a><span class="summary-name">LIBXML_VERSION</span> = <code title="(2, 9, 3)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>3<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
@@ -1705,7 +1705,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="(3, 6, 0, 0)"><code class="variable-group">(</code>3<code class="variable-op">, </code>6<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="(3, 6, 3, 0)"><code class="variable-group">(</code>3<code class="variable-op">, </code>6<code class="variable-op">, </code>3<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr class="private">
@@ -1721,13 +1721,13 @@ standard Python logging package.</td>
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="lxml.etree-module.html#__pyx_capi__" class="summary-name" onclick="show_private();">__pyx_capi__</a> = <code title="{'appendChild': &lt;capsule object &quot;void (struct LxmlElement *, struct Lx\
-mlElement *)&quot; at 0x2ab25817e480&gt;,
+mlElement *)&quot; at 0x7fc469026d50&gt;,
  'appendChildToElement': &lt;capsule object &quot;int (struct LxmlElement *, s\
-truct LxmlElement *)&quot; at 0x2ab25817e4b0&gt;,
+truct LxmlElement *)&quot; at 0x7fc469026d80&gt;,
  'attributeValue': &lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; \
-at 0x2ab25817e150&gt;,
+at 0x7fc469026a20&gt;,
  'attributeValueFromNsName': &lt;capsule object &quot;PyObject *(xmlNode *, co\
-nst xmlChar *, const xmlChar *)&quot; at 0x2ab25817e180&gt;,
+nst xmlChar *, const xmlChar *)&quot; at 0x7fc469026a50&gt;,
 ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;void (struct L<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
@@ -1750,7 +1750,7 @@ nst xmlChar *, const xmlChar *)&quot; at 0x2ab25817e180&gt;,
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2ab253e568a0&gt;">&lt;lxml.etree._MemDebug object at 0x2ab253e568a0&gt;</code>
+        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object&gt;">&lt;lxml.etree._MemDebug object&gt;</code>
     </td>
   </tr>
 </table>
@@ -2432,13 +2432,13 @@ function will only set the global error log of the current thread.</p>
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
 <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;void (struct LxmlElement *, struct Lx<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-mlElement *)&quot; at 0x2ab25817e480&gt;<code class="variable-op">,</code>
+mlElement *)&quot; at 0x7fc469026d50&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 0x2ab25817e4b0&gt;<code class="variable-op">,</code>
+truct LxmlElement *)&quot; at 0x7fc469026d80&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 0x2ab25817e150&gt;<code class="variable-op">,</code>
+at 0x7fc469026a20&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">attributeValueFromNsName</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(xmlNode *, co<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-nst xmlChar *, const xmlChar *)&quot; at 0x2ab25817e180&gt;<code class="variable-op">,</code>
+nst xmlChar *, const xmlChar *)&quot; at 0x7fc469026a50&gt;<code class="variable-op">,</code>
 <code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
@@ -2503,7 +2503,8 @@ nst xmlChar *, const xmlChar *)&quot; at 0x2ab25817e180&gt;<code class="variable
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4027385..09114f3 100644 (file)
@@ -233,7 +233,8 @@ Iterates over the ancestors of an element (from parent to parent).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6cfd760..325adef 100644 (file)
@@ -293,7 +293,8 @@ missing.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e77a6c8..f4ae428 100644 (file)
@@ -211,7 +211,8 @@ Error during C14N serialisation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 28740a6..3b4fae6 100644 (file)
@@ -236,7 +236,8 @@ a string
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 77694d5..2215bd7 100644 (file)
@@ -349,7 +349,8 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 66bb3eb..df636b9 100644 (file)
@@ -272,7 +272,8 @@ lookup(self, type, doc, namespace, name)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6a82327..e5d9fa5 100644 (file)
@@ -411,7 +411,8 @@ catalog.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5d27d46..fc1f86f 100644 (file)
@@ -217,7 +217,8 @@ Base class for DTD errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1c2ec1d..e6bb24b 100644 (file)
@@ -213,7 +213,8 @@ Error while parsing a DTD.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0f55ba6..77224a0 100644 (file)
@@ -213,7 +213,8 @@ Error while validating an XML document with a DTD.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80aef17..cba91e8 100644 (file)
@@ -372,7 +372,8 @@ exist, setting this variable (even to None) will create one.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a0dc79c..a40fb7d 100644 (file)
@@ -213,7 +213,8 @@ method fails.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7605554..48167be 100644 (file)
@@ -325,7 +325,8 @@ and thus ignores comments and processing instructions.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c796390..da0c026 100644 (file)
@@ -293,7 +293,8 @@ you pass <tt class="rst-docutils literal">smart_strings=False</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 326cc84..7549cf7 100644 (file)
@@ -73,7 +73,7 @@ object --+
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.objectify.ObjectifiedElement-class.html">objectify.ObjectifiedElement</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html">tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html">tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class</a></li><li>, <a href="lxml.html.HtmlElement-class.html">html.HtmlElement</a></li>  </ul>
+<li><a href="lxml.objectify.ObjectifiedElement-class.html">objectify.ObjectifiedElement</a></li><li>, <a href="lxml.html.HtmlElement-class.html">html.HtmlElement</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html">tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html">tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -362,7 +362,8 @@ hierarchies that implement a common namespace.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4fbc747..0b5004b 100644 (file)
@@ -233,7 +233,8 @@ Iterates over the children of an element.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 60ea955..3bec0ca 100644 (file)
@@ -232,7 +232,8 @@ Superclass of Element class lookups.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 51078bd..f222299 100644 (file)
@@ -306,7 +306,8 @@ accept the respective Element classes.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 44b4cc7..1a195e4 100644 (file)
@@ -287,7 +287,8 @@ tree it traverses is modified during iteration.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9b1470c..935513d 100644 (file)
@@ -319,7 +319,8 @@ Pass None for the empty namespace.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 559b687..9f48b94 100644 (file)
@@ -279,7 +279,8 @@ tail text (e.g. if you know that it's only whitespace from pretty-printing).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f6077c..227c084 100644 (file)
@@ -350,7 +350,8 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index addc423..09f0baf 100644 (file)
@@ -209,7 +209,8 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2818b41..1016b9b 100644 (file)
@@ -485,7 +485,8 @@ Libxml2 error domains
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4974bbc..9fb8bdd 100644 (file)
@@ -243,7 +243,8 @@ Libxml2 error levels
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 27ca5bb..52844df 100644 (file)
@@ -5406,7 +5406,8 @@ Libxml2 error types
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f655619..bf8d25a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 069fba5..fb4f0cb 100644 (file)
@@ -79,7 +79,7 @@
 </dd></dl>
 
 <hr />
-<p>HTMLParser(self, encoding=None, remove_blank_text=False,                    remove_comments=False, remove_pis=False, strip_cdata=True,                    no_network=True, target=None, XMLSchema schema=None,                    recover=True, compact=True)</p>
+<p>HTMLParser(self, encoding=None, remove_blank_text=False,                    remove_comments=False, remove_pis=False, strip_cdata=True,                    no_network=True, target=None, schema: XMLSchema =None,                    recover=True, compact=True)</p>
 <p>The HTML parser.</p>
 <p>This parser allows reading HTML into a normal XML tree.  By
 default, it can read broken (non well-formed) HTML, depending on
@@ -135,7 +135,7 @@ reasons.</p>
         <span class="summary-sig-arg">strip_cdata</span>=<span class="summary-sig-default">True</span>,
         <span class="summary-sig-arg">no_network</span>=<span class="summary-sig-default">True</span>,
         <span class="summary-sig-arg">target</span>=<span class="summary-sig-default">None</span>,
-        <span class="summary-sig-arg">XMLSchema schema</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">schema: XMLSchema</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">recover</span>=<span class="summary-sig-default">True</span>,
         <span class="summary-sig-arg">compact</span>=<span class="summary-sig-default">True</span>)</span><br />
       x.__init__(...) initializes x; see help(type(x)) for signature</td>
@@ -261,7 +261,7 @@ reasons.</p>
         <span class="sig-arg">strip_cdata</span>=<span class="sig-default">True</span>,
         <span class="sig-arg">no_network</span>=<span class="sig-default">True</span>,
         <span class="sig-arg">target</span>=<span class="sig-default">None</span>,
-        <span class="sig-arg">XMLSchema schema</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">schema: XMLSchema</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">recover</span>=<span class="sig-default">True</span>,
         <span class="sig-arg">compact</span>=<span class="sig-default">True</span>)</span>
     <br /><em class="fname">(Constructor)</em>
@@ -336,7 +336,8 @@ reasons.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d88dcbf..b172dd2 100644 (file)
@@ -326,7 +326,8 @@ source, you can pass the <tt class="rst-docutils literal">base_url</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ddc170..99e7140 100644 (file)
@@ -77,7 +77,7 @@ exceptions.BaseException --+
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.sax.SaxError-class.html">sax.SaxError</a></li><li>, <a href="lxml.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</a></li><li>, <a href="lxml.etree.C14NError-class.html">C14NError</a></li><li>, <a href="lxml.etree.DTDError-class.html">DTDError</a></li><li>, <a href="lxml.etree.DocumentInvalid-class.html">DocumentInvalid</a></li><li>, <a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</a></li><li>, <a href="lxml.etree.ParserError-class.html">ParserError</a></li><li>, <a href="lxml.etree.RelaxNGError-class.html">RelaxNGError</a></li><li>, <a href="lxml.etree.SchematronError-class.html">SchematronError</a></li><li>, <a href="lxml.etree.SerialisationError-class.html">SerialisationError</a></li><li>, <a href="lxml.etree.XIncludeError-class.html">XIncludeError</a></li><li>, <a href="lxml.etree.XMLSchemaError-class.html">XMLSchemaError</a></li><li>, <a href="lxml.etree.XPathError-class.html">XPathError</a></li><li>, <a href="lxml.etree.XSLTError-class.html">XSLTError</a></li>  </ul>
+<li><a href="lxml.etree.C14NError-class.html">C14NError</a></li><li>, <a href="lxml.etree.DTDError-class.html">DTDError</a></li><li>, <a href="lxml.etree.DocumentInvalid-class.html">DocumentInvalid</a></li><li>, <a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</a></li><li>, <a href="lxml.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</a></li><li>, <a href="lxml.etree.ParserError-class.html">ParserError</a></li><li>, <a href="lxml.etree.RelaxNGError-class.html">RelaxNGError</a></li><li>, <a href="lxml.etree.SchematronError-class.html">SchematronError</a></li><li>, <a href="lxml.etree.SerialisationError-class.html">SerialisationError</a></li><li>, <a href="lxml.etree.XIncludeError-class.html">XIncludeError</a></li><li>, <a href="lxml.etree.XMLSchemaError-class.html">XMLSchemaError</a></li><li>, <a href="lxml.etree.XPathError-class.html">XPathError</a></li><li>, <a href="lxml.etree.XSLTError-class.html">XSLTError</a></li><li>, <a href="lxml.sax.SaxError-class.html">sax.SaxError</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -273,7 +273,8 @@ this one.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63c7c71..a446cbe 100644 (file)
@@ -217,7 +217,8 @@ Base class of lxml registry errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b34d33..243232e 100644 (file)
@@ -89,7 +89,7 @@ exceptions.BaseException --+           |
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.ElementInclude.FatalIncludeError-class.html">ElementInclude.FatalIncludeError</a></li><li>, <a href="lxml.etree.ParseError-class.html">ParseError</a></li><li>, <a href="lxml.etree.XPathSyntaxError-class.html">XPathSyntaxError</a></li>  </ul>
+<li><a href="lxml.etree.ParseError-class.html">ParseError</a></li><li>, <a href="lxml.etree.XPathSyntaxError-class.html">XPathSyntaxError</a></li><li>, <a href="lxml.ElementInclude.FatalIncludeError-class.html">ElementInclude.FatalIncludeError</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -235,7 +235,8 @@ Base class for all syntax errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 58463a8..7b03710 100644 (file)
@@ -213,7 +213,8 @@ Error registering a namespace extension.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4e79fd9..c44993e 100644 (file)
@@ -351,7 +351,8 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 203e530..c290485 100644 (file)
@@ -295,7 +295,8 @@ exceptions.BaseException --+           |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0ab5d55..3f04eb2 100644 (file)
@@ -236,7 +236,8 @@ Element class lookup based on the XML parser.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c8be57d..81d48b4 100644 (file)
@@ -211,7 +211,8 @@ Internal lxml parser error.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 70d21c9..97199ce 100644 (file)
@@ -433,7 +433,8 @@ format.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 30c441e..2b3517c 100644 (file)
@@ -289,7 +289,8 @@ iteration methods).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index df2236c..327445e 100644 (file)
@@ -486,7 +486,8 @@ their text content.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 115f323..3ef5893 100644 (file)
@@ -341,7 +341,8 @@ filename through the <tt class="rst-docutils literal">file</tt> keyword argument
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5c54bf6..0323c53 100644 (file)
@@ -217,7 +217,8 @@ Base class for RelaxNG errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 60b65e8..af5ccef 100644 (file)
@@ -548,7 +548,8 @@ Libxml2 RelaxNG error types
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 46873ec..32b3b47 100644 (file)
@@ -213,7 +213,8 @@ Error while parsing an XML document as RelaxNG.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f760915..a7930d5 100644 (file)
@@ -213,7 +213,8 @@ Error while validating an XML document with a RelaxNG schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d7bbd7..2a86cd8 100644 (file)
@@ -454,7 +454,8 @@ argument.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d2cec8e..614974e 100644 (file)
@@ -366,7 +366,8 @@ errors in lxml.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index abc4f57..665ffe5 100644 (file)
@@ -217,7 +217,8 @@ Base class of all Schematron errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 195ffa7..e8d967a 100644 (file)
@@ -213,7 +213,8 @@ Error while parsing an XML document as Schematron schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c4849b4..7e400e6 100644 (file)
@@ -213,7 +213,8 @@ Error while validating an XML document with a Schematron schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6fbb77d..f991277 100644 (file)
@@ -211,7 +211,8 @@ A libxml2 error that occurred during serialisation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8575909..6ba84af 100644 (file)
@@ -234,7 +234,8 @@ Iterates over the siblings of an element.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 57429a7..0580a34 100644 (file)
@@ -382,7 +382,8 @@ element.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87c51a0..d91c82c 100644 (file)
@@ -291,7 +291,8 @@ processing.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b6363c1..5880c59 100644 (file)
@@ -211,7 +211,8 @@ Error during XInclude processing.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 299535e..9c01562 100644 (file)
@@ -380,7 +380,8 @@ apply to the default parser.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e511f39..e63cfed 100644 (file)
@@ -324,7 +324,8 @@ source, you can pass the <tt class="rst-docutils literal">base_url</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b45ff16..f0bf124 100644 (file)
@@ -327,7 +327,8 @@ schema insert default/fixed attributes into validated documents.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 356263e..2069a95 100644 (file)
@@ -217,7 +217,8 @@ Base class of all XML Schema errors
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0045518..f170e71 100644 (file)
@@ -213,7 +213,8 @@ Error while parsing an XML document as XML Schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0a6afc9..56d7ef9 100644 (file)
@@ -213,7 +213,8 @@ Error while validating an XML document with an XML Schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index da7119a..be470d0 100644 (file)
@@ -233,7 +233,8 @@ Syntax error while parsing an XML document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b9e2af6..efc0e61 100644 (file)
@@ -73,7 +73,7 @@
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.cssselect.CSSSelector-class.html">cssselect.CSSSelector</a></li><li>, <a href="lxml.etree.ETXPath-class.html">ETXPath</a></li>  </ul>
+<li><a href="lxml.etree.ETXPath-class.html">ETXPath</a></li><li>, <a href="lxml.cssselect.CSSSelector-class.html">cssselect.CSSSelector</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -361,7 +361,8 @@ returned for string results unless you pass
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d67e6a..a246552 100644 (file)
@@ -340,7 +340,8 @@ are currently not supported for variables.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 108fa6b..95aeb11 100644 (file)
@@ -375,7 +375,8 @@ against the ElementTree as returned by getroottree().</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9c2450c..cade74e 100644 (file)
@@ -217,7 +217,8 @@ Base class of all XPath errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ee3a587..2ff975e 100644 (file)
@@ -219,7 +219,8 @@ Error during XPath evaluation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e017f96..85b1940 100644 (file)
@@ -215,7 +215,8 @@ Internal error looking up an XPath extension function.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6218809..9447494 100644 (file)
@@ -215,7 +215,8 @@ Error handling an XPath result.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87ccee2..7829ddb 100644 (file)
@@ -241,7 +241,8 @@ exceptions.BaseException --+               |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6a1b7ae..0efd73b 100644 (file)
@@ -575,7 +575,8 @@ result = transform(doc, some_strval = XSLT.strparam(
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bb69739..119aed2 100644 (file)
@@ -428,7 +428,8 @@ XSLTAccessControl(create_dir=False, read_file=True, read_network=True,<span clas
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 91f025b..d97971e 100644 (file)
@@ -213,7 +213,8 @@ Error running an XSL transformation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ca5c85..d85c6fb 100644 (file)
@@ -217,7 +217,8 @@ Base class of all XSLT errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bfc725a..341c247 100644 (file)
@@ -397,7 +397,8 @@ case.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5828dca..eb6af32 100644 (file)
@@ -213,7 +213,8 @@ Error registering an XSLT extension.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1f23ba0..d64c256 100644 (file)
@@ -213,7 +213,8 @@ Error parsing a stylesheet document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80134ed..aa5dc26 100644 (file)
@@ -213,7 +213,8 @@ Error serialising an XSLT result.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2012dd7..7f182a8 100644 (file)
@@ -704,7 +704,8 @@ A dict-like proxy for the <tt class="rst-rst-rst-docutils literal rst-rst-docuti
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2e47fd5..4262b45 100644 (file)
@@ -346,7 +346,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ae52cd..e1865fe 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2e4167e..9b7e973 100644 (file)
@@ -227,7 +227,8 @@ document is cleaned up.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7dfeb0c..73e0299 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 40e7f4a..ff88721 100644 (file)
@@ -1641,7 +1641,8 @@ parents.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d9d420e..4e7e110 100644 (file)
@@ -276,7 +276,8 @@ Dead but public. :)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63feb04..470f11e 100644 (file)
@@ -278,7 +278,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ab9fb6..75ef831 100644 (file)
@@ -267,7 +267,8 @@ basestring --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa11f9a..77c710a 100644 (file)
@@ -231,7 +231,8 @@ Dead but public. :)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e70bde..0342bb4 100644 (file)
@@ -1071,7 +1071,8 @@ class directly.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ab17294..c6a1df4 100644 (file)
@@ -333,7 +333,8 @@ basestring --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bfc02f4..b2c90c0 100644 (file)
@@ -356,7 +356,8 @@ the value None, if there was no text.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2a1d257..5dcdff2 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 894d86c..7d7af28 100644 (file)
@@ -377,7 +377,8 @@ different from what the <tt class="rst-docutils literal">error_log</tt> property
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eba7a3c..0327cfb 100644 (file)
@@ -482,7 +482,8 @@ that were created or modified 'by hand' are not supported.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b0e9cf..5573eaf 100644 (file)
@@ -570,7 +570,8 @@ entries.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f58313..991a2ef 100644 (file)
@@ -347,7 +347,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 22d98e7..76c455a 100644 (file)
@@ -408,7 +408,8 @@ It is not guaranteed to work for all possible text content.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0a509c5..c68d93b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bb5f660..7e01def 100644 (file)
@@ -229,7 +229,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 52ddbc4..2045d4b 100644 (file)
@@ -262,7 +262,8 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe56c37..df617f9 100644 (file)
@@ -346,7 +346,8 @@ Base class for XML validators.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b459551..2eecabf 100644 (file)
@@ -322,7 +322,8 @@ are currently not supported for variables.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d5fdaec..51845cd 100644 (file)
@@ -390,7 +390,8 @@ the processing instruction.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 33eb5e5..97b13b1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 44eac23..9031fb0 100644 (file)
@@ -282,7 +282,8 @@ xmlfile.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 19845a3..5fb1b9c 100644 (file)
@@ -500,7 +500,8 @@ attribute default values are requested.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03cc3c0..fb08079 100644 (file)
@@ -323,7 +323,8 @@ was parsing XML data with <tt class="rst-docutils literal">iterparse()</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index beca1e2..98ffdb0 100644 (file)
@@ -342,7 +342,8 @@ explicitly flush any pending output when buffering is enabled.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c967b04..af8ab7b 100644 (file)
@@ -876,56 +876,56 @@ XHTML namespace.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="find_class"></a><span class="summary-name">find_class</span> = <code title="&lt;lxml.html._MethodFunc object at 0x2ab2593eea50&gt;">&lt;lxml.html._MethodFunc object at 0x2ab2593eea50&gt;</code>
+        <a name="find_class"></a><span class="summary-name">find_class</span> = <code title="&lt;lxml.html._MethodFunc object&gt;">&lt;lxml.html._MethodFunc object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="find_rel_links"></a><span class="summary-name">find_rel_links</span> = <code title="&lt;lxml.html._MethodFunc object at 0x2ab2593eea10&gt;">&lt;lxml.html._MethodFunc object at 0x2ab2593eea10&gt;</code>
+        <a name="find_rel_links"></a><span class="summary-name">find_rel_links</span> = <code title="&lt;lxml.html._MethodFunc object&gt;">&lt;lxml.html._MethodFunc object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="html_parser"></a><span class="summary-name">html_parser</span> = <code title="&lt;lxml.html.HTMLParser object at 0x2ab259393890&gt;">&lt;lxml.html.HTMLParser object at 0x2ab259393890&gt;</code>
+        <a name="html_parser"></a><span class="summary-name">html_parser</span> = <code title="&lt;lxml.html.HTMLParser object&gt;">&lt;lxml.html.HTMLParser object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="iterlinks"></a><span class="summary-name">iterlinks</span> = <code title="&lt;lxml.html._MethodFunc object at 0x2ab2593eeb10&gt;">&lt;lxml.html._MethodFunc object at 0x2ab2593eeb10&gt;</code>
+        <a name="iterlinks"></a><span class="summary-name">iterlinks</span> = <code title="&lt;lxml.html._MethodFunc object&gt;">&lt;lxml.html._MethodFunc object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.html-module.html#make_links_absolute" class="summary-name">make_links_absolute</a> = <code title="&lt;lxml.html._MethodFunc object at 0x2ab2593eea90&gt;">&lt;lxml.html._MethodFunc object at 0x2ab25<code class="variable-ellipsis">...</code></code>
+        <a name="make_links_absolute"></a><span class="summary-name">make_links_absolute</span> = <code title="&lt;lxml.html._MethodFunc object&gt;">&lt;lxml.html._MethodFunc object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.html-module.html#resolve_base_href" class="summary-name">resolve_base_href</a> = <code title="&lt;lxml.html._MethodFunc object at 0x2ab2593eead0&gt;">&lt;lxml.html._MethodFunc object at 0x2ab2593<code class="variable-ellipsis">...</code></code>
+        <a name="resolve_base_href"></a><span class="summary-name">resolve_base_href</span> = <code title="&lt;lxml.html._MethodFunc object&gt;">&lt;lxml.html._MethodFunc object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="rewrite_links"></a><span class="summary-name">rewrite_links</span> = <code title="&lt;lxml.html._MethodFunc object at 0x2ab2593eeb50&gt;">&lt;lxml.html._MethodFunc object at 0x2ab2593eeb50&gt;</code>
+        <a name="rewrite_links"></a><span class="summary-name">rewrite_links</span> = <code title="&lt;lxml.html._MethodFunc object&gt;">&lt;lxml.html._MethodFunc object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="xhtml_parser"></a><span class="summary-name">xhtml_parser</span> = <code title="&lt;lxml.html.XHTMLParser object at 0x2ab259393940&gt;">&lt;lxml.html.XHTMLParser object at 0x2ab259393940&gt;</code>
+        <a name="xhtml_parser"></a><span class="summary-name">xhtml_parser</span> = <code title="&lt;lxml.html.XHTMLParser object&gt;">&lt;lxml.html.XHTMLParser object&gt;</code>
     </td>
   </tr>
 </table>
@@ -1289,42 +1289,6 @@ descendant-or-self::a[@rel]|descendant-or-self::x:a[@rel]
   </dl>
 </td></tr></table>
 </div>
-<a name="make_links_absolute"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">make_links_absolute</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-&lt;lxml.html._MethodFunc object at 0x2ab2593eea90&gt;
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="resolve_base_href"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">resolve_base_href</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-&lt;lxml.html._MethodFunc object at 0x2ab2593eead0&gt;
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
 <br />
 <!-- ==================== NAVIGATION BAR ==================== -->
 <table class="navbar" border="0" width="100%" cellpadding="0"
@@ -1357,7 +1321,8 @@ descendant-or-self::a[@rel]|descendant-or-self::x:a[@rel]
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index caaf8b1..6bb9ff9 100644 (file)
@@ -2168,7 +2168,7 @@ xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return docl
 <a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-568" class="py-name" targets="Variable lxml.html.InputElement.checkable=lxml.html.InputElement-class.html#checkable"><a title="lxml.html.InputElement.checkable" class="py-name" href="#" onclick="return doclink('link-568', 'checkable', 'link-568');">checkable</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-569" class="py-name" targets="Variable lxml.html.InputElement.checked=lxml.html.InputElement-class.html#checked"><a title="lxml.html.InputElement.checked" class="py-name" href="#" onclick="return doclink('link-569', 'checked', 'link-569');">checked</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-keyword">continue</tt> </tt>
 <a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-570', 'type', 'link-275');">type</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'submit'</tt><tt class="py-op">,</tt> <tt class="py-string">'image'</tt><tt class="py-op">,</tt> <tt class="py-string">'reset'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-570', 'type', 'link-275');">type</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'submit'</tt><tt class="py-op">,</tt> <tt class="py-string">'image'</tt><tt class="py-op">,</tt> <tt class="py-string">'reset'</tt><tt class="py-op">,</tt> <tt class="py-string">'file'</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-keyword">continue</tt> </tt>
 <a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">                <tt id="link-571" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
@@ -4012,7 +4012,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:14 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a361e0d..0443b25 100644 (file)
@@ -362,7 +362,8 @@ uncheck individual checkboxes according to their value.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 88f8505..935a03a 100644 (file)
@@ -253,6 +253,10 @@ checkboxes with the same name.
       <code>__lt__</code>,
       <code>__ne__</code>,
       <code>__or__</code>,
+      <code>__rand__</code>,
+      <code>__ror__</code>,
+      <code>__rsub__</code>,
+      <code>__rxor__</code>,
       <code>__sub__</code>,
       <code>__xor__</code>,
       <code>isdisjoint</code>
@@ -536,7 +540,8 @@ checkboxes with the same name.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 15fdad1..3321878 100644 (file)
@@ -319,6 +319,10 @@ False
       <code>__lt__</code>,
       <code>__ne__</code>,
       <code>__or__</code>,
+      <code>__rand__</code>,
+      <code>__ror__</code>,
+      <code>__rsub__</code>,
+      <code>__rxor__</code>,
       <code>__sub__</code>,
       <code>__xor__</code>,
       <code>isdisjoint</code>
@@ -397,21 +401,21 @@ False
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.html.Classes-class.html#_abc_negative_cache" class="summary-name" onclick="show_private();">_abc_negative_cache</a> = <code title="&lt;_weakrefset.WeakSet object at 0x2ab2593ee890&gt;">&lt;_weakrefset.WeakSet object at 0x2ab2593<code class="variable-ellipsis">...</code></code>
+        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object&gt;">&lt;_weakrefset.WeakSet object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_negative_cache_version"></a><span class="summary-name">_abc_negative_cache_version</span> = <code title="22">22</code>
+        <a name="_abc_negative_cache_version"></a><span class="summary-name">_abc_negative_cache_version</span> = <code title="21">21</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x2ab2593ee250&gt;">&lt;_weakrefset.WeakSet object at 0x2ab2593ee250&gt;</code>
+        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object&gt;">&lt;_weakrefset.WeakSet object&gt;</code>
     </td>
   </tr>
   <tr>
@@ -657,43 +661,6 @@ false if it was removed (and is now disabled).</p>
 </td></tr></table>
 </div>
 <br />
-<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
-<a name="section-ClassVariableDetails"></a>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
-  <td colspan="2" class="table-header">
-    <table border="0" cellpadding="0" cellspacing="0" width="100%">
-      <tr valign="top">
-        <td align="left"><span class="table-header">Class Variable Details</span></td>
-        <td align="right" valign="top"
-         ><span class="options">[<a href="#section-ClassVariableDetails"
-         class="privatelink" onclick="toggle_private();"
-         >hide private</a>]</span></td>
-      </tr>
-    </table>
-  </td>
-</tr>
-</table>
-<a name="_abc_negative_cache"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_abc_negative_cache</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-&lt;_weakrefset.WeakSet object at 0x2ab2593ee890&gt;
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<br />
 <!-- ==================== NAVIGATION BAR ==================== -->
 <table class="navbar" border="0" width="100%" cellpadding="0"
        bgcolor="#a0c0ff" cellspacing="0">
@@ -725,7 +692,8 @@ false if it was removed (and is now disabled).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87606d4..41b7e8f 100644 (file)
@@ -263,7 +263,8 @@ keyword.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 398accd..a119468 100644 (file)
@@ -120,7 +120,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 78a1f3e..475e983 100644 (file)
@@ -364,21 +364,21 @@ _abcoll.Container --+
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.html.FieldsDict-class.html#_abc_negative_cache" class="summary-name" onclick="show_private();">_abc_negative_cache</a> = <code title="&lt;_weakrefset.WeakSet object at 0x2ab2593eed90&gt;">&lt;_weakrefset.WeakSet object at 0x2ab2593<code class="variable-ellipsis">...</code></code>
+        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object&gt;">&lt;_weakrefset.WeakSet object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_negative_cache_version"></a><span class="summary-name">_abc_negative_cache_version</span> = <code title="22">22</code>
+        <a name="_abc_negative_cache_version"></a><span class="summary-name">_abc_negative_cache_version</span> = <code title="21">21</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x2ab2593eec50&gt;">&lt;_weakrefset.WeakSet object at 0x2ab2593eec50&gt;</code>
+        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object&gt;">&lt;_weakrefset.WeakSet object&gt;</code>
     </td>
   </tr>
   <tr>
@@ -651,43 +651,6 @@ _abcoll.Container --+
 </td></tr></table>
 </div>
 <br />
-<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
-<a name="section-ClassVariableDetails"></a>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
-  <td colspan="2" class="table-header">
-    <table border="0" cellpadding="0" cellspacing="0" width="100%">
-      <tr valign="top">
-        <td align="left"><span class="table-header">Class Variable Details</span></td>
-        <td align="right" valign="top"
-         ><span class="options">[<a href="#section-ClassVariableDetails"
-         class="privatelink" onclick="toggle_private();"
-         >hide private</a>]</span></td>
-      </tr>
-    </table>
-  </td>
-</tr>
-</table>
-<a name="_abc_negative_cache"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_abc_negative_cache</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-&lt;_weakrefset.WeakSet object at 0x2ab2593eed90&gt;
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<br />
 <!-- ==================== NAVIGATION BAR ==================== -->
 <table class="navbar" border="0" width="100%" cellpadding="0"
        bgcolor="#a0c0ff" cellspacing="0">
@@ -719,7 +682,8 @@ _abcoll.Container --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ca492c..9c6d778 100644 (file)
@@ -427,7 +427,8 @@ string, and defaults to <tt class="rst-docutils literal">'GET'</tt>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1e7fb8a..dd491f5 100644 (file)
@@ -254,7 +254,8 @@ objects.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc98f3e..c3b3c55 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4d07dd8..3ff8ca5 100644 (file)
@@ -323,7 +323,8 @@ speedup.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 08b5b41..3250dd6 100644 (file)
@@ -364,7 +364,8 @@ Element classes.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bb66312..4fa4267 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1253011..240e11e 100644 (file)
@@ -777,7 +777,8 @@ element to get the document's head.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 429f7f1..562f79d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a9c26d9..9947bf0 100644 (file)
@@ -405,7 +405,8 @@ checked, this returns None.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f32c92f..2a9a169 100644 (file)
@@ -431,7 +431,8 @@ nput' or local-name(.) = 'textarea')]
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4dbc4c0..db4d96d 100644 (file)
@@ -279,7 +279,8 @@ Mix-in for all input elements (input, select, and textarea)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 45293d4..1d813d0 100644 (file)
@@ -311,7 +311,8 @@ can't be found.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6dd63cb..8ac234b 100644 (file)
@@ -254,6 +254,10 @@ to unselect the option.</p>
       <code>__lt__</code>,
       <code>__ne__</code>,
       <code>__or__</code>,
+      <code>__rand__</code>,
+      <code>__ror__</code>,
+      <code>__rsub__</code>,
+      <code>__rxor__</code>,
       <code>__sub__</code>,
       <code>__xor__</code>,
       <code>isdisjoint</code>
@@ -579,7 +583,8 @@ to unselect the option.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 94c1805..80bdf22 100644 (file)
@@ -361,7 +361,8 @@ unchecks any other value).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b0c9067..a285ea7 100644 (file)
@@ -376,7 +376,8 @@ attribute of all the <tt class="rst-docutils literal">&lt;option&gt;</tt> elemen
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 32c9eb5..82fe72c 100644 (file)
@@ -316,7 +316,8 @@ get/set the value with <tt class="rst-rst-rst-rst-rst-docutils literal rst-rst-r
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c7ca8ce..fe35a7c 100644 (file)
@@ -266,7 +266,8 @@ parser like this:</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d0e75e8..5489b4c 100644 (file)
@@ -253,7 +253,8 @@ of the resulting document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03fe92f..b53084b 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="E"></a><span class="summary-name">E</span> = <code title="ElementMaker(makeelement= html_parser.makeelement)">ElementMaker(makeelement= html_parser.makeelement)</code>
+        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.builder.ElementMaker object&gt;">&lt;lxml.builder.ElementMaker object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="A"></a><span class="summary-name">A</span> = <code title="E.a">E.a</code>
+        <a name="A"></a><span class="summary-name">A</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="ABBR"></a><span class="summary-name">ABBR</span> = <code title="E.abbr">E.abbr</code>
+        <a name="ABBR"></a><span class="summary-name">ABBR</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="ACRONYM"></a><span class="summary-name">ACRONYM</span> = <code title="E.acronym">E.acronym</code>
+        <a name="ACRONYM"></a><span class="summary-name">ACRONYM</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="ADDRESS"></a><span class="summary-name">ADDRESS</span> = <code title="E.address">E.address</code>
+        <a name="ADDRESS"></a><span class="summary-name">ADDRESS</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="APPLET"></a><span class="summary-name">APPLET</span> = <code title="E.applet">E.applet</code>
+        <a name="APPLET"></a><span class="summary-name">APPLET</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="AREA"></a><span class="summary-name">AREA</span> = <code title="E.area">E.area</code>
+        <a name="AREA"></a><span class="summary-name">AREA</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="B"></a><span class="summary-name">B</span> = <code title="E.b">E.b</code>
+        <a name="B"></a><span class="summary-name">B</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BASE"></a><span class="summary-name">BASE</span> = <code title="E.base">E.base</code>
+        <a name="BASE"></a><span class="summary-name">BASE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BASEFONT"></a><span class="summary-name">BASEFONT</span> = <code title="E.basefont">E.basefont</code>
+        <a name="BASEFONT"></a><span class="summary-name">BASEFONT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BDO"></a><span class="summary-name">BDO</span> = <code title="E.bdo">E.bdo</code>
+        <a name="BDO"></a><span class="summary-name">BDO</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BIG"></a><span class="summary-name">BIG</span> = <code title="E.big">E.big</code>
+        <a name="BIG"></a><span class="summary-name">BIG</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BLOCKQUOTE"></a><span class="summary-name">BLOCKQUOTE</span> = <code title="E.blockquote">E.blockquote</code>
+        <a name="BLOCKQUOTE"></a><span class="summary-name">BLOCKQUOTE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BODY"></a><span class="summary-name">BODY</span> = <code title="E.body">E.body</code>
+        <a name="BODY"></a><span class="summary-name">BODY</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BR"></a><span class="summary-name">BR</span> = <code title="E.br">E.br</code>
+        <a name="BR"></a><span class="summary-name">BR</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="BUTTON"></a><span class="summary-name">BUTTON</span> = <code title="E.button">E.button</code>
+        <a name="BUTTON"></a><span class="summary-name">BUTTON</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="CAPTION"></a><span class="summary-name">CAPTION</span> = <code title="E.caption">E.caption</code>
+        <a name="CAPTION"></a><span class="summary-name">CAPTION</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="CENTER"></a><span class="summary-name">CENTER</span> = <code title="E.center">E.center</code>
+        <a name="CENTER"></a><span class="summary-name">CENTER</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="CITE"></a><span class="summary-name">CITE</span> = <code title="E.cite">E.cite</code>
+        <a name="CITE"></a><span class="summary-name">CITE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="CODE"></a><span class="summary-name">CODE</span> = <code title="E.code">E.code</code>
+        <a name="CODE"></a><span class="summary-name">CODE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="COL"></a><span class="summary-name">COL</span> = <code title="E.col">E.col</code>
+        <a name="COL"></a><span class="summary-name">COL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="COLGROUP"></a><span class="summary-name">COLGROUP</span> = <code title="E.colgroup">E.colgroup</code>
+        <a name="COLGROUP"></a><span class="summary-name">COLGROUP</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DD"></a><span class="summary-name">DD</span> = <code title="E.dd">E.dd</code>
+        <a name="DD"></a><span class="summary-name">DD</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DEL"></a><span class="summary-name">DEL</span> = <code title="getattr(E, 'del')">getattr(E, 'del')</code>
+        <a name="DEL"></a><span class="summary-name">DEL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DFN"></a><span class="summary-name">DFN</span> = <code title="E.dfn">E.dfn</code>
+        <a name="DFN"></a><span class="summary-name">DFN</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DIR"></a><span class="summary-name">DIR</span> = <code title="E.dir">E.dir</code>
+        <a name="DIR"></a><span class="summary-name">DIR</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DIV"></a><span class="summary-name">DIV</span> = <code title="E.div">E.div</code>
+        <a name="DIV"></a><span class="summary-name">DIV</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DL"></a><span class="summary-name">DL</span> = <code title="E.dl">E.dl</code>
+        <a name="DL"></a><span class="summary-name">DL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="DT"></a><span class="summary-name">DT</span> = <code title="E.dt">E.dt</code>
+        <a name="DT"></a><span class="summary-name">DT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="EM"></a><span class="summary-name">EM</span> = <code title="E.em">E.em</code>
+        <a name="EM"></a><span class="summary-name">EM</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="FIELDSET"></a><span class="summary-name">FIELDSET</span> = <code title="E.fieldset">E.fieldset</code>
+        <a name="FIELDSET"></a><span class="summary-name">FIELDSET</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="FONT"></a><span class="summary-name">FONT</span> = <code title="E.font">E.font</code>
+        <a name="FONT"></a><span class="summary-name">FONT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="FORM"></a><span class="summary-name">FORM</span> = <code title="E.form">E.form</code>
+        <a name="FORM"></a><span class="summary-name">FORM</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="FRAME"></a><span class="summary-name">FRAME</span> = <code title="E.frame">E.frame</code>
+        <a name="FRAME"></a><span class="summary-name">FRAME</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="FRAMESET"></a><span class="summary-name">FRAMESET</span> = <code title="E.frameset">E.frameset</code>
+        <a name="FRAMESET"></a><span class="summary-name">FRAMESET</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="H1"></a><span class="summary-name">H1</span> = <code title="E.h1">E.h1</code>
+        <a name="H1"></a><span class="summary-name">H1</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="H2"></a><span class="summary-name">H2</span> = <code title="E.h2">E.h2</code>
+        <a name="H2"></a><span class="summary-name">H2</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="H3"></a><span class="summary-name">H3</span> = <code title="E.h3">E.h3</code>
+        <a name="H3"></a><span class="summary-name">H3</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="H4"></a><span class="summary-name">H4</span> = <code title="E.h4">E.h4</code>
+        <a name="H4"></a><span class="summary-name">H4</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="H5"></a><span class="summary-name">H5</span> = <code title="E.h5">E.h5</code>
+        <a name="H5"></a><span class="summary-name">H5</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="H6"></a><span class="summary-name">H6</span> = <code title="E.h6">E.h6</code>
+        <a name="H6"></a><span class="summary-name">H6</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="HEAD"></a><span class="summary-name">HEAD</span> = <code title="E.head">E.head</code>
+        <a name="HEAD"></a><span class="summary-name">HEAD</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="HR"></a><span class="summary-name">HR</span> = <code title="E.hr">E.hr</code>
+        <a name="HR"></a><span class="summary-name">HR</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="HTML"></a><span class="summary-name">HTML</span> = <code title="E.html">E.html</code>
+        <a name="HTML"></a><span class="summary-name">HTML</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="I"></a><span class="summary-name">I</span> = <code title="E.i">E.i</code>
+        <a name="I"></a><span class="summary-name">I</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="IFRAME"></a><span class="summary-name">IFRAME</span> = <code title="E.iframe">E.iframe</code>
+        <a name="IFRAME"></a><span class="summary-name">IFRAME</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="IMG"></a><span class="summary-name">IMG</span> = <code title="E.img">E.img</code>
+        <a name="IMG"></a><span class="summary-name">IMG</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="INPUT"></a><span class="summary-name">INPUT</span> = <code title="E.input">E.input</code>
+        <a name="INPUT"></a><span class="summary-name">INPUT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="INS"></a><span class="summary-name">INS</span> = <code title="E.ins">E.ins</code>
+        <a name="INS"></a><span class="summary-name">INS</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="ISINDEX"></a><span class="summary-name">ISINDEX</span> = <code title="E.isindex">E.isindex</code>
+        <a name="ISINDEX"></a><span class="summary-name">ISINDEX</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="KBD"></a><span class="summary-name">KBD</span> = <code title="E.kbd">E.kbd</code>
+        <a name="KBD"></a><span class="summary-name">KBD</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LABEL"></a><span class="summary-name">LABEL</span> = <code title="E.label">E.label</code>
+        <a name="LABEL"></a><span class="summary-name">LABEL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LEGEND"></a><span class="summary-name">LEGEND</span> = <code title="E.legend">E.legend</code>
+        <a name="LEGEND"></a><span class="summary-name">LEGEND</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LI"></a><span class="summary-name">LI</span> = <code title="E.li">E.li</code>
+        <a name="LI"></a><span class="summary-name">LI</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LINK"></a><span class="summary-name">LINK</span> = <code title="E.link">E.link</code>
+        <a name="LINK"></a><span class="summary-name">LINK</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="MAP"></a><span class="summary-name">MAP</span> = <code title="E.map">E.map</code>
+        <a name="MAP"></a><span class="summary-name">MAP</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="MENU"></a><span class="summary-name">MENU</span> = <code title="E.menu">E.menu</code>
+        <a name="MENU"></a><span class="summary-name">MENU</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="META"></a><span class="summary-name">META</span> = <code title="E.meta">E.meta</code>
+        <a name="META"></a><span class="summary-name">META</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="NOFRAMES"></a><span class="summary-name">NOFRAMES</span> = <code title="E.noframes">E.noframes</code>
+        <a name="NOFRAMES"></a><span class="summary-name">NOFRAMES</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="NOSCRIPT"></a><span class="summary-name">NOSCRIPT</span> = <code title="E.noscript">E.noscript</code>
+        <a name="NOSCRIPT"></a><span class="summary-name">NOSCRIPT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="OBJECT"></a><span class="summary-name">OBJECT</span> = <code title="E.object">E.object</code>
+        <a name="OBJECT"></a><span class="summary-name">OBJECT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="OL"></a><span class="summary-name">OL</span> = <code title="E.ol">E.ol</code>
+        <a name="OL"></a><span class="summary-name">OL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="OPTGROUP"></a><span class="summary-name">OPTGROUP</span> = <code title="E.optgroup">E.optgroup</code>
+        <a name="OPTGROUP"></a><span class="summary-name">OPTGROUP</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="OPTION"></a><span class="summary-name">OPTION</span> = <code title="E.option">E.option</code>
+        <a name="OPTION"></a><span class="summary-name">OPTION</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="P"></a><span class="summary-name">P</span> = <code title="E.p">E.p</code>
+        <a name="P"></a><span class="summary-name">P</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="PARAM"></a><span class="summary-name">PARAM</span> = <code title="E.param">E.param</code>
+        <a name="PARAM"></a><span class="summary-name">PARAM</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="PRE"></a><span class="summary-name">PRE</span> = <code title="E.pre">E.pre</code>
+        <a name="PRE"></a><span class="summary-name">PRE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="Q"></a><span class="summary-name">Q</span> = <code title="E.q">E.q</code>
+        <a name="Q"></a><span class="summary-name">Q</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="S"></a><span class="summary-name">S</span> = <code title="E.s">E.s</code>
+        <a name="S"></a><span class="summary-name">S</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SAMP"></a><span class="summary-name">SAMP</span> = <code title="E.samp">E.samp</code>
+        <a name="SAMP"></a><span class="summary-name">SAMP</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SCRIPT"></a><span class="summary-name">SCRIPT</span> = <code title="E.script">E.script</code>
+        <a name="SCRIPT"></a><span class="summary-name">SCRIPT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SELECT"></a><span class="summary-name">SELECT</span> = <code title="E.select">E.select</code>
+        <a name="SELECT"></a><span class="summary-name">SELECT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SMALL"></a><span class="summary-name">SMALL</span> = <code title="E.small">E.small</code>
+        <a name="SMALL"></a><span class="summary-name">SMALL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SPAN"></a><span class="summary-name">SPAN</span> = <code title="E.span">E.span</code>
+        <a name="SPAN"></a><span class="summary-name">SPAN</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="STRIKE"></a><span class="summary-name">STRIKE</span> = <code title="E.strike">E.strike</code>
+        <a name="STRIKE"></a><span class="summary-name">STRIKE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="STRONG"></a><span class="summary-name">STRONG</span> = <code title="E.strong">E.strong</code>
+        <a name="STRONG"></a><span class="summary-name">STRONG</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="STYLE"></a><span class="summary-name">STYLE</span> = <code title="E.style">E.style</code>
+        <a name="STYLE"></a><span class="summary-name">STYLE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SUB"></a><span class="summary-name">SUB</span> = <code title="E.sub">E.sub</code>
+        <a name="SUB"></a><span class="summary-name">SUB</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="SUP"></a><span class="summary-name">SUP</span> = <code title="E.sup">E.sup</code>
+        <a name="SUP"></a><span class="summary-name">SUP</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TABLE"></a><span class="summary-name">TABLE</span> = <code title="E.table">E.table</code>
+        <a name="TABLE"></a><span class="summary-name">TABLE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TBODY"></a><span class="summary-name">TBODY</span> = <code title="E.tbody">E.tbody</code>
+        <a name="TBODY"></a><span class="summary-name">TBODY</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TD"></a><span class="summary-name">TD</span> = <code title="E.td">E.td</code>
+        <a name="TD"></a><span class="summary-name">TD</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TEXTAREA"></a><span class="summary-name">TEXTAREA</span> = <code title="E.textarea">E.textarea</code>
+        <a name="TEXTAREA"></a><span class="summary-name">TEXTAREA</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TFOOT"></a><span class="summary-name">TFOOT</span> = <code title="E.tfoot">E.tfoot</code>
+        <a name="TFOOT"></a><span class="summary-name">TFOOT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TH"></a><span class="summary-name">TH</span> = <code title="E.th">E.th</code>
+        <a name="TH"></a><span class="summary-name">TH</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="THEAD"></a><span class="summary-name">THEAD</span> = <code title="E.thead">E.thead</code>
+        <a name="THEAD"></a><span class="summary-name">THEAD</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TITLE"></a><span class="summary-name">TITLE</span> = <code title="E.title">E.title</code>
+        <a name="TITLE"></a><span class="summary-name">TITLE</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TR"></a><span class="summary-name">TR</span> = <code title="E.tr">E.tr</code>
+        <a name="TR"></a><span class="summary-name">TR</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="TT"></a><span class="summary-name">TT</span> = <code title="E.tt">E.tt</code>
+        <a name="TT"></a><span class="summary-name">TT</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="U"></a><span class="summary-name">U</span> = <code title="E.u">E.u</code>
+        <a name="U"></a><span class="summary-name">U</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="UL"></a><span class="summary-name">UL</span> = <code title="E.ul">E.ul</code>
+        <a name="UL"></a><span class="summary-name">UL</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="VAR"></a><span class="summary-name">VAR</span> = <code title="E.var">E.var</code>
+        <a name="VAR"></a><span class="summary-name">VAR</span> = <code title="&lt;functools.partial object&gt;">&lt;functools.partial object&gt;</code>
     </td>
   </tr>
 <tr>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 46c33ed..ec1fb3d 100644 (file)
@@ -435,7 +435,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:11 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 62a3ef0..fcae159 100644 (file)
@@ -433,7 +433,7 @@ ref) and substring(normalize-space(@href),1,1) != '#']">descendant-or-self::a  [
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="clean"></a><span class="summary-name">clean</span> = <code title="Cleaner()">Cleaner()</code>
+        <a name="clean"></a><span class="summary-name">clean</span> = <code title="&lt;lxml.html.clean.Cleaner object&gt;">&lt;lxml.html.clean.Cleaner object&gt;</code>
     </td>
   </tr>
 <tr class="private">
@@ -754,7 +754,8 @@ a<code class="re-op">-</code>z0<code class="re-op">-</code>9%&amp;\?;=~<code cla
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0b9eed8..2e7aa4e 100644 (file)
@@ -198,1070 +198,1079 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 <a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">     <tt class="py-string">"descendant-or-self::x:a[normalize-space(@href) and substring(normalize-space(@href),1,1) != '#']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 <a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt id="link-42" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-42', 'XHTML_NAMESPACE', 'link-11');">XHTML_NAMESPACE</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
 <a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner"></a><div id="Cleaner-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="Cleaner-toggle" onclick="return toggle('Cleaner');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html">Cleaner</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Cleaner-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">    Instances cleans the document of each of the possible offending</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">    elements.  The cleaning is controlled by attributes; you can</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring">    override attributes in a subclass, or set them in the constructor.</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring">    ``scripts``:</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any ``&lt;script&gt;`` tags.</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring">    ``javascript``:</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any Javascript, like an ``onclick`` attribute. Also removes stylesheets</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-docstring">        as they could contain Javascript.</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring">    ``comments``:</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any comments.</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">    ``style``:</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any style tags or attributes.</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">    ``links``:</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any ``&lt;link&gt;`` tags</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">    ``meta``:</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any ``&lt;meta&gt;`` tags</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">    ``page_structure``:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">        Structural parts of a page: ``&lt;head&gt;``, ``&lt;html&gt;``, ``&lt;title&gt;``.</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">    ``processing_instructions``:</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any processing instructions.</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring">    ``embedded``:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any embedded objects (flash, iframes)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">    ``frames``:</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any frame-related tags</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">    ``forms``:</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any form tags</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">    ``annoying_tags``:</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">        Tags that aren't *wrong*, but are annoying.  ``&lt;blink&gt;`` and ``&lt;marquee&gt;``</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">    ``remove_tags``:</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">        A list of tags to remove.  Only the tags will be removed,</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">        their content will get pulled up into the parent tag.</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner"></a><div id="Cleaner-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="Cleaner-toggle" onclick="return toggle('Cleaner');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html">Cleaner</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Cleaner-expanded"><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">    Instances cleans the document of each of the possible offending</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring">    elements.  The cleaning is controlled by attributes; you can</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-docstring">    override attributes in a subclass, or set them in the constructor.</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">    ``scripts``:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any ``&lt;script&gt;`` tags.</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-docstring">    ``javascript``:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any Javascript, like an ``onclick`` attribute. Also removes stylesheets</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring">        as they could contain Javascript.</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">    ``comments``:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any comments.</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">    ``style``:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any style tags.</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">    ``inline_style``</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any style attributes.  Defaults to the value of the ``style`` option.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">    ``links``:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any ``&lt;link&gt;`` tags</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">    ``meta``:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any ``&lt;meta&gt;`` tags</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">    ``page_structure``:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring">        Structural parts of a page: ``&lt;head&gt;``, ``&lt;html&gt;``, ``&lt;title&gt;``.</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">    ``processing_instructions``:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any processing instructions.</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">    ``embedded``:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any embedded objects (flash, iframes)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">    ``frames``:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any frame-related tags</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">    ``forms``:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">        Removes any form tags</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">    ``annoying_tags``:</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">        Tags that aren't *wrong*, but are annoying.  ``&lt;blink&gt;`` and ``&lt;marquee&gt;``</tt> </tt>
 <a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">    ``kill_tags``:</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">        A list of tags to kill.  Killing also removes the tag's content,</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">        i.e. the whole subtree, not just the tag itself.</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">    ``remove_tags``:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">        A list of tags to remove.  Only the tags will be removed,</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">        their content will get pulled up into the parent tag.</tt> </tt>
 <a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    ``allow_tags``:</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">        A list of tags to include (default include all).</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">    ``remove_unknown_tags``:</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">        Remove any tags that aren't standard parts of HTML.</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    ``safe_attrs_only``:</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">        If true, only include 'safe' attributes (specifically the list</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">        from the feedparser HTML sanitisation web site).</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    ``kill_tags``:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">        A list of tags to kill.  Killing also removes the tag's content,</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring">        i.e. the whole subtree, not just the tag itself.</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">    ``allow_tags``:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        A list of tags to include (default include all).</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">    ``remove_unknown_tags``:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">        Remove any tags that aren't standard parts of HTML.</tt> </tt>
 <a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">    ``safe_attrs``:</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">        A set of attribute names to override the default list of attributes</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">        considered 'safe' (when safe_attrs_only=True).</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">    ``safe_attrs_only``:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">        If true, only include 'safe' attributes (specifically the list</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">        from the feedparser HTML sanitisation web site).</tt> </tt>
 <a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">    ``add_nofollow``:</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">        If true, then any &lt;a&gt; tags will have ``rel="nofollow"`` added to them.</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">    ``host_whitelist``:</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring">        A list or set of hosts that you can use for embedded content</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">        (for content like ``&lt;object&gt;``, ``&lt;link rel="stylesheet"&gt;``, etc).</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        You can also implement/override the method</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">        ``allow_embedded_url(el, url)`` or ``allow_element(el)`` to</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        implement more complex rules for what can be embedded.</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">        Anything that passes this test will be shown, regardless of</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        the value of (for instance) ``embedded``.</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">        Note that this parameter might not work as intended if you do not</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">        make the links absolute before doing the cleaning.</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">        Note that you may also need to set ``whitelist_tags``.</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">    ``whitelist_tags``:</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"><tt class="py-docstring">        A set of tags that can be included with ``host_whitelist``.</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-docstring">        The default is ``iframe`` and ``embed``; you may wish to</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-docstring">        include other tags like ``script``, or you may want to</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"><tt class="py-docstring">        implement ``allow_embedded_url`` for more control.  Set to None to</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-docstring">        include all tags.</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring">    This modifies the document *in place*.</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">    <tt id="link-43" class="py-name" targets="Variable lxml.html.clean.Cleaner.scripts=lxml.html.clean.Cleaner-class.html#scripts"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-43', 'scripts', 'link-43');">scripts</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt id="link-44" class="py-name" targets="Variable lxml.html.clean.Cleaner.javascript=lxml.html.clean.Cleaner-class.html#javascript"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-44', 'javascript', 'link-44');">javascript</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">    <tt id="link-45" class="py-name" targets="Variable lxml.html.clean.Cleaner.comments=lxml.html.clean.Cleaner-class.html#comments"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-45', 'comments', 'link-45');">comments</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">    <tt id="link-46" class="py-name" targets="Variable lxml.html.clean.Cleaner.style=lxml.html.clean.Cleaner-class.html#style"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-46', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt id="link-47" class="py-name" targets="Variable lxml.html.clean.Cleaner.links=lxml.html.clean.Cleaner-class.html#links"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-47', 'links', 'link-47');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt id="link-48" class="py-name" targets="Variable lxml.html.clean.Cleaner.meta=lxml.html.clean.Cleaner-class.html#meta"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-48', 'meta', 'link-48');">meta</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">    <tt id="link-49" class="py-name" targets="Variable lxml.html.clean.Cleaner.page_structure=lxml.html.clean.Cleaner-class.html#page_structure"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-49', 'page_structure', 'link-49');">page_structure</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">    <tt id="link-50" class="py-name" targets="Variable lxml.html.clean.Cleaner.processing_instructions=lxml.html.clean.Cleaner-class.html#processing_instructions"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-50', 'processing_instructions', 'link-50');">processing_instructions</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">    <tt id="link-51" class="py-name" targets="Variable lxml.html.clean.Cleaner.embedded=lxml.html.clean.Cleaner-class.html#embedded"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-51', 'embedded', 'link-51');">embedded</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">    <tt id="link-52" class="py-name" targets="Variable lxml.html.clean.Cleaner.frames=lxml.html.clean.Cleaner-class.html#frames"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-52', 'frames', 'link-52');">frames</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">    <tt id="link-53" class="py-name" targets="Variable lxml.html.HtmlMixin.forms=lxml.html.HtmlMixin-class.html#forms,Variable lxml.html.clean.Cleaner.forms=lxml.html.clean.Cleaner-class.html#forms"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-53', 'forms', 'link-53');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">    <tt id="link-54" class="py-name" targets="Variable lxml.html.clean.Cleaner.annoying_tags=lxml.html.clean.Cleaner-class.html#annoying_tags"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-54', 'annoying_tags', 'link-54');">annoying_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">    <tt id="link-55" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_tags=lxml.html.clean.Cleaner-class.html#remove_tags"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-55', 'remove_tags', 'link-55');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">    <tt id="link-56" class="py-name" targets="Variable lxml.html.clean.Cleaner.allow_tags=lxml.html.clean.Cleaner-class.html#allow_tags"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-56', 'allow_tags', 'link-56');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">    <tt id="link-57" class="py-name" targets="Variable lxml.html.clean.Cleaner.kill_tags=lxml.html.clean.Cleaner-class.html#kill_tags"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-57', 'kill_tags', 'link-57');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">    <tt id="link-58" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_unknown_tags=lxml.html.clean.Cleaner-class.html#remove_unknown_tags"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-58', 'remove_unknown_tags', 'link-58');">remove_unknown_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">    <tt id="link-59" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs_only=lxml.html.clean.Cleaner-class.html#safe_attrs_only"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-59', 'safe_attrs_only', 'link-59');">safe_attrs_only</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">    <tt id="link-60" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs=lxml.html.clean.Cleaner-class.html#safe_attrs,Variable lxml.html.defs.safe_attrs=lxml.html.defs-module.html#safe_attrs"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-60', 'safe_attrs', 'link-60');">safe_attrs</a></tt> <tt class="py-op">=</tt> <tt id="link-61" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-61', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-62', 'safe_attrs', 'link-60');">safe_attrs</a></tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt id="link-63" class="py-name" targets="Variable lxml.html.clean.Cleaner.add_nofollow=lxml.html.clean.Cleaner-class.html#add_nofollow"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-63', 'add_nofollow', 'link-63');">add_nofollow</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt id="link-64" class="py-name" targets="Variable lxml.html.clean.Cleaner.host_whitelist=lxml.html.clean.Cleaner-class.html#host_whitelist"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-64', 'host_whitelist', 'link-64');">host_whitelist</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt id="link-65" class="py-name" targets="Variable lxml.html.clean.Cleaner.whitelist_tags=lxml.html.clean.Cleaner-class.html#whitelist_tags"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-65', 'whitelist_tags', 'link-65');">whitelist_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-66" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-66', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.__init__"></a><div id="Cleaner.__init__-def"><a name="L212"></a><tt class="py-lineno">212</tt> <a class="py-toggle" href="#" id="Cleaner.__init__-toggle" onclick="return toggle('Cleaner.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__init__-expanded"><a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-67" 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
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">    ``safe_attrs``:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">        A set of attribute names to override the default list of attributes</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">        considered 'safe' (when safe_attrs_only=True).</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring">    ``add_nofollow``:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">        If true, then any &lt;a&gt; tags will have ``rel="nofollow"`` added to them.</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">    ``host_whitelist``:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        A list or set of hosts that you can use for embedded content</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">        (for content like ``&lt;object&gt;``, ``&lt;link rel="stylesheet"&gt;``, etc).</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        You can also implement/override the method</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">        ``allow_embedded_url(el, url)`` or ``allow_element(el)`` to</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">        implement more complex rules for what can be embedded.</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">        Anything that passes this test will be shown, regardless of</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">        the value of (for instance) ``embedded``.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring">        Note that this parameter might not work as intended if you do not</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">        make the links absolute before doing the cleaning.</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-docstring">        Note that you may also need to set ``whitelist_tags``.</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"><tt class="py-docstring">    ``whitelist_tags``:</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-docstring">        A set of tags that can be included with ``host_whitelist``.</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-docstring">        The default is ``iframe`` and ``embed``; you may wish to</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring">        include other tags like ``script``, or you may want to</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-docstring">        implement ``allow_embedded_url`` for more control.  Set to None to</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-docstring">        include all tags.</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-docstring">    This modifies the document *in place*.</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt id="link-43" class="py-name" targets="Variable lxml.html.clean.Cleaner.scripts=lxml.html.clean.Cleaner-class.html#scripts"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-43', 'scripts', 'link-43');">scripts</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt id="link-44" class="py-name" targets="Variable lxml.html.clean.Cleaner.javascript=lxml.html.clean.Cleaner-class.html#javascript"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-44', 'javascript', 'link-44');">javascript</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">    <tt id="link-45" class="py-name" targets="Variable lxml.html.clean.Cleaner.comments=lxml.html.clean.Cleaner-class.html#comments"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-45', 'comments', 'link-45');">comments</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">    <tt id="link-46" class="py-name" targets="Variable lxml.html.clean.Cleaner.style=lxml.html.clean.Cleaner-class.html#style"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-46', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">    <tt id="link-47" class="py-name" targets="Variable lxml.html.clean.Cleaner.inline_style=lxml.html.clean.Cleaner-class.html#inline_style"><a title="lxml.html.clean.Cleaner.inline_style" class="py-name" href="#" onclick="return doclink('link-47', 'inline_style', 'link-47');">inline_style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">    <tt id="link-48" class="py-name" targets="Variable lxml.html.clean.Cleaner.links=lxml.html.clean.Cleaner-class.html#links"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-48', 'links', 'link-48');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">    <tt id="link-49" class="py-name" targets="Variable lxml.html.clean.Cleaner.meta=lxml.html.clean.Cleaner-class.html#meta"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-49', 'meta', 'link-49');">meta</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">    <tt id="link-50" class="py-name" targets="Variable lxml.html.clean.Cleaner.page_structure=lxml.html.clean.Cleaner-class.html#page_structure"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-50', 'page_structure', 'link-50');">page_structure</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">    <tt id="link-51" class="py-name" targets="Variable lxml.html.clean.Cleaner.processing_instructions=lxml.html.clean.Cleaner-class.html#processing_instructions"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-51', 'processing_instructions', 'link-51');">processing_instructions</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">    <tt id="link-52" class="py-name" targets="Variable lxml.html.clean.Cleaner.embedded=lxml.html.clean.Cleaner-class.html#embedded"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-52', 'embedded', 'link-52');">embedded</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">    <tt id="link-53" class="py-name" targets="Variable lxml.html.clean.Cleaner.frames=lxml.html.clean.Cleaner-class.html#frames"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-53', 'frames', 'link-53');">frames</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">    <tt id="link-54" class="py-name" targets="Variable lxml.html.HtmlMixin.forms=lxml.html.HtmlMixin-class.html#forms,Variable lxml.html.clean.Cleaner.forms=lxml.html.clean.Cleaner-class.html#forms"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-54', 'forms', 'link-54');">forms</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">    <tt id="link-55" class="py-name" targets="Variable lxml.html.clean.Cleaner.annoying_tags=lxml.html.clean.Cleaner-class.html#annoying_tags"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-55', 'annoying_tags', 'link-55');">annoying_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">    <tt id="link-56" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_tags=lxml.html.clean.Cleaner-class.html#remove_tags"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-56', 'remove_tags', 'link-56');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt id="link-57" class="py-name" targets="Variable lxml.html.clean.Cleaner.allow_tags=lxml.html.clean.Cleaner-class.html#allow_tags"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-57', 'allow_tags', 'link-57');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt id="link-58" class="py-name" targets="Variable lxml.html.clean.Cleaner.kill_tags=lxml.html.clean.Cleaner-class.html#kill_tags"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-58', 'kill_tags', 'link-58');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt id="link-59" class="py-name" targets="Variable lxml.html.clean.Cleaner.remove_unknown_tags=lxml.html.clean.Cleaner-class.html#remove_unknown_tags"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-59', 'remove_unknown_tags', 'link-59');">remove_unknown_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt id="link-60" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs_only=lxml.html.clean.Cleaner-class.html#safe_attrs_only"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-60', 'safe_attrs_only', 'link-60');">safe_attrs_only</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt id="link-61" class="py-name" targets="Variable lxml.html.clean.Cleaner.safe_attrs=lxml.html.clean.Cleaner-class.html#safe_attrs,Variable lxml.html.defs.safe_attrs=lxml.html.defs-module.html#safe_attrs"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-61', 'safe_attrs', 'link-61');">safe_attrs</a></tt> <tt class="py-op">=</tt> <tt id="link-62" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-62', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-63', 'safe_attrs', 'link-61');">safe_attrs</a></tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">    <tt id="link-64" class="py-name" targets="Variable lxml.html.clean.Cleaner.add_nofollow=lxml.html.clean.Cleaner-class.html#add_nofollow"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-64', 'add_nofollow', 'link-64');">add_nofollow</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">    <tt id="link-65" class="py-name" targets="Variable lxml.html.clean.Cleaner.host_whitelist=lxml.html.clean.Cleaner-class.html#host_whitelist"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-65', 'host_whitelist', 'link-65');">host_whitelist</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">    <tt id="link-66" class="py-name" targets="Variable lxml.html.clean.Cleaner.whitelist_tags=lxml.html.clean.Cleaner-class.html#whitelist_tags"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-66', 'whitelist_tags', 'link-66');">whitelist_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-67', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.__init__"></a><div id="Cleaner.__init__-def"><a name="L217"></a><tt class="py-lineno">217</tt> <a class="py-toggle" href="#" id="Cleaner.__init__-toggle" onclick="return toggle('Cleaner.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__init__-expanded"><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-68" 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-67', 'name', 'link-67');">name</a></tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-68', 'name', 'link-68');">name</a></tt><tt class="py-op">,</tt> <tt id="link-69" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-68', 'value', 'link-68');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">kw</tt><tt class="py-op">.</tt><tt id="link-69" 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.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-69', 'value', 'link-69');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">kw</tt><tt class="py-op">.</tt><tt id="link-70" 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-69', 'items', 'link-69');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-70" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-70', 'hasattr', 'link-70');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-71" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-70', 'items', 'link-70');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-71" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-71', 'hasattr', 'link-71');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-72" 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-71', 'name', 'link-67');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">                    <tt class="py-string">"Unknown parameter: %s=%r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-72', 'name', 'link-68');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">                    <tt class="py-string">"Unknown parameter: %s=%r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-73" 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-72', 'name', 'link-67');">name</a></tt><tt class="py-op">,</tt> <tt id="link-73" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-73', 'name', 'link-68');">name</a></tt><tt class="py-op">,</tt> <tt id="link-74" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-73', 'value', 'link-68');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">            <tt id="link-74" class="py-name" targets="Method lxml.objectify.ObjectPath.setattr()=lxml.objectify.ObjectPath-class.html#setattr"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-74', 'setattr', 'link-74');">setattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-74', 'value', 'link-69');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt id="link-75" class="py-name" targets="Method lxml.objectify.ObjectPath.setattr()=lxml.objectify.ObjectPath-class.html#setattr"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-75', 'setattr', 'link-75');">setattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-76" 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-75', 'name', 'link-67');">name</a></tt><tt class="py-op">,</tt> <tt id="link-76" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-76', 'name', 'link-68');">name</a></tt><tt class="py-op">,</tt> <tt id="link-77" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-76', 'value', 'link-68');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-comment"># Used to lookup the primary URL for a given tag that is up for</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">    <tt class="py-comment"># removal:</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">    <tt id="link-77" class="py-name" targets="Variable lxml.html.clean.Cleaner._tag_link_attrs=lxml.html.clean.Cleaner-class.html#_tag_link_attrs"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-77', '_tag_link_attrs', 'link-77');">_tag_link_attrs</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-name">script</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">        <tt class="py-name">link</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">        <tt class="py-comment"># From: http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt class="py-comment"># From what I can tell, both attributes can contain a link:</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">        <tt class="py-name">applet</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt class="py-name">iframe</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt class="py-name">embed</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt class="py-name">layer</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: there doesn't really seem like a general way to figure out what</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-comment"># links an &lt;object&gt; tag uses; links often go in &lt;param&gt; tags with values</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-comment"># that we don't really know.  You'd have to have knowledge about specific</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-comment"># kinds of plugins (probably keyed off classid), and match against those.</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-comment">##object=?,</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: not looking at the action currently, because it is more complex</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-comment"># than than -- if you keep the form, you should keep the form controls.</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-comment">##form='action',</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.__call__"></a><div id="Cleaner.__call__-def"><a name="L241"></a><tt class="py-lineno">241</tt> <a class="py-toggle" href="#" id="Cleaner.__call__-toggle" onclick="return toggle('Cleaner.__call__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.__call__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__call__-expanded"><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">        Cleans the document.</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-78" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-78', 'hasattr', 'link-70');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'getroot'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">            <tt class="py-comment"># ElementTree instance, instead of an element</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">            <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-79" 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-79', 'getroot', 'link-79');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-comment"># convert XHTML to HTML</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-name">xhtml_to_html</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-comment"># Normalize a case that IE treats &lt;image&gt; like &lt;img&gt;, and that</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">        <tt class="py-comment"># can confuse either this step or later steps.</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-80" 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-80', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'image'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-77', 'value', 'link-69');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</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-78" class="py-name"><a title="lxml.html.clean.Cleaner.inline_style" class="py-name" href="#" onclick="return doclink('link-78', 'inline_style', 'link-47');">inline_style</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'inline_style'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kw</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="lxml.html.clean.Cleaner.inline_style" class="py-name" href="#" onclick="return doclink('link-79', 'inline_style', 'link-47');">inline_style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-80', 'style', 'link-46');">style</a></tt> </tt>
+</div><a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">    <tt class="py-comment"># Used to lookup the primary URL for a given tag that is up for</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">    <tt class="py-comment"># removal:</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">    <tt id="link-81" class="py-name" targets="Variable lxml.html.clean.Cleaner._tag_link_attrs=lxml.html.clean.Cleaner-class.html#_tag_link_attrs"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-81', '_tag_link_attrs', 'link-81');">_tag_link_attrs</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt class="py-name">script</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-name">link</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-comment"># From: http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-comment"># From what I can tell, both attributes can contain a link:</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">applet</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">iframe</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">embed</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-name">layer</tt><tt class="py-op">=</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: there doesn't really seem like a general way to figure out what</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-comment"># links an &lt;object&gt; tag uses; links often go in &lt;param&gt; tags with values</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-comment"># that we don't really know.  You'd have to have knowledge about specific</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">        <tt class="py-comment"># kinds of plugins (probably keyed off classid), and match against those.</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-comment">##object=?,</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: not looking at the action currently, because it is more complex</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-comment"># than than -- if you keep the form, you should keep the form controls.</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-comment">##form='action',</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">=</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.__call__"></a><div id="Cleaner.__call__-def"><a name="L248"></a><tt class="py-lineno">248</tt> <a class="py-toggle" href="#" id="Cleaner.__call__-toggle" onclick="return toggle('Cleaner.__call__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.__call__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.__call__-expanded"><a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">        Cleans the document.</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-82" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-82', 'hasattr', 'link-71');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'getroot'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">            <tt class="py-comment"># ElementTree instance, instead of an element</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">            <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-83" 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-83', 'getroot', 'link-83');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-comment"># convert XHTML to HTML</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-name">xhtml_to_html</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-comment"># Normalize a case that IE treats &lt;image&gt; like &lt;img&gt;, and that</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt class="py-comment"># can confuse either this step or later steps.</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-84" 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-84', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'image'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><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-81', 'tag', 'link-81');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'img'</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-82', 'comments', 'link-45');">comments</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">            <tt class="py-comment"># Of course, if we were going to kill comments anyway, we don't</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">            <tt class="py-comment"># need to worry about this</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method lxml.html.clean.Cleaner.kill_conditional_comments()=lxml.html.clean.Cleaner-class.html#kill_conditional_comments"><a title="lxml.html.clean.Cleaner.kill_conditional_comments" class="py-name" href="#" onclick="return doclink('link-83', 'kill_conditional_comments', 'link-83');">kill_conditional_comments</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt id="link-84" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-84', 'kill_tags', 'link-57');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-85', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-86', 'kill_tags', 'link-57');">kill_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt id="link-87" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-87', 'remove_tags', 'link-55');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-88', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-89', 'remove_tags', 'link-55');">remove_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt id="link-90" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-90', 'allow_tags', 'link-56');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-91', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-92', 'allow_tags', 'link-56');">allow_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"> </tt>
-<a name="L263"></a><tt class="py-lineno">263</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-93" class="py-name"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-93', 'scripts', 'link-43');">scripts</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">            <tt id="link-94" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-94', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-95" 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.Element.tag" class="py-name" href="#" onclick="return doclink('link-85', 'tag', 'link-85');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'img'</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-86', 'comments', 'link-45');">comments</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">            <tt class="py-comment"># Of course, if we were going to kill comments anyway, we don't</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">            <tt class="py-comment"># need to worry about this</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method lxml.html.clean.Cleaner.kill_conditional_comments()=lxml.html.clean.Cleaner-class.html#kill_conditional_comments"><a title="lxml.html.clean.Cleaner.kill_conditional_comments" class="py-name" href="#" onclick="return doclink('link-87', 'kill_conditional_comments', 'link-87');">kill_conditional_comments</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">        <tt id="link-88" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-88', 'kill_tags', 'link-58');">kill_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-89', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-90', 'kill_tags', 'link-58');">kill_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt id="link-91" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-91', 'remove_tags', 'link-56');">remove_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-92" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-92', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-93', 'remove_tags', 'link-56');">remove_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt id="link-94" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-94', 'allow_tags', 'link-57');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-95" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-95', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-96', 'allow_tags', 'link-57');">allow_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"> </tt>
+<a name="L270"></a><tt class="py-lineno">270</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-97" class="py-name"><a title="lxml.html.clean.Cleaner.scripts" class="py-name" href="#" onclick="return doclink('link-97', 'scripts', 'link-43');">scripts</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">            <tt id="link-98" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-98', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-99" 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-95', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'script'</tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</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-96" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-96', 'safe_attrs_only', 'link-59');">safe_attrs_only</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">            <tt id="link-97" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-97', 'safe_attrs', 'link-60');">safe_attrs</a></tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-98', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-99', 'safe_attrs', 'link-60');">safe_attrs</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-100', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-99', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'script'</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</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-100" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-100', 'safe_attrs_only', 'link-60');">safe_attrs_only</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">            <tt id="link-101" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-101', 'safe_attrs', 'link-61');">safe_attrs</a></tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-102', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-103', 'safe_attrs', 'link-61');">safe_attrs</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-104', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-101', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-105', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-102', 'Element', 'link-102');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">                <tt id="link-103" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Function lxml.tests.selftest2.attrib()=lxml.tests.selftest2-module.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-106', 'Element', 'link-106');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">                <tt id="link-107" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Function lxml.tests.selftest2.attrib()=lxml.tests.selftest2-module.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><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-103', 'attrib', 'link-103');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-107', 'attrib', 'link-107');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-108" 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-104', 'attrib', 'link-103');">attrib</a></tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-105" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-108', 'attrib', 'link-107');">attrib</a></tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-109" 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-105', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method lxml.etree._Attrib.keys()=lxml.etree._Attrib-class.html#keys,Method lxml.etree._Element.keys()=lxml.etree._Element-class.html#keys,Method lxml.etree._IDDict.keys()=lxml.etree._IDDict-class.html#keys,Method lxml.html.FieldsDict.keys()=lxml.html.FieldsDict-class.html#keys,Method lxml.html.InputGetter.keys()=lxml.html.InputGetter-class.html#keys"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-109', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method lxml.etree._Attrib.keys()=lxml.etree._Attrib-class.html#keys,Method lxml.etree._Element.keys()=lxml.etree._Element-class.html#keys,Method lxml.etree._IDDict.keys()=lxml.etree._IDDict-class.html#keys,Method lxml.html.FieldsDict.keys()=lxml.html.FieldsDict-class.html#keys,Method lxml.html.InputGetter.keys()=lxml.html.InputGetter-class.html#keys"><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-106', 'keys', 'link-106');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-107" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-107', 'safe_attrs', 'link-60');">safe_attrs</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">                        <tt class="py-keyword">del</tt> <tt id="link-108" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-110', 'keys', 'link-110');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-111" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-111', 'safe_attrs', 'link-61');">safe_attrs</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">                        <tt class="py-keyword">del</tt> <tt id="link-112" 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-108', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">aname</tt><tt class="py-op">]</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</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-109" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-109', 'javascript', 'link-44');">javascript</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-110', 'safe_attrs_only', 'link-59');">safe_attrs_only</a></tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-111', 'safe_attrs', 'link-60');">safe_attrs</a></tt> <tt class="py-op">==</tt> <tt id="link-112" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-112', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
-lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-113', 'safe_attrs', 'link-60');">safe_attrs</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">                <tt class="py-comment"># safe_attrs handles events attributes itself</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-114', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-112', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">aname</tt><tt class="py-op">]</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</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-113" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-113', 'javascript', 'link-44');">javascript</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs_only" class="py-name" href="#" onclick="return doclink('link-114', 'safe_attrs_only', 'link-60');">safe_attrs_only</a></tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-115', 'safe_attrs', 'link-61');">safe_attrs</a></tt> <tt class="py-op">==</tt> <tt id="link-116" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-116', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.html.clean.Cleaner.safe_attrs
+lxml.html.defs.safe_attrs" class="py-name" href="#" onclick="return doclink('link-117', 'safe_attrs', 'link-61');">safe_attrs</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">                <tt class="py-comment"># safe_attrs handles events attributes itself</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-118', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-115', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-119', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-116', 'Element', 'link-102');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">                    <tt id="link-117" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-120', 'Element', 'link-106');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">                    <tt id="link-121" 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-117', 'attrib', 'link-103');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-121', 'attrib', 'link-107');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-122" 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-118', 'attrib', 'link-103');">attrib</a></tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-119" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-122', 'attrib', 'link-107');">attrib</a></tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">aname</tt> <tt class="py-keyword">in</tt> <tt id="link-123" 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-119', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-123', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-124" 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-120', 'keys', 'link-106');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'on'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">                            <tt class="py-keyword">del</tt> <tt id="link-121" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-124', 'keys', 'link-110');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">aname</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'on'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">                            <tt class="py-keyword">del</tt> <tt id="link-125" 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-121', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">aname</tt><tt class="py-op">]</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">            <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method lxml.html.HtmlMixin.rewrite_links()=lxml.html.HtmlMixin-class.html#rewrite_links,Variable lxml.html.rewrite_links=lxml.html-module.html#rewrite_links"><a title="lxml.html.HtmlMixin.rewrite_links
-lxml.html.rewrite_links" class="py-name" href="#" onclick="return doclink('link-122', 'rewrite_links', 'link-122');">rewrite_links</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name" targets="Method lxml.html.clean.Cleaner._remove_javascript_link()=lxml.html.clean.Cleaner-class.html#_remove_javascript_link"><a title="lxml.html.clean.Cleaner._remove_javascript_link" class="py-name" href="#" onclick="return doclink('link-123', '_remove_javascript_link', 'link-123');">_remove_javascript_link</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">                              <tt id="link-124" class="py-name" targets="Method lxml.html.HtmlMixin.resolve_base_href()=lxml.html.HtmlMixin-class.html#resolve_base_href,Variable lxml.html.resolve_base_href=lxml.html-module.html#resolve_base_href"><a title="lxml.html.HtmlMixin.resolve_base_href
-lxml.html.resolve_base_href" class="py-name" href="#" onclick="return doclink('link-124', 'resolve_base_href', 'link-124');">resolve_base_href</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-125', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">                <tt class="py-comment"># If we're deleting style then we don't have to remove JS links</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">                <tt class="py-comment"># from styles, otherwise...</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</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-126" class="py-name"><a title="lxml.html.clean._find_styled_elements" class="py-name" href="#" onclick="return doclink('link-126', '_find_styled_elements', 'link-36');">_find_styled_elements</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">                    <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-125', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">aname</tt><tt class="py-op">]</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">            <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Method lxml.html.HtmlMixin.rewrite_links()=lxml.html.HtmlMixin-class.html#rewrite_links,Variable lxml.html.rewrite_links=lxml.html-module.html#rewrite_links"><a title="lxml.html.HtmlMixin.rewrite_links
+lxml.html.rewrite_links" class="py-name" href="#" onclick="return doclink('link-126', 'rewrite_links', 'link-126');">rewrite_links</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method lxml.html.clean.Cleaner._remove_javascript_link()=lxml.html.clean.Cleaner-class.html#_remove_javascript_link"><a title="lxml.html.clean.Cleaner._remove_javascript_link" class="py-name" href="#" onclick="return doclink('link-127', '_remove_javascript_link', 'link-127');">_remove_javascript_link</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">                              <tt id="link-128" class="py-name" targets="Method lxml.html.HtmlMixin.resolve_base_href()=lxml.html.HtmlMixin-class.html#resolve_base_href,Variable lxml.html.resolve_base_href=lxml.html-module.html#resolve_base_href"><a title="lxml.html.HtmlMixin.resolve_base_href
+lxml.html.resolve_base_href" class="py-name" href="#" onclick="return doclink('link-128', 'resolve_base_href', 'link-128');">resolve_base_href</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">            <tt class="py-comment"># If we're deleting style then we don't have to remove JS links</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">            <tt class="py-comment"># from styles, otherwise...</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="lxml.html.clean.Cleaner.inline_style" class="py-name" href="#" onclick="return doclink('link-129', 'inline_style', 'link-47');">inline_style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</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-130" class="py-name"><a title="lxml.html.clean._find_styled_elements" class="py-name" href="#" onclick="return doclink('link-130', '_find_styled_elements', 'link-36');">_find_styled_elements</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">                    <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><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-127', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-128" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-128', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name"><a title="lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-129', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">)</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</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-130" class="py-name" targets="Method lxml.html.clean.Cleaner._has_sneaky_javascript()=lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-130', '_has_sneaky_javascript', 'link-130');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</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 class="py-comment"># Something tricky is going on...</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">                        <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-131', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-132" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-132', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-133" class="py-name"><a title="lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-133', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</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-134" class="py-name" targets="Method lxml.html.clean.Cleaner._has_sneaky_javascript()=lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-134', '_has_sneaky_javascript', 'link-134');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</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 class="py-comment"># Something tricky is going on...</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">                        <tt class="py-keyword">del</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-135" 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-131', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'style'</tt><tt class="py-op">]</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">                    <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">                        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-132', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">)</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-133', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-135', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'style'</tt><tt class="py-op">]</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">                    <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">                        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-136', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">)</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-137', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-138', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt><tt class="py-op">)</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">el</tt><tt class="py-op">.</tt><tt id="link-139" 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-134', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-135" 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-135', 'strip', 'link-135');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'text/javascript'</tt><tt class="py-op">:</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">                        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tree()=lxml.html.HtmlMixin-class.html#drop_tree"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-136', 'drop_tree', 'link-136');">drop_tree</a></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 class="py-keyword">continue</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">                    <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-139', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-140" 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-140', 'strip', 'link-140');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'text/javascript'</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">el</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tree()=lxml.html.HtmlMixin-class.html#drop_tree"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-141', 'drop_tree', 'link-141');">drop_tree</a></tt><tt class="py-op">(</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">continue</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">                    <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><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-137', 'text', 'link-137');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-138" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-138', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">                    <tt class="py-comment"># The imported CSS can do anything; we just can't allow:</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-139', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</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-140" class="py-name"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-140', '_has_sneaky_javascript', 'link-130');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">                        <tt class="py-comment"># Something tricky is going on...</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">                        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-142', 'text', 'link-142');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-143" class="py-name"><a title="lxml.html.clean._css_javascript_re" class="py-name" href="#" onclick="return doclink('link-143', '_css_javascript_re', 'link-21');">_css_javascript_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">                    <tt class="py-comment"># The imported CSS can do anything; we just can't allow:</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">                    <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-144" class="py-name"><a title="lxml.html.clean._css_import_re" class="py-name" href="#" onclick="return doclink('link-144', '_css_import_re', 'link-24');">_css_import_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">old</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</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-145" class="py-name"><a title="lxml.html.clean.Cleaner._has_sneaky_javascript" class="py-name" href="#" onclick="return doclink('link-145', '_has_sneaky_javascript', 'link-134');">_has_sneaky_javascript</a></tt><tt class="py-op">(</tt><tt class="py-name">new</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 class="py-comment"># Something tricky is going on...</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">                        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-146" 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-141', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'/* deleted */'</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">                    <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">                        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-146', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'/* deleted */'</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">                    <tt class="py-keyword">elif</tt> <tt class="py-name">new</tt> <tt class="py-op">!=</tt> <tt class="py-name">old</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">el</tt><tt class="py-op">.</tt><tt id="link-147" 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-142', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</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-143" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-143', 'comments', 'link-45');">comments</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-144', 'processing_instructions', 'link-50');">processing_instructions</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-comment"># FIXME: why either?  I feel like there's some obscure reason</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">            <tt class="py-comment"># because you can put PIs in comments...?  But I've already</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">            <tt class="py-comment"># forgotten it</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">            <tt id="link-145" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-145', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-147', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</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-148" class="py-name"><a title="lxml.html.clean.Cleaner.comments" class="py-name" href="#" onclick="return doclink('link-148', 'comments', 'link-45');">comments</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-149', 'processing_instructions', 'link-51');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: why either?  I feel like there's some obscure reason</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">            <tt class="py-comment"># because you can put PIs in comments...?  But I've already</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">            <tt class="py-comment"># forgotten it</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">            <tt id="link-150" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-150', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-151" 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-146', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt id="link-147" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-151', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt id="link-152" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-147', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-148" 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-148', 'Comment', 'link-148');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</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-149" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-149', 'processing_instructions', 'link-50');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">            <tt id="link-150" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-150', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-152', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-153" 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-153', 'Comment', 'link-153');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</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-154" class="py-name"><a title="lxml.html.clean.Cleaner.processing_instructions" class="py-name" href="#" onclick="return doclink('link-154', 'processing_instructions', 'link-51');">processing_instructions</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">            <tt id="link-155" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-155', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-156" 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-151', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt id="link-152" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-156', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt id="link-157" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-152', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</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-153" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-153', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">            <tt id="link-154" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-154', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-157', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</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-158" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-158', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt id="link-159" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-159', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-160" 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-155', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">            <tt id="link-156" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-160', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</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-161" class="py-name"><a title="lxml.html.clean.Cleaner.inline_style" class="py-name" href="#" onclick="return doclink('link-161', 'inline_style', 'link-47');">inline_style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">            <tt id="link-162" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-156', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-157" 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-157', 'strip_attributes', 'link-157');">strip_attributes</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</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-158" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-158', 'links', 'link-47');">links</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">            <tt id="link-159" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-159', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-162', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-163" 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-163', 'strip_attributes', 'link-163');">strip_attributes</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'style'</tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</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-164" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-164', 'links', 'link-48');">links</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt id="link-165" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-165', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-166" 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-160', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'link'</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-161', 'style', 'link-46');">style</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-162', 'javascript', 'link-44');">javascript</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">            <tt class="py-comment"># We must get rid of included stylesheets if Javascript is not</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">            <tt class="py-comment"># allowed, as you can put Javascript in them</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-163', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'link'</tt><tt class="py-op">)</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">if</tt> <tt class="py-string">'stylesheet'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-166', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'link'</tt><tt class="py-op">)</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-167', 'style', 'link-46');">style</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="lxml.html.clean.Cleaner.javascript" class="py-name" href="#" onclick="return doclink('link-168', 'javascript', 'link-44');">javascript</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">            <tt class="py-comment"># We must get rid of included stylesheets if Javascript is not</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">            <tt class="py-comment"># allowed, as you can put Javascript in them</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-169', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'link'</tt><tt class="py-op">)</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-keyword">if</tt> <tt class="py-string">'stylesheet'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-170" 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-164', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">                    <tt class="py-comment"># Note this kills alternate stylesheets as well</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_element()=lxml.html.clean.Cleaner-class.html#allow_element"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-165', 'allow_element', 'link-165');">allow_element</a></tt><tt class="py-op">(</tt><tt class="py-name">el</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">el</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-166', 'drop_tree', 'link-136');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</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-167" class="py-name"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-167', 'meta', 'link-48');">meta</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">            <tt id="link-168" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-168', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-170', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</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 class="py-comment"># Note this kills alternate stylesheets as well</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_element()=lxml.html.clean.Cleaner-class.html#allow_element"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-171', 'allow_element', 'link-171');">allow_element</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</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">el</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-172', 'drop_tree', 'link-141');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</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-173" class="py-name"><a title="lxml.html.clean.Cleaner.meta" class="py-name" href="#" onclick="return doclink('link-173', 'meta', 'link-49');">meta</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">            <tt id="link-174" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-174', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-175" 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-169', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'meta'</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</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-170" class="py-name"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-170', 'page_structure', 'link-49');">page_structure</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">            <tt id="link-171" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-171', 'remove_tags', 'link-55');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-172" 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-172', 'update', 'link-172');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-string">'title'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</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-173" class="py-name"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-173', 'embedded', 'link-51');">embedded</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: is &lt;layer&gt; really embedded?</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">            <tt class="py-comment"># We should get rid of any &lt;param&gt; tags not inside &lt;applet&gt;;</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">            <tt class="py-comment"># These are not really valid anyway.</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-174', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'param'</tt><tt class="py-op">)</tt><tt class="py-op">)</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">found_parent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">                <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-175" 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.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-175', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'meta'</tt><tt class="py-op">)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</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-176" class="py-name"><a title="lxml.html.clean.Cleaner.page_structure" class="py-name" href="#" onclick="return doclink('link-176', 'page_structure', 'link-50');">page_structure</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">            <tt id="link-177" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-177', 'remove_tags', 'link-56');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-178" 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-178', 'update', 'link-178');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-string">'title'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</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-179" class="py-name"><a title="lxml.html.clean.Cleaner.embedded" class="py-name" href="#" onclick="return doclink('link-179', 'embedded', 'link-52');">embedded</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: is &lt;layer&gt; really embedded?</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">            <tt class="py-comment"># We should get rid of any &lt;param&gt; tags not inside &lt;applet&gt;;</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-comment"># These are not really valid anyway.</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-180', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt class="py-string">'param'</tt><tt class="py-op">)</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">found_parent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">                <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-181" 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-175', 'getparent', 'link-175');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">                <tt class="py-keyword">while</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-181', 'getparent', 'link-181');">getparent</a></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-keyword">while</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-182" 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-176', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">                    <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="lxml.etree._Element.getparent
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-182', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</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 class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-183" 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-177', 'getparent', 'link-175');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">                    <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-178', 'drop_tree', 'link-136');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">            <tt id="link-179" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-179', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="lxml.etree._Attrib.update
-lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-180', 'update', 'link-172');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-comment"># The alternate contents that are in an iframe are a good fallback:</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">            <tt id="link-181" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-181', 'remove_tags', 'link-55');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="lxml.etree._Attrib.update
-lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-182', 'update', 'link-172');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">,</tt> <tt class="py-string">'layer'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">,</tt> <tt class="py-string">'param'</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-183', 'frames', 'link-52');">frames</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: ideally we should look at the frame links, but</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">            <tt class="py-comment"># generally frames don't mix properly with an HTML</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">            <tt class="py-comment"># fragment anyway.</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">            <tt id="link-184" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-184', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.etree._Attrib.update
-lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-185', 'update', 'link-172');">update</a></tt><tt class="py-op">(</tt><tt id="link-186" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-186', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name" targets="Variable lxml.html.defs.frame_tags=lxml.html.defs-module.html#frame_tags"><a title="lxml.html.defs.frame_tags" class="py-name" href="#" onclick="return doclink('link-187', 'frame_tags', 'link-187');">frame_tags</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.html.HtmlMixin.forms
-lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-188', 'forms', 'link-53');">forms</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">            <tt id="link-189" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-189', 'remove_tags', 'link-55');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-183', 'getparent', 'link-181');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">el</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-184', 'drop_tree', 'link-141');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">            <tt id="link-185" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-185', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="lxml.etree._Attrib.update
+lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-186', 'update', 'link-178');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'applet'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">            <tt class="py-comment"># The alternate contents that are in an iframe are a good fallback:</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line">            <tt id="link-187" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-187', 'remove_tags', 'link-56');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.etree._Attrib.update
+lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-188', 'update', 'link-178');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'iframe'</tt><tt class="py-op">,</tt> <tt class="py-string">'embed'</tt><tt class="py-op">,</tt> <tt class="py-string">'layer'</tt><tt class="py-op">,</tt> <tt class="py-string">'object'</tt><tt class="py-op">,</tt> <tt class="py-string">'param'</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 class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="lxml.html.clean.Cleaner.frames" class="py-name" href="#" onclick="return doclink('link-189', 'frames', 'link-53');">frames</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: ideally we should look at the frame links, but</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">            <tt class="py-comment"># generally frames don't mix properly with an HTML</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">            <tt class="py-comment"># fragment anyway.</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">            <tt id="link-190" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-190', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.etree._Attrib.update
+lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-191', 'update', 'link-178');">update</a></tt><tt class="py-op">(</tt><tt id="link-192" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-192', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-193" class="py-name" targets="Variable lxml.html.defs.frame_tags=lxml.html.defs-module.html#frame_tags"><a title="lxml.html.defs.frame_tags" class="py-name" href="#" onclick="return doclink('link-193', 'frame_tags', 'link-193');">frame_tags</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</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-194" class="py-name"><a title="lxml.html.HtmlMixin.forms
+lxml.html.clean.Cleaner.forms" class="py-name" href="#" onclick="return doclink('link-194', 'forms', 'link-54');">forms</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">            <tt id="link-195" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-195', 'remove_tags', 'link-56');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-196" 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-190', 'add', 'link-95');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'form'</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">            <tt id="link-191" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-191', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="lxml.etree._Attrib.update
-lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-192', 'update', 'link-172');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'button'</tt><tt class="py-op">,</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-193', 'annoying_tags', 'link-54');">annoying_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">            <tt id="link-194" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-194', 'remove_tags', 'link-55');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="lxml.etree._Attrib.update
-lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-195', 'update', 'link-172');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'blink'</tt><tt class="py-op">,</tt> <tt class="py-string">'marquee'</tt><tt class="py-op">)</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 class="py-name">_remove</tt> <tt class="py-op">=</tt> <tt class="py-op">[</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">_kill</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-196', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</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-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-196', 'add', 'link-99');">add</a></tt><tt class="py-op">(</tt><tt class="py-string">'form'</tt><tt class="py-op">)</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">            <tt id="link-197" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-197', 'kill_tags', 'link-58');">kill_tags</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree._Attrib.update
+lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-198', 'update', 'link-178');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'button'</tt><tt class="py-op">,</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</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-199" class="py-name"><a title="lxml.html.clean.Cleaner.annoying_tags" class="py-name" href="#" onclick="return doclink('link-199', 'annoying_tags', 'link-55');">annoying_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">            <tt id="link-200" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-200', 'remove_tags', 'link-56');">remove_tags</a></tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree._Attrib.update
+lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-201', 'update', 'link-178');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'blink'</tt><tt class="py-op">,</tt> <tt class="py-string">'marquee'</tt><tt class="py-op">)</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 class="py-name">_remove</tt> <tt class="py-op">=</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">_kill</tt> <tt class="py-op">=</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 class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-202', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</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-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-203" 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-197', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-198" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-198', 'kill_tags', 'link-57');">kill_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</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-199" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-199', 'allow_element', 'link-165');">allow_element</a></tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-keyword">continue</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">                <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-200" 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-200', 'append', 'link-200');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-203', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-204" class="py-name"><a title="lxml.html.clean.Cleaner.kill_tags" class="py-name" href="#" onclick="return doclink('link-204', 'kill_tags', 'link-58');">kill_tags</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-205', 'allow_element', 'link-171');">allow_element</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">                    <tt class="py-keyword">continue</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">                <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-206" 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-206', 'append', 'link-206');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-207" 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-201', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-202" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-202', 'remove_tags', 'link-55');">remove_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</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-203" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-203', 'allow_element', 'link-165');">allow_element</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">                    <tt class="py-keyword">continue</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">                <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-204', 'append', 'link-200');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-keyword">if</tt> <tt class="py-name">_remove</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_remove</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">doc</tt><tt class="py-op">:</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">            <tt class="py-comment"># We have to drop the parent-most tag, which we can't</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">            <tt class="py-comment"># do.  Instead we'll rewrite it:</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-205" 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-205', 'pop', 'link-205');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</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">el</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-207', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-208" class="py-name"><a title="lxml.html.clean.Cleaner.remove_tags" class="py-name" href="#" onclick="return doclink('link-208', 'remove_tags', 'link-56');">remove_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</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-209" class="py-name"><a title="lxml.html.clean.Cleaner.allow_element" class="py-name" href="#" onclick="return doclink('link-209', 'allow_element', 'link-171');">allow_element</a></tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-keyword">continue</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">                <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-210', 'append', 'link-206');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line"> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">_remove</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_remove</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">doc</tt><tt class="py-op">:</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">            <tt class="py-comment"># We have to drop the parent-most tag, which we can't</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">            <tt class="py-comment"># do.  Instead we'll rewrite it:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_remove</tt><tt class="py-op">.</tt><tt id="link-211" 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-211', 'pop', 'link-211');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</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">el</tt><tt class="py-op">.</tt><tt id="link-212" 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-206', 'tag', 'link-81');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-212', 'tag', 'link-85');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-213" 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-207', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-208" class="py-name" targets="Method lxml.etree.DocInfo.clear()=lxml.etree.DocInfo-class.html#clear,Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree.DocInfo.clear
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-213', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Method lxml.etree.DocInfo.clear()=lxml.etree.DocInfo-class.html#clear,Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><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-208', 'clear', 'link-208');">clear</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 class="py-keyword">elif</tt> <tt class="py-name">_kill</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_kill</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">doc</tt><tt class="py-op">:</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">            <tt class="py-comment"># We have to drop the parent-most element, which we can't</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">            <tt class="py-comment"># do.  Instead we'll clear it:</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-209', 'pop', 'link-205');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-214', 'clear', 'link-214');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">_kill</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_kill</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">doc</tt><tt class="py-op">:</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">            <tt class="py-comment"># We have to drop the parent-most element, which we can't</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">            <tt class="py-comment"># do.  Instead we'll clear it:</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-215', 'pop', 'link-211');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-216" 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-210', 'tag', 'link-81');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'html'</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">el</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-216', 'tag', 'link-85');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'html'</tt><tt class="py-op">:</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-217" 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-211', 'tag', 'link-81');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="lxml.etree.DocInfo.clear
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-217', 'tag', 'link-85');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-218" 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-212', 'clear', 'link-208');">clear</a></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>
-<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">        <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># start with innermost tags</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_kill</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">el</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-213', 'drop_tree', 'link-136');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_remove</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">el</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tag()=lxml.html.HtmlMixin-class.html#drop_tag"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-214', 'drop_tag', 'link-214');">drop_tag</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 class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-215', 'remove_unknown_tags', 'link-58');">remove_unknown_tags</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-keyword">if</tt> <tt id="link-216" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-216', 'allow_tags', 'link-56');">allow_tags</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-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">                    <tt class="py-string">"It does not make sense to pass in both allow_tags and remove_unknown_tags"</tt><tt class="py-op">)</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">            <tt id="link-217" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-217', 'allow_tags', 'link-56');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-218', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt id="link-219" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-219', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-220" 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-220', 'tags', 'link-220');">tags</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-221" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-221', 'allow_tags', 'link-56');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">            <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-222', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-218', 'clear', 'link-214');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line"> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">        <tt class="py-name">_kill</tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># start with innermost tags</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_kill</tt><tt class="py-op">:</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-219', 'drop_tree', 'link-141');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_remove</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">el</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tag()=lxml.html.HtmlMixin-class.html#drop_tag"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-220', 'drop_tag', 'link-220');">drop_tag</a></tt><tt class="py-op">(</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 class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="lxml.html.clean.Cleaner.remove_unknown_tags" class="py-name" href="#" onclick="return doclink('link-221', 'remove_unknown_tags', 'link-59');">remove_unknown_tags</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-keyword">if</tt> <tt id="link-222" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-222', 'allow_tags', 'link-57');">allow_tags</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-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">                    <tt class="py-string">"It does not make sense to pass in both allow_tags and remove_unknown_tags"</tt><tt class="py-op">)</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">            <tt id="link-223" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-223', 'allow_tags', 'link-57');">allow_tags</a></tt> <tt class="py-op">=</tt> <tt id="link-224" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-224', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt id="link-225" class="py-name"><a title="lxml.html.defs" class="py-name" href="#" onclick="return doclink('link-225', 'defs', 'link-6');">defs</a></tt><tt class="py-op">.</tt><tt id="link-226" 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-226', 'tags', 'link-226');">tags</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-227" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-227', 'allow_tags', 'link-57');">allow_tags</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">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-228', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</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-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-229" 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-223', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-224" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-224', 'allow_tags', 'link-56');">allow_tags</a></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">bad</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-225', 'append', 'link-200');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">:</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">doc</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">el</tt> <tt class="py-op">=</tt> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-226', 'pop', 'link-205');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</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">el</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-229', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-230" class="py-name"><a title="lxml.html.clean.Cleaner.allow_tags" class="py-name" href="#" onclick="return doclink('link-230', 'allow_tags', 'link-57');">allow_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line">                    <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-231', 'append', 'link-206');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">:</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">bad</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">doc</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">el</tt> <tt class="py-op">=</tt> <tt class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-232', 'pop', 'link-211');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</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">el</tt><tt class="py-op">.</tt><tt id="link-233" 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-227', 'tag', 'link-81');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">                    <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-233', 'tag', 'link-85');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line">                    <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-234" 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-228', 'attrib', 'link-103');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree.DocInfo.clear
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-234', 'attrib', 'link-107');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-235" 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-229', 'clear', 'link-208');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bad</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">el</tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-230', 'drop_tag', 'link-214');">drop_tag</a></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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-231', 'add_nofollow', 'link-63');">add_nofollow</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</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-232" class="py-name"><a title="lxml.html.clean._find_external_links" class="py-name" href="#" onclick="return doclink('link-232', '_find_external_links', 'link-39');">_find_external_links</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_follow()=lxml.html.clean.Cleaner-class.html#allow_follow"><a title="lxml.html.clean.Cleaner.allow_follow" class="py-name" href="#" onclick="return doclink('link-233', 'allow_follow', 'link-233');">allow_follow</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</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">rel</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-235', 'clear', 'link-214');">clear</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 class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bad</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">el</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-236', 'drop_tag', 'link-220');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</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-237" class="py-name"><a title="lxml.html.clean.Cleaner.add_nofollow" class="py-name" href="#" onclick="return doclink('link-237', 'add_nofollow', 'link-64');">add_nofollow</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</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-238" class="py-name"><a title="lxml.html.clean._find_external_links" class="py-name" href="#" onclick="return doclink('link-238', '_find_external_links', 'link-39');">_find_external_links</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</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-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_follow()=lxml.html.clean.Cleaner-class.html#allow_follow"><a title="lxml.html.clean.Cleaner.allow_follow" class="py-name" href="#" onclick="return doclink('link-239', 'allow_follow', 'link-239');">allow_follow</a></tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-name">rel</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-240" 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-234', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">)</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">rel</tt><tt class="py-op">:</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'nofollow'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rel</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line">                                <tt class="py-keyword">and</tt> <tt class="py-string">' nofollow '</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">' %s '</tt> <tt class="py-op">%</tt> <tt class="py-name">rel</tt><tt class="py-op">)</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 class="py-keyword">continue</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">                        <tt class="py-name">rel</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s nofollow'</tt> <tt class="py-op">%</tt> <tt class="py-name">rel</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line">                    <tt class="py-keyword">else</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">rel</tt> <tt class="py-op">=</tt> <tt class="py-string">'nofollow'</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">                    <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-235', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-name">rel</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.allow_follow"></a><div id="Cleaner.allow_follow-def"><a name="L419"></a><tt class="py-lineno">419</tt> <a class="py-toggle" href="#" id="Cleaner.allow_follow-toggle" onclick="return toggle('Cleaner.allow_follow');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_follow">allow_follow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">anchor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.allow_follow-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_follow-expanded"><a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line"><tt class="py-docstring">        Override to suppress rel="nofollow" on some anchors.</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.allow_element"></a><div id="Cleaner.allow_element-def"><a name="L425"></a><tt class="py-lineno">425</tt> <a class="py-toggle" href="#" id="Cleaner.allow_element-toggle" onclick="return toggle('Cleaner.allow_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_element">allow_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.allow_element-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_element-expanded"><a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-240', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">rel</tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'nofollow'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rel</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">                                <tt class="py-keyword">and</tt> <tt class="py-string">' nofollow '</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">' %s '</tt> <tt class="py-op">%</tt> <tt class="py-name">rel</tt><tt class="py-op">)</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-keyword">continue</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">                        <tt class="py-name">rel</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s nofollow'</tt> <tt class="py-op">%</tt> <tt class="py-name">rel</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">                    <tt class="py-keyword">else</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">rel</tt> <tt class="py-op">=</tt> <tt class="py-string">'nofollow'</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">                    <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-241', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'rel'</tt><tt class="py-op">,</tt> <tt class="py-name">rel</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.allow_follow"></a><div id="Cleaner.allow_follow-def"><a name="L428"></a><tt class="py-lineno">428</tt> <a class="py-toggle" href="#" id="Cleaner.allow_follow-toggle" onclick="return toggle('Cleaner.allow_follow');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_follow">allow_follow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">anchor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.allow_follow-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_follow-expanded"><a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line"><tt class="py-docstring">        Override to suppress rel="nofollow" on some anchors.</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.allow_element"></a><div id="Cleaner.allow_element-def"><a name="L434"></a><tt class="py-lineno">434</tt> <a class="py-toggle" href="#" id="Cleaner.allow_element-toggle" onclick="return toggle('Cleaner.allow_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_element">allow_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.allow_element-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_element-expanded"><a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-242" 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-236', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-237', '_tag_link_attrs', 'link-77');">_tag_link_attrs</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">        <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-238', '_tag_link_attrs', 'link-77');">_tag_link_attrs</a></tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-242', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-243', '_tag_link_attrs', 'link-81');">_tag_link_attrs</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line">        <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.html.clean.Cleaner._tag_link_attrs" class="py-name" href="#" onclick="return doclink('link-244', '_tag_link_attrs', 'link-81');">_tag_link_attrs</a></tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-245" 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-239', 'tag', 'link-81');">tag</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">attr</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">tuple</tt><tt class="py-op">)</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-keyword">for</tt> <tt class="py-name">one_attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attr</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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-245', 'tag', 'link-85');">tag</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">attr</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">tuple</tt><tt class="py-op">)</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 class="py-keyword">for</tt> <tt class="py-name">one_attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attr</tt><tt class="py-op">:</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line">                <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-246" 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-240', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">one_attr</tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_embedded_url()=lxml.html.clean.Cleaner-class.html#allow_embedded_url"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-241', 'allow_embedded_url', 'link-241');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-246', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">one_attr</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name" targets="Method lxml.html.clean.Cleaner.allow_embedded_url()=lxml.html.clean.Cleaner-class.html#allow_embedded_url"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-247', 'allow_embedded_url', 'link-247');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</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 class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-248" 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-242', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</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-243" class="py-name"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-243', 'allow_embedded_url', 'link-241');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.allow_embedded_url"></a><div id="Cleaner.allow_embedded_url-def"><a name="L443"></a><tt class="py-lineno">443</tt> <a class="py-toggle" href="#" id="Cleaner.allow_embedded_url-toggle" onclick="return toggle('Cleaner.allow_embedded_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_embedded_url">allow_embedded_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.allow_embedded_url-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_embedded_url-expanded"><a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-244', 'whitelist_tags', 'link-65');">whitelist_tags</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line">            <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-248', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">url</tt><tt class="py-op">:</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</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-249" class="py-name"><a title="lxml.html.clean.Cleaner.allow_embedded_url" class="py-name" href="#" onclick="return doclink('link-249', 'allow_embedded_url', 'link-247');">allow_embedded_url</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.allow_embedded_url"></a><div id="Cleaner.allow_embedded_url-def"><a name="L452"></a><tt class="py-lineno">452</tt> <a class="py-toggle" href="#" id="Cleaner.allow_embedded_url-toggle" onclick="return toggle('Cleaner.allow_embedded_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#allow_embedded_url">allow_embedded_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.allow_embedded_url-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.allow_embedded_url-expanded"><a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-250', 'whitelist_tags', 'link-66');">whitelist_tags</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line">            <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-251" 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-245', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-246', 'whitelist_tags', 'link-65');">whitelist_tags</a></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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line">        <tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">netloc</tt><tt class="py-op">,</tt> <tt id="link-247" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-247', 'path', 'link-247');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">fragment</tt> <tt class="py-op">=</tt> <tt class="py-name">urlsplit</tt><tt class="py-op">(</tt><tt class="py-name">url</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">netloc</tt> <tt class="py-op">=</tt> <tt class="py-name">netloc</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</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 class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">scheme</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'http'</tt><tt class="py-op">,</tt> <tt class="py-string">'https'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">netloc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-248', 'host_whitelist', 'link-64');">host_whitelist</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.kill_conditional_comments"></a><div id="Cleaner.kill_conditional_comments-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="Cleaner.kill_conditional_comments-toggle" onclick="return toggle('Cleaner.kill_conditional_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#kill_conditional_comments">kill_conditional_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.kill_conditional_comments-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.kill_conditional_comments-expanded"><a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line"><tt class="py-docstring">        IE conditional comments basically embed HTML that the parser</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line"><tt class="py-docstring">        doesn't normally see.  We can't allow anything like that, so</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line"><tt class="py-docstring">        we'll kill any comments that could be conditional.</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">        <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name" targets="Method lxml.html.clean.Cleaner._kill_elements()=lxml.html.clean.Cleaner-class.html#_kill_elements"><a title="lxml.html.clean.Cleaner._kill_elements" class="py-name" href="#" onclick="return doclink('link-249', '_kill_elements', 'link-249');">_kill_elements</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">doc</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> <tt id="link-250" class="py-name"><a title="lxml.html.clean._conditional_comment_re" class="py-name" href="#" onclick="return doclink('link-250', '_conditional_comment_re', 'link-33');">_conditional_comment_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-251', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="lxml.html.clean.Cleaner.whitelist_tags" class="py-name" href="#" onclick="return doclink('link-252', 'whitelist_tags', 'link-66');">whitelist_tags</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line">        <tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">netloc</tt><tt class="py-op">,</tt> <tt id="link-253" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-253', 'path', 'link-253');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">fragment</tt> <tt class="py-op">=</tt> <tt class="py-name">urlsplit</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">        <tt class="py-name">netloc</tt> <tt class="py-op">=</tt> <tt class="py-name">netloc</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</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 class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">scheme</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'http'</tt><tt class="py-op">,</tt> <tt class="py-string">'https'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">netloc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="lxml.html.clean.Cleaner.host_whitelist" class="py-name" href="#" onclick="return doclink('link-254', 'host_whitelist', 'link-65');">host_whitelist</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.kill_conditional_comments"></a><div id="Cleaner.kill_conditional_comments-def"><a name="L464"></a><tt class="py-lineno">464</tt> <a class="py-toggle" href="#" id="Cleaner.kill_conditional_comments-toggle" onclick="return toggle('Cleaner.kill_conditional_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#kill_conditional_comments">kill_conditional_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.kill_conditional_comments-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.kill_conditional_comments-expanded"><a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line"><tt class="py-docstring">        IE conditional comments basically embed HTML that the parser</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line"><tt class="py-docstring">        doesn't normally see.  We can't allow anything like that, so</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line"><tt class="py-docstring">        we'll kill any comments that could be conditional.</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">        <tt class="py-name">bad</tt> <tt class="py-op">=</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name" targets="Method lxml.html.clean.Cleaner._kill_elements()=lxml.html.clean.Cleaner-class.html#_kill_elements"><a title="lxml.html.clean.Cleaner._kill_elements" class="py-name" href="#" onclick="return doclink('link-255', '_kill_elements', 'link-255');">_kill_elements</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">doc</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> <tt id="link-256" class="py-name"><a title="lxml.html.clean._conditional_comment_re" class="py-name" href="#" onclick="return doclink('link-256', '_conditional_comment_re', 'link-33');">_conditional_comment_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-257" 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-251', 'text', 'link-137');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">            <tt id="link-252" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-257', 'text', 'link-142');">text</a></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 id="link-258" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-252', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-253', 'Comment', 'link-148');">Comment</a></tt><tt class="py-op">)</tt>                 </tt>
-</div><a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner._kill_elements"></a><div id="Cleaner._kill_elements-def"><a name="L466"></a><tt class="py-lineno">466</tt> <a class="py-toggle" href="#" id="Cleaner._kill_elements-toggle" onclick="return toggle('Cleaner._kill_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_kill_elements">_kill_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">condition</tt><tt class="py-op">,</tt> <tt class="py-param">iterate</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="Cleaner._kill_elements-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._kill_elements-expanded"><a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">        <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-254', 'iter', 'link-80');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">iterate</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">condition</tt><tt class="py-op">(</tt><tt class="py-name">el</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">bad</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-255', 'append', 'link-200');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bad</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">el</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-256', 'drop_tree', 'link-136');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner._remove_javascript_link"></a><div id="Cleaner._remove_javascript_link-def"><a name="L474"></a><tt class="py-lineno">474</tt> <a class="py-toggle" href="#" id="Cleaner._remove_javascript_link-toggle" onclick="return toggle('Cleaner._remove_javascript_link');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">link</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner._remove_javascript_link-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._remove_javascript_link-expanded"><a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">        <tt class="py-comment"># links like "j a v a s c r i p t:" might be interpreted in IE</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">        <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-257" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-257', '_substitute_whitespace', 'link-32');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-258" class="py-name" targets="Function lxml.html.clean._is_javascript_scheme()=lxml.html.clean-module.html#_is_javascript_scheme"><a title="lxml.html.clean._is_javascript_scheme" class="py-name" href="#" onclick="return doclink('link-258', '_is_javascript_scheme', 'link-258');">_is_javascript_scheme</a></tt><tt class="py-op">(</tt><tt class="py-name">new</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-comment"># FIXME: should this be None to delete?</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">link</tt> </tt>
-</div><a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line">    <tt id="link-259" class="py-name" targets="Method lxml.html.clean.Cleaner._substitute_comments()=lxml.html.clean.Cleaner-class.html#_substitute_comments"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-259', '_substitute_comments', 'link-259');">_substitute_comments</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'/\*.*?\*/'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-260', 'S', 'link-22');">S</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner._has_sneaky_javascript"></a><div id="Cleaner._has_sneaky_javascript-def"><a name="L484"></a><tt class="py-lineno">484</tt> <a class="py-toggle" href="#" id="Cleaner._has_sneaky_javascript-toggle" onclick="return toggle('Cleaner._has_sneaky_javascript');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">style</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner._has_sneaky_javascript-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._has_sneaky_javascript-expanded"><a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"><tt class="py-docstring">        Depending on the browser, stuff like ``e x p r e s s i o n(...)``</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line"><tt class="py-docstring">        can get interpreted, or ``expre/* stuff */ssion(...)``.  This</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line"><tt class="py-docstring">        checks for attempt to do stuff like this.</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"><tt class="py-docstring">        Typically the response will be to kill the entire style; if you</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line"><tt class="py-docstring">        have just a bit of Javascript in the style another rule will catch</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"><tt class="py-docstring">        that and remove only the Javascript from the style; this catches</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line"><tt class="py-docstring">        more sneaky attempts.</tt> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line">        <tt id="link-261" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-261', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-262', '_substitute_comments', 'link-259');">_substitute_comments</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-263" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-263', 'style', 'link-46');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">        <tt id="link-264" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-264', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-265" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-265', 'style', 'link-46');">style</a></tt><tt class="py-op">.</tt><tt id="link-266" 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-266', 'replace', 'link-266');">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>
-<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">        <tt id="link-267" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-267', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-268" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-268', '_substitute_whitespace', 'link-32');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-269" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-269', 'style', 'link-46');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">        <tt id="link-270" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-270', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-271" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-271', 'style', 'link-46');">style</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'javascript:'</tt> <tt class="py-keyword">in</tt> <tt id="link-272" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-272', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'expression('</tt> <tt class="py-keyword">in</tt> <tt id="link-273" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-273', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line"> </tt>
-<a name="Cleaner.clean_html"></a><div id="Cleaner.clean_html-def"><a name="L505"></a><tt class="py-lineno">505</tt> <a class="py-toggle" href="#" id="Cleaner.clean_html-toggle" onclick="return toggle('Cleaner.clean_html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#clean_html">clean_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Cleaner.clean_html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.clean_html-expanded"><a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">        <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-274" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-274', 'type', 'link-274');">type</a></tt><tt class="py-op">(</tt><tt id="link-275" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-258', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-259', 'Comment', 'link-153');">Comment</a></tt><tt class="py-op">)</tt>                 </tt>
+</div><a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner._kill_elements"></a><div id="Cleaner._kill_elements-def"><a name="L475"></a><tt class="py-lineno">475</tt> <a class="py-toggle" href="#" id="Cleaner._kill_elements-toggle" onclick="return toggle('Cleaner._kill_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_kill_elements">_kill_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">condition</tt><tt class="py-op">,</tt> <tt class="py-param">iterate</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="Cleaner._kill_elements-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._kill_elements-expanded"><a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">        <tt class="py-name">bad</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-260', 'iter', 'link-84');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">iterate</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-keyword">if</tt> <tt class="py-name">condition</tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-name">bad</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-261', 'append', 'link-206');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bad</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">el</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.html.HtmlMixin.drop_tree" class="py-name" href="#" onclick="return doclink('link-262', 'drop_tree', 'link-141');">drop_tree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner._remove_javascript_link"></a><div id="Cleaner._remove_javascript_link-def"><a name="L483"></a><tt class="py-lineno">483</tt> <a class="py-toggle" href="#" id="Cleaner._remove_javascript_link-toggle" onclick="return toggle('Cleaner._remove_javascript_link');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">link</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner._remove_javascript_link-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._remove_javascript_link-expanded"><a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">        <tt class="py-comment"># links like "j a v a s c r i p t:" might be interpreted in IE</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">        <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-263', '_substitute_whitespace', 'link-32');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-264" class="py-name" targets="Function lxml.html.clean._is_javascript_scheme()=lxml.html.clean-module.html#_is_javascript_scheme"><a title="lxml.html.clean._is_javascript_scheme" class="py-name" href="#" onclick="return doclink('link-264', '_is_javascript_scheme', 'link-264');">_is_javascript_scheme</a></tt><tt class="py-op">(</tt><tt class="py-name">new</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: should this be None to delete?</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">link</tt> </tt>
+</div><a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">    <tt id="link-265" class="py-name" targets="Method lxml.html.clean.Cleaner._substitute_comments()=lxml.html.clean.Cleaner-class.html#_substitute_comments"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-265', '_substitute_comments', 'link-265');">_substitute_comments</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'/\*.*?\*/'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-266', 'S', 'link-22');">S</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner._has_sneaky_javascript"></a><div id="Cleaner._has_sneaky_javascript-def"><a name="L493"></a><tt class="py-lineno">493</tt> <a class="py-toggle" href="#" id="Cleaner._has_sneaky_javascript-toggle" onclick="return toggle('Cleaner._has_sneaky_javascript');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">style</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner._has_sneaky_javascript-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner._has_sneaky_javascript-expanded"><a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line"><tt class="py-docstring">        Depending on the browser, stuff like ``e x p r e s s i o n(...)``</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line"><tt class="py-docstring">        can get interpreted, or ``expre/* stuff */ssion(...)``.  This</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line"><tt class="py-docstring">        checks for attempt to do stuff like this.</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line"><tt class="py-docstring">        Typically the response will be to kill the entire style; if you</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line"><tt class="py-docstring">        have just a bit of Javascript in the style another rule will catch</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line"><tt class="py-docstring">        that and remove only the Javascript from the style; this catches</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line"><tt class="py-docstring">        more sneaky attempts.</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line">        <tt id="link-267" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-267', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="lxml.html.clean.Cleaner._substitute_comments" class="py-name" href="#" onclick="return doclink('link-268', '_substitute_comments', 'link-265');">_substitute_comments</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-269" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-269', 'style', 'link-46');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line">        <tt id="link-270" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-270', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-271" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-271', 'style', 'link-46');">style</a></tt><tt class="py-op">.</tt><tt id="link-272" 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-272', 'replace', 'link-272');">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>
+<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">        <tt id="link-273" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-273', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-274" class="py-name"><a title="lxml.html.clean._substitute_whitespace" class="py-name" href="#" onclick="return doclink('link-274', '_substitute_whitespace', 'link-32');">_substitute_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-275" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-275', 'style', 'link-46');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line">        <tt id="link-276" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-276', 'style', 'link-46');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-277" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-277', 'style', 'link-46');">style</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'javascript:'</tt> <tt class="py-keyword">in</tt> <tt id="link-278" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-278', 'style', 'link-46');">style</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-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'expression('</tt> <tt class="py-keyword">in</tt> <tt id="link-279" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-279', 'style', 'link-46');">style</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line"> </tt>
+<a name="Cleaner.clean_html"></a><div id="Cleaner.clean_html-def"><a name="L514"></a><tt class="py-lineno">514</tt> <a class="py-toggle" href="#" id="Cleaner.clean_html-toggle" onclick="return toggle('Cleaner.clean_html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean.Cleaner-class.html#clean_html">clean_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Cleaner.clean_html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Cleaner.clean_html-expanded"><a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">        <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-280" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-280', 'type', 'link-280');">type</a></tt><tt class="py-op">(</tt><tt id="link-281" 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-275', 'html', 'link-5');">html</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-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-276" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-281', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-282" 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-276', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-277" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-277', 'basestring', 'link-18');">basestring</a></tt><tt class="py-op">)</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-278" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-282', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-283" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-283', 'basestring', 'link-18');">basestring</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 class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-284" 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-278', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-279" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-284', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-285" 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-279', 'html', 'link-5');">html</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-keyword">else</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-280" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-285', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-286" 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-280', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-281" class="py-name"><a title="lxml.html
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-286', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-287" 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-281', 'html', 'link-5');">html</a></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 class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line"> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line"><tt id="link-282" class="py-name" targets="Module lxml.html.clean=lxml.html.clean-module.html,Variable lxml.html.clean.clean=lxml.html.clean-module.html#clean"><a title="lxml.html.clean
-lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-282', 'clean', 'link-282');">clean</a></tt> <tt class="py-op">=</tt> <tt id="link-283" class="py-name" targets="Class lxml.html.clean.Cleaner=lxml.html.clean.Cleaner-class.html"><a title="lxml.html.clean.Cleaner" class="py-name" href="#" onclick="return doclink('link-283', 'Cleaner', 'link-283');">Cleaner</a></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 id="link-284" class="py-name" targets="Method lxml.html.clean.Cleaner.clean_html()=lxml.html.clean.Cleaner-class.html#clean_html,Function lxml.html.clean.clean_html()=lxml.html.clean-module.html#clean_html"><a title="lxml.html.clean.Cleaner.clean_html
-lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-284', 'clean_html', 'link-284');">clean_html</a></tt> <tt class="py-op">=</tt> <tt id="link-285" class="py-name"><a title="lxml.html.clean
-lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-285', 'clean', 'link-282');">clean</a></tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="lxml.html.clean.Cleaner.clean_html
-lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-286', 'clean_html', 'link-284');">clean_html</a></tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line"> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"><tt class="py-comment">## Autolinking</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"><tt class="py-comment">############################################################</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-287" class="py-name" targets="Variable lxml.html.clean._link_regexes=lxml.html.clean-module.html#_link_regexes"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-287', '_link_regexes', 'link-287');">_link_regexes</a></tt> <tt class="py-op">=</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">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'(?P&lt;body&gt;https?://(?P&lt;host&gt;[a-z0-9._-]+)(?:/[/\-_.,a-z0-9%&amp;?;=~]*)?(?:\([/\-_.,a-z0-9%&amp;?;=~]*\))?)'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-288', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line">    <tt class="py-comment"># This is conservative, but autolinking can be a bit conservative:</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line">    <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'mailto:(?P&lt;body&gt;[a-z0-9._-]+@(?P&lt;host&gt;[a-z0-9_._]+[a-z]))'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-289', 'I', 'link-23');">I</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 class="py-op">]</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line"> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"><tt id="link-290" class="py-name" targets="Variable lxml.html.clean._avoid_elements=lxml.html.clean-module.html#_avoid_elements"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-290', '_avoid_elements', 'link-290');">_avoid_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"><tt id="link-291" class="py-name" targets="Variable lxml.html.clean._avoid_hosts=lxml.html.clean-module.html#_avoid_hosts"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-291', '_avoid_hosts', 'link-291');">_avoid_hosts</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 class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'^localhost'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-292', 'I', 'link-23');">I</a></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">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'\bexample\.(?:com|org|net)$'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-293', 'I', 'link-23');">I</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 class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'^127\.0\.0\.1$'</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-op">]</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line"> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line"><tt id="link-294" class="py-name" targets="Variable lxml.html.clean._avoid_classes=lxml.html.clean-module.html#_avoid_classes"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-294', '_avoid_classes', 'link-294');">_avoid_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nolink'</tt><tt class="py-op">]</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line"> </tt>
-<a name="autolink"></a><div id="autolink-def"><a name="L537"></a><tt class="py-lineno">537</tt> <a class="py-toggle" href="#" id="autolink-toggle" onclick="return toggle('autolink');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink">autolink</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">=</tt><tt id="link-295" class="py-name"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-295', '_link_regexes', 'link-287');">_link_regexes</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">             <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-296" class="py-name"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-296', '_avoid_elements', 'link-290');">_avoid_elements</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">             <tt class="py-param">avoid_hosts</tt><tt class="py-op">=</tt><tt id="link-297" class="py-name"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-297', '_avoid_hosts', 'link-291');">_avoid_hosts</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">             <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-298" class="py-name"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-298', '_avoid_classes', 'link-294');">_avoid_classes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="autolink-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink-expanded"><a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"><tt class="py-docstring">    Turn any URLs into links.</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line"><tt class="py-docstring">    It will search for links identified by the given regular</tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line"><tt class="py-docstring">    expressions (by default mailto and http(s) links).</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line"><tt class="py-docstring">    It won't link text in an element in avoid_elements, or an element</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line"><tt class="py-docstring">    with a class in avoid_classes.  It won't link to anything with a</tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line"><tt class="py-docstring">    host that matches one of the regular expressions in avoid_hosts</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line"><tt class="py-docstring">    (default localhost and 127.0.0.1).</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"><tt class="py-docstring">    If you pass in an element, the element's tail will not be</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"><tt class="py-docstring">    substituted, only the contents of the element.</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-287', 'html', 'link-5');">html</a></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">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line"> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"><tt id="link-288" class="py-name" targets="Module lxml.html.clean=lxml.html.clean-module.html,Variable lxml.html.clean.clean=lxml.html.clean-module.html#clean"><a title="lxml.html.clean
+lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-288', 'clean', 'link-288');">clean</a></tt> <tt class="py-op">=</tt> <tt id="link-289" class="py-name" targets="Class lxml.html.clean.Cleaner=lxml.html.clean.Cleaner-class.html"><a title="lxml.html.clean.Cleaner" class="py-name" href="#" onclick="return doclink('link-289', 'Cleaner', 'link-289');">Cleaner</a></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 id="link-290" class="py-name" targets="Method lxml.html.clean.Cleaner.clean_html()=lxml.html.clean.Cleaner-class.html#clean_html,Function lxml.html.clean.clean_html()=lxml.html.clean-module.html#clean_html"><a title="lxml.html.clean.Cleaner.clean_html
+lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-290', 'clean_html', 'link-290');">clean_html</a></tt> <tt class="py-op">=</tt> <tt id="link-291" class="py-name"><a title="lxml.html.clean
+lxml.html.clean.clean" class="py-name" href="#" onclick="return doclink('link-291', 'clean', 'link-288');">clean</a></tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="lxml.html.clean.Cleaner.clean_html
+lxml.html.clean.clean_html" class="py-name" href="#" onclick="return doclink('link-292', 'clean_html', 'link-290');">clean_html</a></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 class="py-comment">############################################################</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"><tt class="py-comment">## Autolinking</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line"><tt id="link-293" class="py-name" targets="Variable lxml.html.clean._link_regexes=lxml.html.clean-module.html#_link_regexes"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-293', '_link_regexes', 'link-293');">_link_regexes</a></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">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'(?P&lt;body&gt;https?://(?P&lt;host&gt;[a-z0-9._-]+)(?:/[/\-_.,a-z0-9%&amp;?;=~]*)?(?:\([/\-_.,a-z0-9%&amp;?;=~]*\))?)'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-294', 'I', 'link-23');">I</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 class="py-comment"># This is conservative, but autolinking can be a bit conservative:</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">    <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'mailto:(?P&lt;body&gt;[a-z0-9._-]+@(?P&lt;host&gt;[a-z0-9_._]+[a-z]))'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-295', 'I', 'link-23');">I</a></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-op">]</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line"> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line"><tt id="link-296" class="py-name" targets="Variable lxml.html.clean._avoid_elements=lxml.html.clean-module.html#_avoid_elements"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-296', '_avoid_elements', 'link-296');">_avoid_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-string">'head'</tt><tt class="py-op">,</tt> <tt class="py-string">'select'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line"> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line"><tt id="link-297" class="py-name" targets="Variable lxml.html.clean._avoid_hosts=lxml.html.clean-module.html#_avoid_hosts"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-297', '_avoid_hosts', 'link-297');">_avoid_hosts</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">    <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'^localhost'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-298', 'I', 'link-23');">I</a></tt><tt class="py-op">)</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">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'\bexample\.(?:com|org|net)$'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-299', 'I', 'link-23');">I</a></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">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'^127\.0\.0\.1$'</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-op">]</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line"> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line"><tt id="link-300" class="py-name" targets="Variable lxml.html.clean._avoid_classes=lxml.html.clean-module.html#_avoid_classes"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-300', '_avoid_classes', 'link-300');">_avoid_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nolink'</tt><tt class="py-op">]</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line"> </tt>
+<a name="autolink"></a><div id="autolink-def"><a name="L546"></a><tt class="py-lineno">546</tt> <a class="py-toggle" href="#" id="autolink-toggle" onclick="return toggle('autolink');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink">autolink</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">=</tt><tt id="link-301" class="py-name"><a title="lxml.html.clean._link_regexes" class="py-name" href="#" onclick="return doclink('link-301', '_link_regexes', 'link-293');">_link_regexes</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line">             <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-302" class="py-name"><a title="lxml.html.clean._avoid_elements" class="py-name" href="#" onclick="return doclink('link-302', '_avoid_elements', 'link-296');">_avoid_elements</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line">             <tt class="py-param">avoid_hosts</tt><tt class="py-op">=</tt><tt id="link-303" class="py-name"><a title="lxml.html.clean._avoid_hosts" class="py-name" href="#" onclick="return doclink('link-303', '_avoid_hosts', 'link-297');">_avoid_hosts</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">             <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-304" class="py-name"><a title="lxml.html.clean._avoid_classes" class="py-name" href="#" onclick="return doclink('link-304', '_avoid_classes', 'link-300');">_avoid_classes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="autolink-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink-expanded"><a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line"><tt class="py-docstring">    Turn any URLs into links.</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"><tt class="py-docstring">    It will search for links identified by the given regular</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line"><tt class="py-docstring">    expressions (by default mailto and http(s) links).</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line"><tt class="py-docstring">    It won't link text in an element in avoid_elements, or an element</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line"><tt class="py-docstring">    with a class in avoid_classes.  It won't link to anything with a</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line"><tt class="py-docstring">    host that matches one of the regular expressions in avoid_hosts</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line"><tt class="py-docstring">    (default localhost and 127.0.0.1).</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line"><tt class="py-docstring">    If you pass in an element, the element's tail will not be</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line"><tt class="py-docstring">    substituted, only the contents of the element.</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-305" 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-299', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_elements</tt><tt class="py-op">:</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">    <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-305', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_elements</tt><tt class="py-op">:</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">    <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-306" 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-300', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">class_name</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">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">        <tt id="link-301" class="py-name" targets="Function lxml.html.clean.autolink()=lxml.html.clean-module.html#autolink"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-301', 'autolink', 'link-301');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">=</tt><tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">                 <tt class="py-name">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</tt><tt class="py-op">,</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">                 <tt class="py-name">avoid_hosts</tt><tt class="py-op">=</tt><tt class="py-name">avoid_hosts</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">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">)</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-302" 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-302', 'tail', 'link-302');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line">            <tt id="link-303" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-306', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">class_name</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">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</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-keyword">for</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">match_class</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line">        <tt id="link-307" class="py-name" targets="Function lxml.html.clean.autolink()=lxml.html.clean-module.html#autolink"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-307', 'autolink', 'link-307');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">=</tt><tt class="py-name">link_regexes</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">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</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">avoid_hosts</tt><tt class="py-op">=</tt><tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">                 <tt class="py-name">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-308" 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-308', 'tail', 'link-308');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">            <tt id="link-309" 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-303', 'text', 'link-137');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">tail_children</tt> <tt class="py-op">=</tt> <tt id="link-304" class="py-name" targets="Function lxml.html.clean._link_text()=lxml.html.clean-module.html#_link_text"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-304', '_link_text', 'link-304');">_link_text</a></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">child</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-305', 'tail', 'link-302');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement,Method lxml.etree.iterparse.makeelement()=lxml.etree.iterparse-class.html#makeelement,Function lxml.tests.selftest2.makeelement()=lxml.tests.selftest2-module.html#makeelement"><a title="lxml.etree._Element.makeelement
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-309', 'text', 'link-142');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">tail_children</tt> <tt class="py-op">=</tt> <tt id="link-310" class="py-name" targets="Function lxml.html.clean._link_text()=lxml.html.clean-module.html#_link_text"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-310', '_link_text', 'link-310');">_link_text</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-311', 'tail', 'link-308');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement,Method lxml.etree.iterparse.makeelement()=lxml.etree.iterparse-class.html#makeelement,Function lxml.tests.selftest2.makeelement()=lxml.tests.selftest2-module.html#makeelement"><a title="lxml.etree._Element.makeelement
 lxml.etree.iterparse.makeelement
-lxml.tests.selftest2.makeelement" class="py-name" href="#" onclick="return doclink('link-306', 'makeelement', 'link-306');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tail_children</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">child</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-307', 'tail', 'link-302');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-308" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.makeelement" class="py-name" href="#" onclick="return doclink('link-312', 'makeelement', 'link-312');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tail_children</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">child</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-313', 'tail', 'link-308');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-314" 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-308', 'text', 'link-137');">text</a></tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line">                <tt id="link-309" 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-309', 'index', 'link-309');">index</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-310', 'index', 'link-309');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">child</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">el</tt><tt class="py-op">[</tt><tt id="link-311" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-311', 'index', 'link-309');">index</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt id="link-312" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-312', 'index', 'link-309');">index</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-name">tail_children</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-314', 'text', 'link-142');">text</a></tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line">                <tt id="link-315" 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-315', 'index', 'link-315');">index</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-316', 'index', 'link-315');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">child</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">el</tt><tt class="py-op">[</tt><tt id="link-317" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-317', 'index', 'link-315');">index</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt id="link-318" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-318', 'index', 'link-315');">index</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-name">tail_children</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-319" 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-313', 'text', 'link-137');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">        <tt id="link-314" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-319', 'text', 'link-142');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">        <tt id="link-320" 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-314', 'text', 'link-137');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pre_children</tt> <tt class="py-op">=</tt> <tt id="link-315" class="py-name"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-315', '_link_text', 'link-304');">_link_text</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-320', 'text', 'link-142');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pre_children</tt> <tt class="py-op">=</tt> <tt id="link-321" class="py-name"><a title="lxml.html.clean._link_text" class="py-name" href="#" onclick="return doclink('link-321', '_link_text', 'link-310');">_link_text</a></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">el</tt><tt class="py-op">.</tt><tt id="link-322" 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-316', 'text', 'link-137');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="lxml.etree._Element.makeelement
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-322', 'text', 'link-142');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-name">factory</tt><tt class="py-op">=</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name"><a title="lxml.etree._Element.makeelement
 lxml.etree.iterparse.makeelement
-lxml.tests.selftest2.makeelement" class="py-name" href="#" onclick="return doclink('link-317', 'makeelement', 'link-306');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">pre_children</tt><tt class="py-op">:</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.makeelement" class="py-name" href="#" onclick="return doclink('link-323', 'makeelement', 'link-312');">makeelement</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">pre_children</tt><tt class="py-op">:</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-324" 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-318', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-319" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-324', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-325" 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-319', 'text', 'link-137');">text</a></tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">            <tt class="py-name">el</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-name">pre_children</tt> </tt>
-</div><a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line"> </tt>
-<a name="_link_text"></a><div id="_link_text-def"><a name="L582"></a><tt class="py-lineno">582</tt> <a class="py-toggle" href="#" id="_link_text-toggle" onclick="return toggle('_link_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_link_text">_link_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-param">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-param">factory</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_link_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_link_text-expanded"><a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line">    <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line">    <tt id="link-320" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-320', 'links', 'link-47');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</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">last_pos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">        <tt class="py-name">best_match</tt><tt class="py-op">,</tt> <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">:</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">            <tt class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">last_pos</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-number">1</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">match</tt> <tt class="py-op">=</tt> <tt class="py-name">regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-321" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-325', 'text', 'link-142');">text</a></tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">            <tt class="py-name">el</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-name">pre_children</tt> </tt>
+</div><a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line"> </tt>
+<a name="_link_text"></a><div id="_link_text-def"><a name="L591"></a><tt class="py-lineno">591</tt> <a class="py-toggle" href="#" id="_link_text-toggle" onclick="return toggle('_link_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_link_text">_link_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">link_regexes</tt><tt class="py-op">,</tt> <tt class="py-param">avoid_hosts</tt><tt class="py-op">,</tt> <tt class="py-param">factory</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_link_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_link_text-expanded"><a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">    <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">    <tt id="link-326" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-326', 'links', 'link-48');">links</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</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">last_pos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">        <tt class="py-name">best_match</tt><tt class="py-op">,</tt> <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">link_regexes</tt><tt class="py-op">:</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line">            <tt class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">last_pos</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">                <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt class="py-name">regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-327" 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-321', 'text', 'link-137');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">=</tt><tt class="py-name">regex_pos</tt><tt class="py-op">)</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">                <tt class="py-name">host</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'host'</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">host_regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">:</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">host_regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">host</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 class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-322" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-322', 'end', 'link-322');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line">                        <tt class="py-keyword">break</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">best_pos</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-323', 'start', 'link-323');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">best_pos</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">best_match</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line">                <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-324', 'start', 'link-323');">start</a></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 class="py-keyword">if</tt> <tt class="py-name">best_match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">            <tt class="py-comment"># No more matches</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-325" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-325', 'links', 'link-47');">links</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-326" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-326', 'links', 'link-47');">links</a></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-327" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-327', 'tail', 'link-302');">tail</a></tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">                <tt id="link-328" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-328', 'links', 'link-47');">links</a></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-329" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-329', 'tail', 'link-302');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-330" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-327', 'text', 'link-142');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">=</tt><tt class="py-name">regex_pos</tt><tt class="py-op">)</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">                <tt class="py-name">host</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'host'</tt><tt class="py-op">)</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">host_regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_hosts</tt><tt class="py-op">:</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">host_regex</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">host</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 class="py-name">regex_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-328" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-328', 'end', 'link-328');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">                        <tt class="py-keyword">break</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">best_pos</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-329', 'start', 'link-329');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">best_pos</tt><tt class="py-op">:</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">                <tt class="py-name">best_match</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">                <tt class="py-name">best_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-330', 'start', 'link-329');">start</a></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 class="py-keyword">if</tt> <tt class="py-name">best_match</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">            <tt class="py-comment"># No more matches</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-331" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-331', 'links', 'link-48');">links</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-332" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-332', 'links', 'link-48');">links</a></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-333" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-333', 'tail', 'link-308');">tail</a></tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">                <tt id="link-334" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-334', 'links', 'link-48');">links</a></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-335" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-335', 'tail', 'link-308');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-336" 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-330', 'text', 'link-137');">text</a></tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">                <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt id="link-331" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-336', 'text', 'link-142');">text</a></tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">                <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt id="link-337" 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-331', 'text', 'link-137');">text</a></tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">        <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">        <tt id="link-332" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-332', 'end', 'link-322');">end</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-333', 'end', 'link-322');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">            <tt class="py-comment"># These punctuation marks shouldn't end a link</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">            <tt id="link-334" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-334', 'end', 'link-322');">end</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">            <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">link</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="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">        <tt class="py-name">prev_text</tt> <tt class="py-op">=</tt> <tt id="link-335" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-337', 'text', 'link-142');">text</a></tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">        <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">        <tt id="link-338" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-338', 'end', 'link-328');">end</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-339', 'end', 'link-328');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">link</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</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-comment"># These punctuation marks shouldn't end a link</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">            <tt id="link-340" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-340', 'end', 'link-328');">end</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">            <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">link</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="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">        <tt class="py-name">prev_text</tt> <tt class="py-op">=</tt> <tt id="link-341" 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-335', 'text', 'link-137');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-336', 'start', 'link-323');">start</a></tt><tt class="py-op">(</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 class="py-keyword">if</tt> <tt id="link-337" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-337', 'links', 'link-47');">links</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-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-338" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-338', 'links', 'link-47');">links</a></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-339" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-339', 'tail', 'link-302');">tail</a></tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">            <tt id="link-340" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-340', 'links', 'link-47');">links</a></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-341" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-341', 'tail', 'link-302');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">            <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">        <tt class="py-name">anchor</tt> <tt class="py-op">=</tt> <tt class="py-name">factory</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">        <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-342', 'set', 'link-66');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">        <tt id="link-343" class="py-name" targets="Variable lxml.html.HtmlMixin.body=lxml.html.HtmlMixin-class.html#body"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-343', 'body', 'link-343');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-344" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-344', 'body', 'link-343');">body</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">            <tt id="link-345" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-345', 'body', 'link-343');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">link</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-346" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-346', 'body', 'link-343');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-347" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-347', 'body', 'link-343');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line">            <tt id="link-348" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-348', 'body', 'link-343');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-349" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-349', 'body', 'link-343');">body</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="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line">        <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-341', 'text', 'link-142');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-342', 'start', 'link-329');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-343" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-343', 'links', 'link-48');">links</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-344" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-344', 'links', 'link-48');">links</a></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-345" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-345', 'tail', 'link-308');">tail</a></tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">            <tt id="link-346" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-346', 'links', 'link-48');">links</a></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-347" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-347', 'tail', 'link-308');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">leading_text</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">            <tt class="py-name">leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">prev_text</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">        <tt class="py-name">anchor</tt> <tt class="py-op">=</tt> <tt class="py-name">factory</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">        <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-348', 'set', 'link-67');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">        <tt id="link-349" class="py-name" targets="Variable lxml.html.HtmlMixin.body=lxml.html.HtmlMixin-class.html#body"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-349', 'body', 'link-349');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">best_match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-350" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-350', 'body', 'link-349');">body</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">            <tt id="link-351" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-351', 'body', 'link-349');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">link</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-352" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-352', 'body', 'link-349');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-353" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-353', 'body', 'link-349');">body</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">            <tt id="link-354" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-354', 'body', 'link-349');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-355" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-355', 'body', 'link-349');">body</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="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">        <tt class="py-name">anchor</tt><tt class="py-op">.</tt><tt id="link-356" 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-350', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-351" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-351', 'body', 'link-343');">body</a></tt> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">        <tt id="link-352" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-352', 'links', 'link-47');">links</a></tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-353', 'append', 'link-200');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">anchor</tt><tt class="py-op">)</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">        <tt id="link-354" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-356', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-357" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-357', 'body', 'link-349');">body</a></tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">        <tt id="link-358" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-358', 'links', 'link-48');">links</a></tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-359', 'append', 'link-206');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">anchor</tt><tt class="py-op">)</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">        <tt id="link-360" 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-354', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-355" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-360', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-361" 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-355', 'text', 'link-137');">text</a></tt><tt class="py-op">[</tt><tt id="link-356" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-356', 'end', 'link-322');">end</a></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 class="py-keyword">return</tt> <tt class="py-name">leading_text</tt><tt class="py-op">,</tt> <tt id="link-357" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-357', 'links', 'link-47');">links</a></tt> </tt>
-</div><a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">                 </tt>
-<a name="autolink_html"></a><div id="autolink_html-def"><a name="L640"></a><tt class="py-lineno">640</tt> <a class="py-toggle" href="#" id="autolink_html-toggle" onclick="return toggle('autolink_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink_html">autolink_html</a><tt class="py-op">(</tt><tt class="py-param">html</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 class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="autolink_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink_html-expanded"><a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">    <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-358" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-358', 'type', 'link-274');">type</a></tt><tt class="py-op">(</tt><tt id="link-359" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-361', 'text', 'link-142');">text</a></tt><tt class="py-op">[</tt><tt id="link-362" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-362', 'end', 'link-328');">end</a></tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">leading_text</tt><tt class="py-op">,</tt> <tt id="link-363" class="py-name"><a title="lxml.html.clean.Cleaner.links" class="py-name" href="#" onclick="return doclink('link-363', 'links', 'link-48');">links</a></tt> </tt>
+</div><a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">                 </tt>
+<a name="autolink_html"></a><div id="autolink_html-def"><a name="L649"></a><tt class="py-lineno">649</tt> <a class="py-toggle" href="#" id="autolink_html-toggle" onclick="return toggle('autolink_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#autolink_html">autolink_html</a><tt class="py-op">(</tt><tt class="py-param">html</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 class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="autolink_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="autolink_html-expanded"><a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line">    <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-364" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-364', 'type', 'link-280');">type</a></tt><tt class="py-op">(</tt><tt id="link-365" 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-359', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-360" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-365', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-366" 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-360', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-361" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-361', 'basestring', 'link-18');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-362" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-366', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-367" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-367', 'basestring', 'link-18');">basestring</a></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 class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-368" 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-362', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-363" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-368', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-369" 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-363', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-364" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-369', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line">    <tt class="py-keyword">else</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-370" 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-364', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-365" class="py-name"><a title="lxml.html
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-370', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-371" 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-365', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">    <tt id="link-366" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-366', 'autolink', 'link-301');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</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-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line"> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line"><tt id="link-367" class="py-name" targets="Function lxml.html.clean.autolink_html()=lxml.html.clean-module.html#autolink_html"><a title="lxml.html.clean.autolink_html" class="py-name" href="#" onclick="return doclink('link-367', 'autolink_html', 'link-367');">autolink_html</a></tt><tt class="py-op">.</tt><tt id="link-368" class="py-name" targets="Variable lxml.html.ElementSoup.__doc__=lxml.html.ElementSoup-module.html#__doc__"><a title="lxml.html.ElementSoup.__doc__" class="py-name" href="#" onclick="return doclink('link-368', '__doc__', 'link-368');">__doc__</a></tt> <tt class="py-op">=</tt> <tt id="link-369" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-369', 'autolink', 'link-301');">autolink</a></tt><tt class="py-op">.</tt><tt id="link-370" class="py-name"><a title="lxml.html.ElementSoup.__doc__" class="py-name" href="#" onclick="return doclink('link-370', '__doc__', 'link-368');">__doc__</a></tt> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line"> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line"><tt class="py-comment">## Word wrapping</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line"> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line"><tt id="link-371" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_elements=lxml.html.clean-module.html#_avoid_word_break_elements"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-371', '_avoid_word_break_elements', 'link-371');">_avoid_word_break_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line"><tt id="link-372" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_classes=lxml.html.clean-module.html#_avoid_word_break_classes"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-372', '_avoid_word_break_classes', 'link-372');">_avoid_word_break_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nobreak'</tt><tt class="py-op">]</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line"> </tt>
-<a name="word_break"></a><div id="word_break-def"><a name="L658"></a><tt class="py-lineno">658</tt> <a class="py-toggle" href="#" id="word_break-toggle" onclick="return toggle('word_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break">word_break</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">=</tt><tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line">               <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-373" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-373', '_avoid_word_break_elements', 'link-371');">_avoid_word_break_elements</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line">               <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-374" class="py-name"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-374', '_avoid_word_break_classes', 'link-372');">_avoid_word_break_classes</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-param">break_character</tt><tt class="py-op">=</tt><tt id="link-375" class="py-name"><a title="lxml.html.clean.unichr" class="py-name" href="#" onclick="return doclink('link-375', 'unichr', 'link-14');">unichr</a></tt><tt class="py-op">(</tt><tt class="py-number">0x200b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="word_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break-expanded"><a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line"><tt class="py-docstring">    Breaks any long words found in the body of the text (not attributes).</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line"><tt class="py-docstring">    Doesn't effect any of the tags in avoid_elements, by default</tt> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line"><tt class="py-docstring">    ``&lt;textarea&gt;`` and ``&lt;pre&gt;``</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line"><tt class="py-docstring">    Breaks words by inserting &amp;#8203;, which is a unicode character</tt> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line"><tt class="py-docstring">    for Zero Width Space character.  This generally takes up no space</tt> </tt>
-<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line"><tt class="py-docstring">    in rendering, but does copy as a space, and in monospace contexts</tt> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line"><tt class="py-docstring">    usually takes up space.</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line"><tt class="py-docstring">    See http://www.cs.tut.fi/~jkorpela/html/nobr.html for a discussion</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line">    <tt class="py-comment"># Character suggestion of &amp;#8203 comes from:</tt> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line">    <tt class="py-comment">#   http://www.cs.tut.fi/~jkorpela/html/nobr.html</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-371', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line">    <tt id="link-372" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-372', 'autolink', 'link-307');">autolink</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</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-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+</div><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-373" class="py-name" targets="Function lxml.html.clean.autolink_html()=lxml.html.clean-module.html#autolink_html"><a title="lxml.html.clean.autolink_html" class="py-name" href="#" onclick="return doclink('link-373', 'autolink_html', 'link-373');">autolink_html</a></tt><tt class="py-op">.</tt><tt id="link-374" class="py-name" targets="Variable lxml.html.ElementSoup.__doc__=lxml.html.ElementSoup-module.html#__doc__"><a title="lxml.html.ElementSoup.__doc__" class="py-name" href="#" onclick="return doclink('link-374', '__doc__', 'link-374');">__doc__</a></tt> <tt class="py-op">=</tt> <tt id="link-375" class="py-name"><a title="lxml.html.clean.autolink" class="py-name" href="#" onclick="return doclink('link-375', 'autolink', 'link-307');">autolink</a></tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.html.ElementSoup.__doc__" class="py-name" href="#" onclick="return doclink('link-376', '__doc__', 'link-374');">__doc__</a></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-comment">############################################################</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line"><tt class="py-comment">## Word wrapping</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line"><tt class="py-comment">############################################################</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line"> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line"><tt id="link-377" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_elements=lxml.html.clean-module.html#_avoid_word_break_elements"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-377', '_avoid_word_break_elements', 'link-377');">_avoid_word_break_elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'pre'</tt><tt class="py-op">,</tt> <tt class="py-string">'textarea'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line"><tt id="link-378" class="py-name" targets="Variable lxml.html.clean._avoid_word_break_classes=lxml.html.clean-module.html#_avoid_word_break_classes"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-378', '_avoid_word_break_classes', 'link-378');">_avoid_word_break_classes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'nobreak'</tt><tt class="py-op">]</tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line"> </tt>
+<a name="word_break"></a><div id="word_break-def"><a name="L667"></a><tt class="py-lineno">667</tt> <a class="py-toggle" href="#" id="word_break-toggle" onclick="return toggle('word_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break">word_break</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">=</tt><tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line">               <tt class="py-param">avoid_elements</tt><tt class="py-op">=</tt><tt id="link-379" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-379', '_avoid_word_break_elements', 'link-377');">_avoid_word_break_elements</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line">               <tt class="py-param">avoid_classes</tt><tt class="py-op">=</tt><tt id="link-380" class="py-name"><a title="lxml.html.clean._avoid_word_break_classes" class="py-name" href="#" onclick="return doclink('link-380', '_avoid_word_break_classes', 'link-378');">_avoid_word_break_classes</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line">               <tt class="py-param">break_character</tt><tt class="py-op">=</tt><tt id="link-381" class="py-name"><a title="lxml.html.clean.unichr" class="py-name" href="#" onclick="return doclink('link-381', 'unichr', 'link-14');">unichr</a></tt><tt class="py-op">(</tt><tt class="py-number">0x200b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="word_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break-expanded"><a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line"><tt class="py-docstring">    Breaks any long words found in the body of the text (not attributes).</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line"><tt class="py-docstring">    Doesn't effect any of the tags in avoid_elements, by default</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line"><tt class="py-docstring">    ``&lt;textarea&gt;`` and ``&lt;pre&gt;``</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line"><tt class="py-docstring">    Breaks words by inserting &amp;#8203;, which is a unicode character</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line"><tt class="py-docstring">    for Zero Width Space character.  This generally takes up no space</tt> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line"><tt class="py-docstring">    in rendering, but does copy as a space, and in monospace contexts</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line"><tt class="py-docstring">    usually takes up space.</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line"><tt class="py-docstring">    See http://www.cs.tut.fi/~jkorpela/html/nobr.html for a discussion</tt> </tt>
+<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line">    <tt class="py-comment"># Character suggestion of &amp;#8203 comes from:</tt> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">    <tt class="py-comment">#   http://www.cs.tut.fi/~jkorpela/html/nobr.html</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-382" 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-376', 'tag', 'link-81');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-377" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-377', '_avoid_word_break_elements', 'link-371');">_avoid_word_break_elements</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line">    <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-382', 'tag', 'link-85');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-383" class="py-name"><a title="lxml.html.clean._avoid_word_break_elements" class="py-name" href="#" onclick="return doclink('link-383', '_avoid_word_break_elements', 'link-377');">_avoid_word_break_elements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">    <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-384" 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-378', 'get', 'link-127');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line">        <tt class="py-name">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line">        <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</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">for</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</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">if</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</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">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
-<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">dont_break</tt><tt class="py-op">:</tt> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-384', 'get', 'link-131');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'class'</tt><tt class="py-op">)</tt> </tt>
+<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">class_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">        <tt class="py-name">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">        <tt class="py-name">class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">class_name</tt><tt class="py-op">.</tt><tt class="py-name">split</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-keyword">for</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">avoid_classes</tt><tt class="py-op">:</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">avoid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">class_name</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">dont_break</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line">                <tt class="py-keyword">break</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">dont_break</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>
+<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-385" 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-379', 'text', 'link-137');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-385', 'text', 'link-142');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-386" 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-380', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-381" class="py-name" targets="Function lxml.html.clean._break_text()=lxml.html.clean-module.html#_break_text"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-381', '_break_text', 'link-381');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-386', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-387" class="py-name" targets="Function lxml.html.clean._break_text()=lxml.html.clean-module.html#_break_text"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-387', '_break_text', 'link-387');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-388" 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-382', 'text', 'link-137');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line">        <tt id="link-383" class="py-name" targets="Function lxml.html.clean.word_break()=lxml.html.clean-module.html#word_break"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-383', 'word_break', 'link-383');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">=</tt><tt class="py-name">max_width</tt><tt class="py-op">,</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line">                   <tt class="py-name">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</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">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</tt><tt class="py-op">,</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line">                   <tt class="py-name">break_character</tt><tt class="py-op">=</tt><tt class="py-name">break_character</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">child</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-384', 'tail', 'link-302');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line">            <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-385', 'tail', 'link-302');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-386" class="py-name"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-386', '_break_text', 'link-381');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-387', 'tail', 'link-302');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line"> </tt>
-<a name="word_break_html"></a><div id="word_break_html-def"><a name="L699"></a><tt class="py-lineno">699</tt> <a class="py-toggle" href="#" id="word_break_html-toggle" onclick="return toggle('word_break_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break_html">word_break_html</a><tt class="py-op">(</tt><tt class="py-param">html</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 class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="word_break_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break_html-expanded"><a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">    <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-388', 'type', 'link-274');">type</a></tt><tt class="py-op">(</tt><tt id="link-389" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-388', 'text', 'link-142');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">        <tt id="link-389" class="py-name" targets="Function lxml.html.clean.word_break()=lxml.html.clean-module.html#word_break"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-389', 'word_break', 'link-389');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">=</tt><tt class="py-name">max_width</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">avoid_elements</tt><tt class="py-op">=</tt><tt class="py-name">avoid_elements</tt><tt class="py-op">,</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">                   <tt class="py-name">avoid_classes</tt><tt class="py-op">=</tt><tt class="py-name">avoid_classes</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">break_character</tt><tt class="py-op">=</tt><tt class="py-name">break_character</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">child</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-390', 'tail', 'link-308');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">            <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-391', 'tail', 'link-308');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-392" class="py-name"><a title="lxml.html.clean._break_text" class="py-name" href="#" onclick="return doclink('link-392', '_break_text', 'link-387');">_break_text</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-393" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-393', 'tail', 'link-308');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line"> </tt>
+<a name="word_break_html"></a><div id="word_break_html-def"><a name="L708"></a><tt class="py-lineno">708</tt> <a class="py-toggle" href="#" id="word_break_html-toggle" onclick="return toggle('word_break_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#word_break_html">word_break_html</a><tt class="py-op">(</tt><tt class="py-param">html</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 class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="word_break_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="word_break_html-expanded"><a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">    <tt class="py-name">result_type</tt> <tt class="py-op">=</tt> <tt id="link-394" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-394', 'type', 'link-280');">type</a></tt><tt class="py-op">(</tt><tt id="link-395" 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-389', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">    <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-390" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-395', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line">    <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-396" 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-390', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-391" class="py-name"><a title="lxml.html
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-396', 'fromstring', 'link-9');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-397" 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-391', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">    <tt id="link-392" class="py-name"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-392', 'word_break', 'link-383');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</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-name">kw</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line"> </tt>
-<a name="_break_text"></a><div id="_break_text-def"><a name="L705"></a><tt class="py-lineno">705</tt> <a class="py-toggle" href="#" id="_break_text-toggle" onclick="return toggle('_break_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_break_text">_break_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_break_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_break_text-expanded"><a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">    <tt class="py-name">words</tt> <tt class="py-op">=</tt> <tt id="link-393" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-397', 'html', 'link-5');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">    <tt id="link-398" class="py-name"><a title="lxml.html.clean.word_break" class="py-name" href="#" onclick="return doclink('link-398', 'word_break', 'link-389');">word_break</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</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-name">kw</tt><tt class="py-op">)</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">_transform_result</tt><tt class="py-op">(</tt><tt class="py-name">result_type</tt><tt class="py-op">,</tt> <tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line"> </tt>
+<a name="_break_text"></a><div id="_break_text-def"><a name="L714"></a><tt class="py-lineno">714</tt> <a class="py-toggle" href="#" id="_break_text-toggle" onclick="return toggle('_break_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_break_text">_break_text</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">max_width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_break_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_break_text-expanded"><a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line">    <tt class="py-name">words</tt> <tt class="py-op">=</tt> <tt id="link-399" 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-393', 'text', 'link-137');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">split</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-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">words</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">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">max_width</tt><tt class="py-op">:</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">            <tt class="py-name">replacement</tt> <tt class="py-op">=</tt> <tt id="link-394" class="py-name" targets="Function lxml.html.clean._insert_break()=lxml.html.clean-module.html#_insert_break"><a title="lxml.html.clean._insert_break" class="py-name" href="#" onclick="return doclink('link-394', '_insert_break', 'link-394');">_insert_break</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line">            <tt id="link-395" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-399', 'text', 'link-142');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">split</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-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">words</tt><tt class="py-op">:</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">max_width</tt><tt class="py-op">:</tt> </tt>
+<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line">            <tt class="py-name">replacement</tt> <tt class="py-op">=</tt> <tt id="link-400" class="py-name" targets="Function lxml.html.clean._insert_break()=lxml.html.clean-module.html#_insert_break"><a title="lxml.html.clean._insert_break" class="py-name" href="#" onclick="return doclink('link-400', '_insert_break', 'link-400');">_insert_break</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">max_width</tt><tt class="py-op">,</tt> <tt class="py-name">break_character</tt><tt class="py-op">)</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line">            <tt id="link-401" 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-395', 'text', 'link-137');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-396" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-401', 'text', 'link-142');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-402" 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-396', 'text', 'link-137');">text</a></tt><tt class="py-op">.</tt><tt id="link-397" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-397', 'replace', 'link-266');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">replacement</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-398" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-402', 'text', 'link-142');">text</a></tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-403', 'replace', 'link-272');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">,</tt> <tt class="py-name">replacement</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-404" 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-398', 'text', 'link-137');">text</a></tt> </tt>
-</div><a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line"> </tt>
-<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line"><tt id="link-399" class="py-name" targets="Variable lxml.html.clean._break_prefer_re=lxml.html.clean-module.html#_break_prefer_re"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-399', '_break_prefer_re', 'link-399');">_break_prefer_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'[^a-z]'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-400', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line"> </tt>
-<a name="_insert_break"></a><div id="_insert_break-def"><a name="L715"></a><tt class="py-lineno">715</tt> <a class="py-toggle" href="#" id="_insert_break-toggle" onclick="return toggle('_insert_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_insert_break">_insert_break</a><tt class="py-op">(</tt><tt class="py-param">word</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_insert_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_insert_break-expanded"><a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line">    <tt class="py-name">orig_word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt> </tt>
-<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">width</tt><tt class="py-op">:</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line">        <tt id="link-401" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-401', 'start', 'link-323');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">width</tt><tt class="py-op">]</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line">        <tt class="py-name">breaks</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-402" class="py-name"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-402', '_break_prefer_re', 'link-399');">_break_prefer_re</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt id="link-403" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-403', 'start', 'link-323');">start</a></tt><tt class="py-op">)</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">if</tt> <tt class="py-name">breaks</tt><tt class="py-op">:</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line">            <tt class="py-name">last_break</tt> <tt class="py-op">=</tt> <tt class="py-name">breaks</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="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line">            <tt class="py-comment"># Only walk back up to 10 characters to find a nice break:</tt> </tt>
-<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-404" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-404', 'end', 'link-322');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">width</tt><tt class="py-op">-</tt><tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
-<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">                <tt class="py-comment"># FIXME: should the break character be at the end of the</tt> </tt>
-<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">                <tt class="py-comment"># chunk, or the beginning of the next chunk?</tt> </tt>
-<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">                <tt id="link-405" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-405', 'start', 'link-323');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-406', 'end', 'link-322');">end</a></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 class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-407" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-407', 'start', 'link-323');">start</a></tt> <tt class="py-op">+</tt> <tt class="py-name">break_character</tt> </tt>
-<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line">        <tt class="py-name">word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-408" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-408', 'start', 'link-323');">start</a></tt><tt class="py-op">)</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">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">word</tt> </tt>
-<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
-</div><a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-404', 'text', 'link-142');">text</a></tt> </tt>
+</div><a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line"> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line"><tt id="link-405" class="py-name" targets="Variable lxml.html.clean._break_prefer_re=lxml.html.clean-module.html#_break_prefer_re"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-405', '_break_prefer_re', 'link-405');">_break_prefer_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'[^a-z]'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-406', 'I', 'link-23');">I</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line"> </tt>
+<a name="_insert_break"></a><div id="_insert_break-def"><a name="L724"></a><tt class="py-lineno">724</tt> <a class="py-toggle" href="#" id="_insert_break-toggle" onclick="return toggle('_insert_break');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.clean-module.html#_insert_break">_insert_break</a><tt class="py-op">(</tt><tt class="py-param">word</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">,</tt> <tt class="py-param">break_character</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_insert_break-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_insert_break-expanded"><a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">    <tt class="py-name">orig_word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">width</tt><tt class="py-op">:</tt> </tt>
+<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">        <tt id="link-407" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-407', 'start', 'link-329');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">width</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">breaks</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-408" class="py-name"><a title="lxml.html.clean._break_prefer_re" class="py-name" href="#" onclick="return doclink('link-408', '_break_prefer_re', 'link-405');">_break_prefer_re</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt id="link-409" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-409', 'start', 'link-329');">start</a></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-keyword">if</tt> <tt class="py-name">breaks</tt><tt class="py-op">:</tt> </tt>
+<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">            <tt class="py-name">last_break</tt> <tt class="py-op">=</tt> <tt class="py-name">breaks</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="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">            <tt class="py-comment"># Only walk back up to 10 characters to find a nice break:</tt> </tt>
+<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-410', 'end', 'link-328');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">width</tt><tt class="py-op">-</tt><tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
+<a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">                <tt class="py-comment"># FIXME: should the break character be at the end of the</tt> </tt>
+<a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line">                <tt class="py-comment"># chunk, or the beginning of the next chunk?</tt> </tt>
+<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">                <tt id="link-411" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-411', 'start', 'link-329');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">last_break</tt><tt class="py-op">.</tt><tt id="link-412" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-412', 'end', 'link-328');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-413" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-413', 'start', 'link-329');">start</a></tt> <tt class="py-op">+</tt> <tt class="py-name">break_character</tt> </tt>
+<a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line">        <tt class="py-name">word</tt> <tt class="py-op">=</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-414" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-414', 'start', 'link-329');">start</a></tt><tt class="py-op">)</tt><tt class="py-op">:</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">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">word</tt> </tt>
+<a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div><a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -1299,7 +1308,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5b9ec6a..97ff3e6 100644 (file)
@@ -82,7 +82,9 @@ as they could contain Javascript.</dd>
 <dt><tt class="rst-docutils literal">comments</tt>:</dt>
 <dd>Removes any comments.</dd>
 <dt><tt class="rst-docutils literal">style</tt>:</dt>
-<dd>Removes any style tags or attributes.</dd>
+<dd>Removes any style tags.</dd>
+<dt><tt class="rst-docutils literal">inline_style</tt></dt>
+<dd>Removes any style attributes.  Defaults to the value of the <tt class="rst-docutils literal">style</tt> option.</dd>
 <dt><tt class="rst-docutils literal">links</tt>:</dt>
 <dd>Removes any <tt class="rst-docutils literal">&lt;link&gt;</tt> tags</dd>
 <dt><tt class="rst-docutils literal">meta</tt>:</dt>
@@ -424,6 +426,14 @@ checks for attempt to do stuff like this.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
+        <a name="inline_style"></a><span class="summary-name">inline_style</span> = <code title="None">None</code><br />
+      hash(x)
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
         <a name="links"></a><span class="summary-name">links</span> = <code title="True">True</code>
     </td>
   </tr>
@@ -759,7 +769,8 @@ more sneaky attempts.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd13d1b..6d1b1ab 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 15d5ebe..10f4424 100644 (file)
@@ -240,7 +240,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ad0d22..1096c90 100644 (file)
@@ -193,7 +193,7 @@ blocks amidst large spans of changes
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a href="lxml.html.diff-module.html#html_annotate" class="summary-sig-name">html_annotate</a>(<span class="summary-sig-arg">doclist</span>,
-        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;function default_markup at 0x2ab25b838f50&gt;</span>)</span><br />
+        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;__builtin__.function object&gt;</span>)</span><br />
       doclist should be ordered from oldest to newest, like:</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>
@@ -972,7 +972,7 @@ given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&g
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">html_annotate</span>(<span class="sig-arg">doclist</span>,
-        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;function default_markup at 0x2ab25b838f50&gt;</span>)</span>
+        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;__builtin__.function object&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>&nbsp;
@@ -1370,7 +1370,8 @@ includes the elements tail.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a029e21..374bdd1 100644 (file)
@@ -1741,7 +1741,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ebc648..c3c3acb 100644 (file)
@@ -94,7 +94,8 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e2e1fbb..f226df8 100644 (file)
@@ -94,7 +94,8 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7c6f0e..9272d85 100644 (file)
@@ -235,7 +235,8 @@ triple with n==0.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 08005d8..64f1df1 100644 (file)
@@ -182,7 +182,8 @@ Raised when the document no longer contains any pending deletes
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5890ae6..9cc6ca6 100644 (file)
@@ -342,7 +342,8 @@ show the href when it changes.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4158e73..ea58f46 100644 (file)
@@ -427,7 +427,8 @@ is only represented in a document by a tag.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index caaae9f..4c36381 100644 (file)
@@ -412,7 +412,8 @@ space.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 50356cc..83aff0f 100644 (file)
         <span class="summary-sig-arg">form_id</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">form_index</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">error_class</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">error</code><code class="variable-quote">'</code></span>,
-        <span class="summary-sig-arg">error_creator</span>=<span class="summary-sig-default">default_error_creator</span>)</span></td>
+        <span class="summary-sig-arg">error_creator</span>=<span class="summary-sig-default">&lt;lxml.html.formfill.DefaultErrorCreator object&gt;</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.formfill-pysrc.html#insert_errors">source&nbsp;code</a></span>
             
@@ -439,7 +439,7 @@ escendant-or-self::x:textarea">descendant-or-self::input|descendant-or-self::s<c
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="default_error_creator"></a><span class="summary-name">default_error_creator</span> = <code title="default_error_creator">default_error_creator</code>
+        <a href="lxml.html.formfill-module.html#default_error_creator" class="summary-name" onclick="show_private();">default_error_creator</a> = <code title="&lt;lxml.html.formfill.DefaultErrorCreator object&gt;">&lt;lxml.html.formfill.DefaultErrorCreato<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr class="private">
@@ -514,6 +514,24 @@ escendant-or-self::x:textarea
   </dl>
 </td></tr></table>
 </div>
+<a name="default_error_creator"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">default_error_creator</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+&lt;lxml.html.formfill.DefaultErrorCreator object&gt;
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
 <br />
 <!-- ==================== NAVIGATION BAR ==================== -->
 <table class="navbar" border="0" width="100%" cellpadding="0"
@@ -546,7 +564,8 @@ escendant-or-self::x:textarea
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b9a9e0a..1663e98 100644 (file)
@@ -780,7 +780,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa8a140..fdadacb 100644 (file)
@@ -303,7 +303,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5eec635..cac0e5b 100644 (file)
@@ -185,7 +185,8 @@ Raised when no form can be found
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 199bc34..c93b072 100644 (file)
@@ -278,7 +278,7 @@ tree.  Note: this returns a tree, not an element.  Use
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="html_parser"></a><span class="summary-name">html_parser</span> = <code title="HTMLParser()">HTMLParser()</code>
+        <a name="html_parser"></a><span class="summary-name">html_parser</span> = <code title="&lt;lxml.html.html5parser.HTMLParser object&gt;">&lt;lxml.html.html5parser.HTMLParser object&gt;</code>
     </td>
   </tr>
 <tr>
@@ -418,7 +418,8 @@ is a fragment or a document.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41d8c01..1246f1b 100644 (file)
@@ -601,7 +601,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c6b74ed..fd65b79 100644 (file)
@@ -256,7 +256,8 @@ text</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 443b02c..329b7ab 100644 (file)
@@ -139,7 +139,8 @@ An html5lib XHTML Parser with lxml as tree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6848d5d..c8cbe08 100644 (file)
@@ -487,7 +487,8 @@ keyword.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8e459ef..ad274b5 100644 (file)
@@ -543,7 +543,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd9f349..88ae229 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7f6736..724f028 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c939a9..1915ac8 100644 (file)
@@ -116,7 +116,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7c562d1..2432eb0 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 28ae9cf..42bb3c8 100644 (file)
@@ -100,7 +100,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:14 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 47a50fc..03c111f 100644 (file)
@@ -225,48 +225,43 @@ kwargsDict entries with a value of None are ignored.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#_resources_dir" class="summary-name" onclick="show_private();">_resources_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/isoschematron/resour\
-ces'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.isoschematron-module.html#_resources_dir" class="summary-name" onclick="show_private();">_resources_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/isoschematron/r\
+esources'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#extract_xsd" class="summary-name">extract_xsd</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'XSD2Scht\
-rn.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resources<code class="variable-ellipsis">...</code></code>
+        <a name="extract_xsd"></a><span class="summary-name">extract_xsd</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#extract_rng" class="summary-name">extract_rng</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'RNG2Scht\
-rn.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resources<code class="variable-ellipsis">...</code></code>
+        <a name="extract_rng"></a><span class="summary-name">extract_rng</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#iso_dsdl_include" class="summary-name">iso_dsdl_include</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche\
-matron-xslt1', 'iso_dsdl_include.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_reso<code class="variable-ellipsis">...</code></code>
+        <a name="iso_dsdl_include"></a><span class="summary-name">iso_dsdl_include</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#iso_abstract_expand" class="summary-name">iso_abstract_expand</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche\
-matron-xslt1', 'iso_abstract_expand.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_r<code class="variable-ellipsis">...</code></code>
+        <a name="iso_abstract_expand"></a><span class="summary-name">iso_abstract_expand</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#iso_svrl_for_xslt1" class="summary-name">iso_svrl_for_xslt1</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche\
-matron-xslt1', 'iso_svrl_for_xslt1.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_re<code class="variable-ellipsis">...</code></code>
+        <a name="iso_svrl_for_xslt1"></a><span class="summary-name">iso_svrl_for_xslt1</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr>
@@ -280,8 +275,7 @@ matron-xslt1', 'iso_svrl_for_xslt1.xsl')))">_etree.XSLT(_etree.parse(os.path.joi
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron-module.html#schematron_schema_valid" class="summary-name">schematron_schema_valid</a> = <code title="_etree.RelaxNG(_etree.parse(os.path.join(_resources_dir, 'rng', 'iso-s\
-chematron.rng')))">_etree.RelaxNG(_etree.parse(os.path.<code class="variable-ellipsis">...</code></code>
+        <a name="schematron_schema_valid"></a><span class="summary-name">schematron_schema_valid</span> = <code title="&lt;lxml.etree.RelaxNG object&gt;">&lt;lxml.etree.RelaxNG object&gt;</code>
     </td>
   </tr>
 <tr class="private">
@@ -372,122 +366,8 @@ Else convert arg to string.</p>
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/isoschematron/resour</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">ces</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="extract_xsd"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">extract_xsd</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'XSD2Scht<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-rn.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="extract_rng"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">extract_rng</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'RNG2Scht<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-rn.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="iso_dsdl_include"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">iso_dsdl_include</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-matron-xslt1', 'iso_dsdl_include.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="iso_abstract_expand"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">iso_abstract_expand</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-matron-xslt1', 'iso_abstract_expand.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="iso_svrl_for_xslt1"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">iso_svrl_for_xslt1</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-matron-xslt1', 'iso_svrl_for_xslt1.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="schematron_schema_valid"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">schematron_schema_valid</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.RelaxNG(_etree.parse(os.path.join(_resources_dir, 'rng', 'iso-s<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-chematron.rng')))
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/isoschematron/r</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">esources</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -525,7 +405,8 @@ chematron.rng')))
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 522cfe6..61b9be5 100644 (file)
@@ -627,7 +627,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e69c38c..699fe9a 100644 (file)
@@ -318,40 +318,35 @@ Must return a schematron schema document tree or None.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron.Schematron-class.html#_extract_xsd" class="summary-name" onclick="show_private();">_extract_xsd</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'XSD2Scht\
-rn.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resource<code class="variable-ellipsis">...</code></code>
+        <a name="_extract_xsd"></a><span class="summary-name">_extract_xsd</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron.Schematron-class.html#_extract_rng" class="summary-name" onclick="show_private();">_extract_rng</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'RNG2Scht\
-rn.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resource<code class="variable-ellipsis">...</code></code>
+        <a name="_extract_rng"></a><span class="summary-name">_extract_rng</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron.Schematron-class.html#_include" class="summary-name" onclick="show_private();">_include</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche\
-matron-xslt1', 'iso_dsdl_include.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resources_di<code class="variable-ellipsis">...</code></code>
+        <a name="_include"></a><span class="summary-name">_include</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron.Schematron-class.html#_expand" class="summary-name" onclick="show_private();">_expand</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche\
-matron-xslt1', 'iso_abstract_expand.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resources_dir<code class="variable-ellipsis">...</code></code>
+        <a name="_expand"></a><span class="summary-name">_expand</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.isoschematron.Schematron-class.html#_compile" class="summary-name" onclick="show_private();">_compile</a> = <code title="_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche\
-matron-xslt1', 'iso_svrl_for_xslt1.xsl')))">_etree.XSLT(_etree.parse(os.path.join(_resources_di<code class="variable-ellipsis">...</code></code>
+        <a name="_compile"></a><span class="summary-name">_compile</span> = <code title="&lt;lxml.etree.XSLT object&gt;">&lt;lxml.etree.XSLT object&gt;</code>
     </td>
   </tr>
 <tr class="private">
@@ -530,101 +525,6 @@ been turned off).
   </dl>
 </td></tr></table>
 </div>
-<a name="_extract_xsd"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_extract_xsd</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'XSD2Scht<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-rn.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="_extract_rng"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_extract_rng</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'RNG2Scht<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-rn.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="_include"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_include</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-matron-xslt1', 'iso_dsdl_include.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="_expand"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_expand</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-matron-xslt1', 'iso_abstract_expand.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="_compile"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">_compile</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-_etree.XSLT(_etree.parse(os.path.join(_resources_dir, 'xsl', 'iso-sche<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-matron-xslt1', 'iso_svrl_for_xslt1.xsl')))
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
 <br />
 <!-- ==================== PROPERTY DETAILS ==================== -->
 <a name="section-PropertyDetails"></a>
@@ -727,7 +627,8 @@ been turned off).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d7dfbe4..8d5506b 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>
-        3.6.0
+        3.6.3
       </p>
 </div><!-- ==================== CLASSES ==================== -->
 <a name="section-Classes"></a>
@@ -629,7 +629,7 @@ attributes.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x2ab259f78ad0&gt;">&lt;lxml.objectify.ElementMaker object at 0x2ab259f78ad0&gt;</code>
+        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object&gt;">&lt;lxml.objectify.ElementMaker object&gt;</code>
     </td>
   </tr>
 <tr>
@@ -1136,7 +1136,8 @@ elements.  Pass 'string', for example, to make string values the default.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 15aa528..1d4a94e 100644 (file)
@@ -802,7 +802,8 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3cb7940..ae716ec 100644 (file)
@@ -365,7 +365,8 @@ some text
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 22a4ba3..df2253f 100644 (file)
@@ -391,7 +391,8 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f94ddf0..01570ed 100644 (file)
@@ -397,7 +397,8 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 19a433d..0f1aac2 100644 (file)
@@ -391,7 +391,8 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d326408..9476e13 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7fd53c6..41fa492 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 74019de..ba51ad4 100644 (file)
@@ -452,7 +452,8 @@ as second argument) or raises AttributeError.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 09cd1d5..e189d52 100644 (file)
@@ -409,7 +409,8 @@ doing.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bce5d56..2ee051f 100644 (file)
@@ -860,7 +860,8 @@ returned in document order.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cc57eeb..f31dbca 100644 (file)
@@ -276,7 +276,8 @@ empty data elements (defauls to StringElement).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 297de80..0f35988 100644 (file)
@@ -71,11 +71,14 @@ object --+
 <hr />
 <p>PyType(self, name, type_check, type_class, stringify=None)
 User defined type.</p>
-<p>Named type that contains a type check function and a type class that
-inherits from ObjectifiedDataElement.  The type check must take a string
-as argument and raise ValueError or TypeError if it cannot handle the
-string value.  It may be None in which case it is not considered for type
-guessing.</p>
+<p>Named type that contains a type check function, a type class that
+inherits from ObjectifiedDataElement and an optional &quot;stringification&quot;
+function.  The type check must take a string as argument and raise
+ValueError or TypeError if it cannot handle the string value.  It may be
+None in which case it is not considered for type guessing.  For registered
+named types, the 'stringify' function (or unicode() if None) is used to
+convert a Python object with type name 'name' to the string representation
+stored in the XML tree.</p>
 <p>Example:</p>
 <pre class="rst-literal-block">
 PyType('int', int, MyIntClass).register()
@@ -443,7 +446,8 @@ ignored.  Raises ValueError if the dependencies cannot be fulfilled.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 92d72b2..49f8da8 100644 (file)
@@ -732,7 +732,8 @@ Instead, use the .text attribute to get a 'real' string.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 10900fc..1647dc0 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f8997bb..5af51d5 100644 (file)
@@ -107,7 +107,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dcc60d6..75dc6e5 100644 (file)
@@ -219,7 +219,8 @@ them against a SAX ContentHandler.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 55bf75c..89dc0e0 100644 (file)
@@ -574,7 +574,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 95fdb49..2db71ba 100644 (file)
@@ -871,7 +871,8 @@ Locator provides useful information.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5ff632e..1488ca9 100644 (file)
@@ -281,7 +281,8 @@ Produces SAX events for an element and children.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03a8072..e5a8ec5 100644 (file)
@@ -211,7 +211,8 @@ General SAX error.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 40665f2..519d449 100644 (file)
@@ -173,7 +173,8 @@ namespace registry mechanism</em>    </li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 59cdf72..e3f92ff 100644 (file)
@@ -102,7 +102,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0a37ed2..1fc2b69 100644 (file)
@@ -487,7 +487,7 @@ occurrences of pattern in string by the replacement repl.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="doctest_parser"></a><span class="summary-name">doctest_parser</span> = <code title="doctest.DocTestParser()">doctest.DocTestParser()</code>
+        <a name="doctest_parser"></a><span class="summary-name">doctest_parser</span> = <code title="&lt;doctest.DocTestParser object&gt;">&lt;doctest.DocTestParser object&gt;</code>
     </td>
   </tr>
 <tr>
@@ -529,7 +529,8 @@ occurrences of pattern in string by the replacement repl.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 53e6155..85b1c9c 100644 (file)
@@ -631,7 +631,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:14 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9796eb4..0adf394 100644 (file)
@@ -74,7 +74,7 @@ unittest.case.TestCase --+
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">test_xslt.ETreeEXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">test_xslt.ETreeXSLTExtElementTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">test_xslt.ETreeXSLTExtFuncTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">test_xslt.ETreeXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">test_xslt.Py3XSLTTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">test_etree.ETreeC14NTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">test_etree.ETreeErrorLogTest</a></li><li>, <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">test_etree.ETreeOnlyTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">test_etree.ETreeWriteTestCase</a></li><li class="private">, <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">test_etree._XIncludeTestCase</a></li><li>, <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">test_dtd.ETreeDtdTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">test_classlookup.ClassLookupTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">test_classlookup.ProxyTestCase</a></li><li>, <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">test_objectify.ObjectifyTestCase</a></li><li class="private">, <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">test_incremental_xmlfile._XmlFileTestCaseBase</a></li><li>, <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">test_sax.ETreeSaxTestCase</a></li><li>, <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">test_pyclasslookup.PyClassLookupTestCase</a></li><li class="private">, <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">test_elementtree._ETreeTestCaseBase</a></li><li>, <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">test_isoschematron.ETreeISOSchematronTestCase</a></li><li>, <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">test_unicode.EncodingsTestCase</a></li><li>, <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">test_unicode.UnicodeTestCase</a></li><li>, <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">test_elementpath.EtreeElementPathTestCase</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">test_nsclasses.ETreeNamespaceClassesTestCase</a></li><li>, <a href="lxml.tests.test_builder.BuilderTestCase-class.html">test_builder.BuilderTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">test_xpathevaluator.ETreeETXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">test_xpathevaluator.ETreeXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">test_xpathevaluator.ETreeXPathExsltTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">test_xpathevaluator.ETreeXPathTestCase</a></li><li>, <a href="lxml.tests.test_errors.ErrorTestCase-class.html">test_errors.ErrorTestCase</a></li><li>, <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">test_doctestcompare.DoctestCompareTest</a></li><li>, <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">test_http_io.HttpIOTestCase</a></li><li class="private">, <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">test_io._IOTestCaseBase</a></li><li>, <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">test_schematron.ETreeSchematronTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">test_xmlschema.ETreeXMLSchemaResolversTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">test_xmlschema.ETreeXMLSchemaTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">test_threading.ThreadPipelineTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">test_threading.ThreadingTestCase</a></li><li>, <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">test_htmlparser.HtmlParserTestCase</a></li><li>, <a href="lxml.tests.test_css.CSSTestCase-class.html">test_css.CSSTestCase</a></li><li>, <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">test_relaxng.ETreeRelaxNGTestCase</a></li><li>, <a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">test_relaxng.RelaxNGCompactTestCase</a></li>  </ul>
+<li><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">test_xslt.ETreeEXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">test_xslt.ETreeXSLTExtElementTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">test_xslt.ETreeXSLTExtFuncTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">test_xslt.ETreeXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">test_xslt.Py3XSLTTestCase</a></li><li>, <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">test_dtd.ETreeDtdTestCase</a></li><li>, <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">test_isoschematron.ETreeISOSchematronTestCase</a></li><li>, <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">test_http_io.HttpIOTestCase</a></li><li>, <a href="lxml.tests.test_errors.ErrorTestCase-class.html">test_errors.ErrorTestCase</a></li><li>, <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">test_pyclasslookup.PyClassLookupTestCase</a></li><li class="private">, <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">test_incremental_xmlfile._XmlFileTestCaseBase</a></li><li>, <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">test_objectify.ObjectifyTestCase</a></li><li>, <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">test_schematron.ETreeSchematronTestCase</a></li><li class="private">, <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">test_io._IOTestCaseBase</a></li><li class="private">, <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">test_elementtree._ETreeTestCaseBase</a></li><li>, <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">test_relaxng.ETreeRelaxNGTestCase</a></li><li>, <a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">test_relaxng.RelaxNGCompactTestCase</a></li><li>, <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">test_doctestcompare.DoctestCompareTest</a></li><li>, <a href="lxml.tests.test_builder.BuilderTestCase-class.html">test_builder.BuilderTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">test_etree.ETreeC14NTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">test_etree.ETreeErrorLogTest</a></li><li>, <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">test_etree.ETreeOnlyTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">test_etree.ETreeWriteTestCase</a></li><li class="private">, <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">test_etree._XIncludeTestCase</a></li><li>, <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">test_unicode.EncodingsTestCase</a></li><li>, <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">test_unicode.UnicodeTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">test_xpathevaluator.ETreeETXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">test_xpathevaluator.ETreeXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">test_xpathevaluator.ETreeXPathExsltTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">test_xpathevaluator.ETreeXPathTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">test_classlookup.ClassLookupTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">test_classlookup.ProxyTestCase</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">test_nsclasses.ETreeNamespaceClassesTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">test_xmlschema.ETreeXMLSchemaResolversTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">test_xmlschema.ETreeXMLSchemaTestCase</a></li><li>, <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">test_htmlparser.HtmlParserTestCase</a></li><li>, <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">test_sax.ETreeSaxTestCase</a></li><li>, <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">test_elementpath.EtreeElementPathTestCase</a></li><li>, <a href="lxml.tests.test_css.CSSTestCase-class.html">test_css.CSSTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">test_threading.ThreadPipelineTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">test_threading.ThreadingTestCase</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -420,7 +420,8 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4b7b98a..b8fce6b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0db0bef..955bcea 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 97c67de..85e79e9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 292c7ed..43cf086 100644 (file)
@@ -263,7 +263,8 @@ Simple HTTP request dumper for tests in Python 2.5+.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fa7e2b8..5a2f252 100644 (file)
@@ -196,7 +196,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1496966..62e879f 100644 (file)
@@ -246,7 +246,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5cc6a65..f17994f 100644 (file)
@@ -203,7 +203,8 @@ A web server that starts a new thread for each request.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f026011..27cc2fe 100644 (file)
@@ -330,7 +330,8 @@ message.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ee2541..a2d558f 100644 (file)
@@ -1177,7 +1177,8 @@ ElementTree.XML(&quot;&quot;&quot;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 22b0d2b..bde78ba 100644 (file)
@@ -1512,7 +1512,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cd916e5..0ba1e83 100644 (file)
@@ -676,7 +676,8 @@ unserialize(&quot;&quot;&quot;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4ab4fa1..87973c0 100644 (file)
@@ -635,7 +635,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 97df930..0b05a80 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_builder-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_builder-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 57709f6..1ef0a0b 100644 (file)
@@ -254,7 +254,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1fd259d..885c801 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bd5963f..a0a4c54 100644 (file)
@@ -153,7 +153,7 @@ Tests for different Element class lookup mechanisms.
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_classlookup-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_classlookup-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -207,7 +207,7 @@ Tests for different Element class lookup mechanisms.
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -269,7 +269,8 @@ Tests for different Element class lookup mechanisms.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0623cf9..f0b27bd 100644 (file)
@@ -1263,7 +1263,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5750405..7bee578 100644 (file)
@@ -602,7 +602,8 @@ Test cases for different Element class lookup mechanisms.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d8d663..1ccc5b1 100644 (file)
@@ -496,7 +496,8 @@ Basic tests for element proxy behaviour.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 396b1fd..5d445be 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c3b6e54..dbf4e0c 100644 (file)
@@ -211,7 +211,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ba062a9..f7d9e6e 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06778b9..78ccb7c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 258e01d..a982cbf 100644 (file)
@@ -333,7 +333,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2b33340..d4e1d9c 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_checker"></a><span class="summary-name">_checker</span> = <code title="LXMLOutputChecker()">LXMLOutputChecker()</code>
+        <a name="_checker"></a><span class="summary-name">_checker</span> = <code title="&lt;lxml.doctestcompare.LXMLOutputChecker object&gt;">&lt;lxml.doctestcompare.LXMLOutputChecker object&gt;</code>
     </td>
   </tr>
   <tr>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f7f58d..a263c38 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d337c17..8f72da3 100644 (file)
@@ -144,7 +144,7 @@ Test cases related to DTD parsing and validation
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_dtd-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_dtd-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -185,7 +185,7 @@ Test cases related to DTD parsing and validation
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -223,7 +223,8 @@ Test cases related to DTD parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8a86dd3..18e696d 100644 (file)
@@ -1231,7 +1231,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e86085d..e6063e5 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 27bfdfa..189f349 100644 (file)
@@ -179,7 +179,8 @@ Tests for the ElementPath implementation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4df06ad..24e5c1f 100644 (file)
@@ -178,7 +178,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f885122..44bdf97 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a13dded..4df5b2e 100644 (file)
@@ -198,7 +198,7 @@ for IO related test cases.</p>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_elementtree-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_elementtree-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -255,7 +255,7 @@ for IO related test cases.</p>
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -293,7 +293,8 @@ for IO related test cases.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index da9a36d..cf8150d 100644 (file)
@@ -11737,7 +11737,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e75cf70..a652c3f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a3d4153..abf4082 100644 (file)
@@ -372,7 +372,8 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 05e7978..1313fc6 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2444d33..1c389b5 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f0e2d73..c48cf0a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f5d06e0..a754bb5 100644 (file)
@@ -494,7 +494,8 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 71acbe2..832aa97 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_errors-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_errors-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd9206d..ac04091 100644 (file)
@@ -272,7 +272,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0000f96..c09beb2 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bd284ac..83ebcec 100644 (file)
@@ -231,7 +231,8 @@ test_elementtree</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7bcfe81..cc6db39 100644 (file)
@@ -12380,7 +12380,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:11 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e2a3354..98b2789 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:09 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e88b304..773a27a 100644 (file)
@@ -400,7 +400,8 @@ reset the logging setup ...</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4310318..d80343b 100644 (file)
@@ -4486,7 +4486,8 @@ Tests only for etree, not ElementTree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 972255d..4d15f34 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac57619..b8ffde1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7bcb192..9f11053 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 95f7486..5d2b35c 100644 (file)
@@ -438,7 +438,8 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2488b9a..3633f8b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d4450ca..fe4089c 100644 (file)
@@ -153,7 +153,7 @@ HTML parser test cases for etree
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_htmlparser-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_htmlparser-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -194,7 +194,7 @@ HTML parser test cases for etree
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -232,7 +232,8 @@ HTML parser test cases for etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b345cfc..de25be9 100644 (file)
@@ -1838,7 +1838,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 703da7e..8dc9785 100644 (file)
@@ -1194,7 +1194,8 @@ h1&gt;&lt;/body&gt;&lt;/html&gt;'"><code class="variable-quote">u'</code><code c
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 50b204a..713ecbc 100644 (file)
@@ -144,7 +144,7 @@ Web IO test cases that need Python 2.5+ (wsgiref)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_http_io-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_http_io-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -185,7 +185,7 @@ Web IO test cases that need Python 2.5+ (wsgiref)
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -223,7 +223,8 @@ Web IO test cases that need Python 2.5+ (wsgiref)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c587c5..4b9d942 100644 (file)
@@ -459,7 +459,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 29f7236..610babd 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d94452..b102ccd 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_incremental_xmlfile-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_incremental_xmlfile-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9c71137..ce8f5dd 100644 (file)
@@ -934,7 +934,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:11 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e901e0f..bf911fd 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dfb8936..32c1fb2 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d31a9e..58e0700 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b0b5956..810c2ab 100644 (file)
@@ -241,7 +241,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cd970c3..22bb6bb 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41667c8..f6ffc66 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 58017b0..a5d018c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 414a9a0..e94f9b2 100644 (file)
@@ -159,7 +159,7 @@ IO test cases that apply to both etree and ElementTree
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_io-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_io-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -200,7 +200,7 @@ IO test cases that apply to both etree and ElementTree
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -238,7 +238,8 @@ IO test cases that apply to both etree and ElementTree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d64f0b6..214e669 100644 (file)
@@ -1157,7 +1157,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8f19ce5..b59661d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 99967f2..e3e7390 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e053592..72312e4 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1557252..39a1e0e 100644 (file)
@@ -144,7 +144,7 @@ Test cases related to ISO-Schematron parsing and validation
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_isoschematron-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_isoschematron-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -185,7 +185,7 @@ Test cases related to ISO-Schematron parsing and validation
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -223,7 +223,8 @@ Test cases related to ISO-Schematron parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d9000a..48d1f5b 100644 (file)
@@ -1654,7 +1654,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 097d154..da2613b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aaaec8a..b231213 100644 (file)
@@ -145,7 +145,7 @@ namespace registry mechanism
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_nsclasses-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_nsclasses-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -186,7 +186,7 @@ namespace registry mechanism
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -224,7 +224,8 @@ namespace registry mechanism
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9f43873..abac887 100644 (file)
@@ -608,7 +608,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6c5286e..f4c24cb 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 13147ab..99ec952 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index df70601..03c2f9f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b7606c8..414897a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e50e954..a0449f8 100644 (file)
@@ -145,7 +145,7 @@ 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#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_objectify-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -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>
@@ -275,7 +275,7 @@ 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 name="v"></a><span class="summary-name">v</span> = <code title="'NMTOKEN'"><code class="variable-quote">'</code><code class="variable-string">NMTOKEN</code><code class="variable-quote">'</code></code>
+        <a name="v"></a><span class="summary-name">v</span> = <code title="'positiveInteger'"><code class="variable-quote">'</code><code class="variable-string">positiveInteger</code><code class="variable-quote">'</code></code>
     </td>
   </tr>
 </table>
@@ -309,7 +309,7 @@ Tests specific to the lxml.objectify API
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -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>
@@ -541,7 +541,8 @@ Tests specific to the lxml.objectify API
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 93c0407..9c178d9 100644 (file)
@@ -2531,793 +2531,824 @@ lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
 lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1193', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-number">5.5</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_data_element_xsitypes"></a><div id="ObjectifyTestCase.test_data_element_xsitypes-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_xsitypes-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_xsitypes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_data_element_xsitypes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_xsitypes-expanded"><a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1194" class="py-name"><a title="lxml.tests.test_objectify.xsitype2objclass" class="py-name" href="#" onclick="return doclink('link-1194', 'xsitype2objclass', 'link-42');">xsitype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="ObjectifyTestCase.test_type_float_precision"></a><div id="ObjectifyTestCase.test_type_float_precision-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_float_precision-toggle" onclick="return toggle('ObjectifyTestCase.test_type_float_precision');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision">test_type_float_precision</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_float_precision-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_float_precision-expanded"><a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-comment"># test not losing precision by shortened float str() value</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">        <tt class="py-comment"># repr(2.305064300557): '2.305064300557'</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">        <tt class="py-comment"># str(2.305064300557): '2.30506430056'</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">        <tt class="py-comment"># "%57.54f" % 2.305064300557:</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">        <tt class="py-comment">#     ' 2.305064300556999956626214043353684246540069580078125000'</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">        <tt id="link-1194" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1194', 'Element', 'link-79');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1195', 'Element', 'link-79');">Element</a></tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt id="link-1196" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1196', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1197" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1197', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}root"</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">s</tt> <tt class="py-op">=</tt> <tt class="py-string">"2.305064300557"</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">        <tt id="link-1198" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1198', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-1199" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1199', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1200" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1200', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1201" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1201', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1202" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1202', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-1203" 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-1203', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">s</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1204" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1204', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-1205" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.NoneElement.pyval
+lxml.objectify.NumberElement.pyval
+lxml.objectify.ObjectifiedDataElement.pyval
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1205', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_type_float_instantiation_precision"></a><div id="ObjectifyTestCase.test_type_float_instantiation_precision-def"><a name="L1033"></a><tt class="py-lineno">1033</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_float_instantiation_precision-toggle" onclick="return toggle('ObjectifyTestCase.test_type_float_instantiation_precision');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_instantiation_precision">test_type_float_instantiation_precision</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_float_instantiation_precision-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_float_instantiation_precision-expanded"><a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">        <tt class="py-comment"># test precision preservation for FloatElement instantiation</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">"2.305064300557"</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1206" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1206', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1207" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1207', 'FloatElement', 'link-37');">FloatElement</a></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-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">   </tt>
+<a name="ObjectifyTestCase.test_type_float_precision_consistency"></a><div id="ObjectifyTestCase.test_type_float_precision_consistency-def"><a name="L1038"></a><tt class="py-lineno">1038</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_float_precision_consistency-toggle" onclick="return toggle('ObjectifyTestCase.test_type_float_precision_consistency');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision_consistency">test_type_float_precision_consistency</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_float_precision_consistency-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_float_precision_consistency-expanded"><a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">        <tt class="py-comment"># test consistent FloatElement values for the different instantiation</tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">        <tt class="py-comment"># possibilities</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">        <tt id="link-1208" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1208', 'Element', 'link-79');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1209" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1209', 'Element', 'link-79');">Element</a></tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">        <tt id="link-1210" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1210', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1211" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1211', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}root"</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">s</tt> <tt class="py-op">=</tt> <tt class="py-string">"2.305064300557"</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">        <tt class="py-name">float_elem</tt> <tt class="py-op">=</tt> <tt id="link-1212" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1212', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1213" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1213', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">(</tt><tt class="py-name">s</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">float_data_elem</tt> <tt class="py-op">=</tt> <tt id="link-1214" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1214', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1215', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">        <tt id="link-1216" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1216', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">float_child</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">f</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">f</tt> <tt class="py-op">==</tt> <tt class="py-name">float_elem</tt> <tt class="py-op">==</tt> <tt class="py-name">float_data_elem</tt> <tt class="py-op">==</tt> <tt id="link-1217" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1217', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">float_child</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="ObjectifyTestCase.test_data_element_float_precision"></a><div id="ObjectifyTestCase.test_data_element_float_precision-def"><a name="L1050"></a><tt class="py-lineno">1050</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_float_precision-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_float_precision');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_precision">test_data_element_float_precision</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_float_precision-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_float_precision-expanded"><a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">        <tt class="py-comment"># test not losing precision by shortened float str() value</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-number">2305064300557.0</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt id="link-1218" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.InputElement.value
+lxml.html.RadioGroup.value
+lxml.html.SelectElement.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1218', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1219" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1219', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1220" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1220', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">f</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">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-1221" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.InputElement.value
+lxml.html.RadioGroup.value
+lxml.html.SelectElement.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1221', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt id="link-1222" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1222', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1223" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1223', 'FloatElement', 'link-37');">FloatElement</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1224" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.InputElement.value
+lxml.html.RadioGroup.value
+lxml.html.SelectElement.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1224', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_data_element_float_hash_repr"></a><div id="ObjectifyTestCase.test_data_element_float_hash_repr-def"><a name="L1057"></a><tt class="py-lineno">1057</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_float_hash_repr-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_float_hash_repr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash_repr">test_data_element_float_hash_repr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_float_hash_repr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_float_hash_repr-expanded"><a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">        <tt class="py-comment"># test not losing precision by shortened float str() value</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-number">2305064300557.0</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">        <tt id="link-1225" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.InputElement.value
+lxml.html.RadioGroup.value
+lxml.html.SelectElement.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1225', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1226" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1226', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1227" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1227', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">f</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">hash</tt><tt class="py-op">(</tt><tt id="link-1228" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.InputElement.value
+lxml.html.RadioGroup.value
+lxml.html.SelectElement.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1228', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hash</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="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_data_element_xsitypes"></a><div id="ObjectifyTestCase.test_data_element_xsitypes-def"><a name="L1063"></a><tt class="py-lineno">1063</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_xsitypes-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_xsitypes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_xsitypes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_xsitypes-expanded"><a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1229" class="py-name"><a title="lxml.tests.test_objectify.xsitype2objclass" class="py-name" href="#" onclick="return doclink('link-1229', 'xsitype2objclass', 'link-42');">xsitype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1230" 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-1195', 'items', 'link-137');">items</a></tt><tt class="py-op">(</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-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">            <tt id="link-1196" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1230', 'items', 'link-137');">items</a></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-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">            <tt id="link-1231" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1196', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">            <tt id="link-1197" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1231', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">            <tt id="link-1232" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1197', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1198" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1198', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1199" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1199', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1200" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1232', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1233" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1233', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1234" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1234', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1235" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1200', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-name">xsi</tt><tt class="py-op">)</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</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-1201" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1235', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-name">xsi</tt><tt class="py-op">)</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</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-1236" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1201', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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 class="py-string">"DataElement(%s, _xsi='%s') returns %s, expected %s"</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1202" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1236', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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-string">"DataElement(%s, _xsi='%s') returns %s, expected %s"</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1237" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1202', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt id="link-1203" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1203', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1204" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1237', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt id="link-1238" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1238', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1239" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1204', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">         </tt>
-<a name="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed"></a><div id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-def"><a name="L1028"></a><tt class="py-lineno">1028</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-expanded"><a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1205" class="py-name"><a title="lxml.tests.test_objectify.xsitype2objclass" class="py-name" href="#" onclick="return doclink('link-1205', 'xsitype2objclass', 'link-42');">xsitype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1206" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1239', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">         </tt>
+<a name="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed"></a><div id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-def"><a name="L1072"></a><tt class="py-lineno">1072</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed-expanded"><a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1240" class="py-name"><a title="lxml.tests.test_objectify.xsitype2objclass" class="py-name" href="#" onclick="return doclink('link-1240', 'xsitype2objclass', 'link-42');">xsitype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1241" 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-1206', 'items', 'link-137');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">            <tt class="py-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">            <tt id="link-1207" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1241', 'items', 'link-137');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">            <tt class="py-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">            <tt id="link-1242" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1207', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">            <tt id="link-1208" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1242', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">            <tt id="link-1243" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1208', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1209" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1209', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1210" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1210', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1211" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1243', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1244" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1244', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1245" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1245', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1246" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1211', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"xsd:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">xsi</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">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-1212" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1246', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"xsd:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">xsi</tt><tt class="py-op">)</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</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-1247" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1212', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</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">"DataElement(%s, _xsi='%s') returns %s, expected %s"</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1213" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1247', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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-string">"DataElement(%s, _xsi='%s') returns %s, expected %s"</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1248" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1213', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt id="link-1214" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1214', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1215" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1248', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt id="link-1249" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1249', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1250" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1215', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</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="ObjectifyTestCase.test_data_element_xsitypes_prefixed"></a><div id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-def"><a name="L1037"></a><tt class="py-lineno">1037</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_xsitypes_prefixed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-expanded"><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1216" class="py-name"><a title="lxml.tests.test_objectify.xsitype2objclass" class="py-name" href="#" onclick="return doclink('link-1216', 'xsitype2objclass', 'link-42');">xsitype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1217" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1250', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">         </tt>
+<a name="ObjectifyTestCase.test_data_element_xsitypes_prefixed"></a><div id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-def"><a name="L1081"></a><tt class="py-lineno">1081</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_xsitypes_prefixed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_xsitypes_prefixed-expanded"><a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">xsi</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1251" class="py-name"><a title="lxml.tests.test_objectify.xsitype2objclass" class="py-name" href="#" onclick="return doclink('link-1251', 'xsitype2objclass', 'link-42');">xsitype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1252" 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-1217', 'items', 'link-137');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">            <tt class="py-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-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-1218" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1218', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1219" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1219', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">                              <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"foo:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">xsi</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_data_element_pytypes"></a><div id="ObjectifyTestCase.test_data_element_pytypes-def"><a name="L1043"></a><tt class="py-lineno">1043</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_pytypes-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_pytypes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_data_element_pytypes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_pytypes-expanded"><a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1220" class="py-name"><a title="lxml.tests.test_objectify.pytype2objclass" class="py-name" href="#" onclick="return doclink('link-1220', 'pytype2objclass', 'link-56');">pytype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1252', 'items', 'link-137');">items</a></tt><tt class="py-op">(</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-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-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-1253" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1253', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1254" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1254', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</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">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"foo:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">xsi</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_data_element_pytypes"></a><div id="ObjectifyTestCase.test_data_element_pytypes-def"><a name="L1087"></a><tt class="py-lineno">1087</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_pytypes-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_pytypes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_pytypes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_pytypes-expanded"><a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt> <tt class="py-keyword">in</tt> <tt id="link-1255" class="py-name"><a title="lxml.tests.test_objectify.pytype2objclass" class="py-name" href="#" onclick="return doclink('link-1255', 'pytype2objclass', 'link-56');">pytype2objclass</a></tt><tt class="py-op">.</tt><tt id="link-1256" 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-1221', 'items', 'link-137');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">            <tt class="py-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">            <tt id="link-1222" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1256', 'items', 'link-137');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">            <tt class="py-comment"># 1 is a valid value for all ObjectifiedDataElement classes</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">            <tt id="link-1257" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1222', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">            <tt id="link-1223" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1257', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">            <tt id="link-1258" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1223', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1224" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1224', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1225" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1225', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1226" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1258', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1259" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1259', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1260" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1260', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1261" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1226', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_pytype</tt><tt class="py-op">=</tt><tt class="py-name">pytype</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">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-1227" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1261', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_pytype</tt><tt class="py-op">=</tt><tt class="py-name">pytype</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">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-1262" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1227', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">                         <tt class="py-string">"DataElement(%s, _pytype='%s') returns %s, expected %s"</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1228" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1262', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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 class="py-string">"DataElement(%s, _pytype='%s') returns %s, expected %s"</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">                         <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1263" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1228', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1229" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1229', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1230" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1263', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1264" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1264', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1265" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1230', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_data_element_pytype_none"></a><div id="ObjectifyTestCase.test_data_element_pytype_none-def"><a name="L1052"></a><tt class="py-lineno">1052</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_pytype_none-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_pytype_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_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="ObjectifyTestCase.test_data_element_pytype_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_pytype_none-expanded"><a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt id="link-1231" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1265', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_data_element_pytype_none"></a><div id="ObjectifyTestCase.test_data_element_pytype_none-def"><a name="L1096"></a><tt class="py-lineno">1096</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_pytype_none-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_pytype_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_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="ObjectifyTestCase.test_data_element_pytype_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_pytype_none-expanded"><a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt id="link-1266" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1231', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt> <tt class="py-op">=</tt> <tt class="py-string">"NoneType"</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt class="py-name">objclass</tt> <tt class="py-op">=</tt> <tt id="link-1232" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1232', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1233" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1233', 'NoneElement', 'link-353');">NoneElement</a></tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">        <tt id="link-1234" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1266', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt> <tt class="py-op">=</tt> <tt class="py-string">"NoneType"</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-name">objclass</tt> <tt class="py-op">=</tt> <tt id="link-1267" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1267', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1268" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1268', 'NoneElement', 'link-353');">NoneElement</a></tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt id="link-1269" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1234', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1235" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1235', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1236" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1236', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1237" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1269', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1270" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1270', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1271" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1271', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1272" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1237', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_pytype</tt><tt class="py-op">=</tt><tt class="py-name">pytype</tt><tt class="py-op">)</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</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-1238" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1272', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_pytype</tt><tt class="py-op">=</tt><tt class="py-name">pytype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</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-1273" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1238', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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-string">"DataElement(%s, _pytype='%s') returns %s, expected %s"</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">                     <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1239" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1273', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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-string">"DataElement(%s, _pytype='%s') returns %s, expected %s"</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                     <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1274" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1239', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1240" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1240', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1241" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1274', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1275" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1275', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1276" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1241', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1242" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1276', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1277" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1242', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1243" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1277', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1278" 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-1243', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1244" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1278', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1279" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1244', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1245" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1279', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1280" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1245', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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="ObjectifyTestCase.test_data_element_pytype_none_compat"></a><div id="ObjectifyTestCase.test_data_element_pytype_none_compat-def"><a name="L1063"></a><tt class="py-lineno">1063</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_pytype_none_compat-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_pytype_none_compat');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_data_element_pytype_none_compat-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_pytype_none_compat-expanded"><a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt class="py-comment"># pre-2.0 lxml called NoneElement "none"</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt id="link-1246" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1280', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">             </tt>
+<a name="ObjectifyTestCase.test_data_element_pytype_none_compat"></a><div id="ObjectifyTestCase.test_data_element_pytype_none_compat-def"><a name="L1107"></a><tt class="py-lineno">1107</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_pytype_none_compat-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_pytype_none_compat');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_pytype_none_compat-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_pytype_none_compat-expanded"><a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt class="py-comment"># pre-2.0 lxml called NoneElement "none"</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt id="link-1281" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1246', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt> <tt class="py-op">=</tt> <tt class="py-string">"none"</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-name">objclass</tt> <tt class="py-op">=</tt> <tt id="link-1247" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1247', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1248" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1248', 'NoneElement', 'link-353');">NoneElement</a></tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">        <tt id="link-1249" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1281', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt> <tt class="py-op">=</tt> <tt class="py-string">"none"</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt class="py-name">objclass</tt> <tt class="py-op">=</tt> <tt id="link-1282" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1282', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1283" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1283', 'NoneElement', 'link-353');">NoneElement</a></tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">        <tt id="link-1284" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1249', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1250" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1250', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1251" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1251', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1252" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1284', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1285" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1285', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1286" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1286', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt id="link-1287" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1252', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_pytype</tt><tt class="py-op">=</tt><tt class="py-name">pytype</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">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-1253" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1287', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">_pytype</tt><tt class="py-op">=</tt><tt class="py-name">pytype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</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-1288" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1253', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">                     <tt class="py-string">"DataElement(%s, _pytype='%s') returns %s, expected %s"</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">                     <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1254" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1288', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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-string">"DataElement(%s, _pytype='%s') returns %s, expected %s"</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">                     <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-1289" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1254', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1255" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1255', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1256" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1289', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1290" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-1290', 'type', 'link-506');">type</a></tt><tt class="py-op">(</tt><tt id="link-1291" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1256', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1257" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1291', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">objclass</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1292" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1257', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1258" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1292', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1293" 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-1258', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1259" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1293', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </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 id="link-1294" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1259', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1260" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1294', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1295" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1260', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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="ObjectifyTestCase.test_type_unregistered"></a><div id="ObjectifyTestCase.test_type_unregistered-def"><a name="L1075"></a><tt class="py-lineno">1075</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_unregistered-toggle" onclick="return toggle('ObjectifyTestCase.test_type_unregistered');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_type_unregistered-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_unregistered-expanded"><a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">        <tt id="link-1261" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1295', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_type_unregistered"></a><div id="ObjectifyTestCase.test_type_unregistered-def"><a name="L1119"></a><tt class="py-lineno">1119</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_unregistered-toggle" onclick="return toggle('ObjectifyTestCase.test_type_unregistered');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_unregistered-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_unregistered-expanded"><a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt id="link-1296" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1261', 'Element', 'link-79');">Element</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.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1296', 'Element', 'link-79');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1297" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1262', 'Element', 'link-79');">Element</a></tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">        <tt id="link-1263" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1263', 'SubElement', 'link-545');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1264" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1297', 'Element', 'link-79');">Element</a></tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">        <tt id="link-1298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1298', 'SubElement', 'link-545');">SubElement</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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1264', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1265" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1265', 'SubElement', 'link-545');">SubElement</a></tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-base-class">float</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-keyword">pass</tt> </tt>
-</div><a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt id="link-1266" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1266', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1267" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1299', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1300', 'SubElement', 'link-545');">SubElement</a></tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-base-class">float</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1124"></a><tt class="py-lineno">1124</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1302" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1267', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">        <tt id="link-1268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1268', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">myfloat</tt> <tt class="py-op">=</tt> <tt class="py-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-number">5.5</tt><tt class="py-op">)</tt> </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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">myfloat</tt><tt class="py-op">,</tt> <tt id="link-1270" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1270', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1271" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1271', 'FloatElement', 'link-37');">FloatElement</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">myfloat</tt><tt class="py-op">.</tt><tt id="link-1273" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1302', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">        <tt id="link-1303" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1303', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">myfloat</tt> <tt class="py-op">=</tt> <tt class="py-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-number">5.5</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">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-1304" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1304', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">myfloat</tt><tt class="py-op">,</tt> <tt id="link-1305" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1305', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1306" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1306', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">myfloat</tt><tt class="py-op">.</tt><tt id="link-1308" 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-1273', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1274" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1274', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1275" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1275', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_data_element_unregistered"></a><div id="ObjectifyTestCase.test_data_element_unregistered-def"><a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_unregistered-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_unregistered');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_data_element_unregistered-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_unregistered-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-base-class">float</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">pass</tt> </tt>
-</div><a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt id="link-1276" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1308', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1309" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1309', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1310" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1310', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_data_element_unregistered"></a><div id="ObjectifyTestCase.test_data_element_unregistered-def"><a name="L1129"></a><tt class="py-lineno">1129</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_data_element_unregistered-toggle" onclick="return toggle('ObjectifyTestCase.test_data_element_unregistered');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_data_element_unregistered-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_data_element_unregistered-expanded"><a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-base-class">float</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">        <tt id="link-1311" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1276', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1277" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1277', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1278" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1278', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-number">5.5</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</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-1279" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1311', 'value', 'link-196');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1312" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1312', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1313" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1313', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">MyFloat</tt><tt class="py-op">(</tt><tt class="py-number">5.5</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">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-1314" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1279', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt id="link-1280" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1280', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1281" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1281', 'FloatElement', 'link-37');">FloatElement</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1282" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1314', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt id="link-1315" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1315', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1316" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1316', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1317" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1282', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-number">5.5</tt><tt class="py-op">)</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1283" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1317', 'value', 'link-196');">value</a></tt><tt class="py-op">,</tt> <tt class="py-number">5.5</tt><tt class="py-op">)</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1318" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1283', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1284" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1318', 'value', 'link-196');">value</a></tt><tt class="py-op">.</tt><tt id="link-1319" 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-1284', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1285" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1285', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1286" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1286', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_schema_types"></a><div id="ObjectifyTestCase.test_schema_types-def"><a name="L1093"></a><tt class="py-lineno">1093</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_schema_types-toggle" onclick="return toggle('ObjectifyTestCase.test_schema_types');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_schema_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_schema_types-expanded"><a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt id="link-1287" 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-1287', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-1288', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1290" 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-1290', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;true&lt;/b&gt;</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;false&lt;/b&gt;</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;1&lt;/b&gt;</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;0&lt;/b&gt;</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="float"&gt;5&lt;/f&gt;</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="double"&gt;5&lt;/f&gt;</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"><tt class="py-string">        </tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="normalizedString"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="token"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="language"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="Name"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="NCName"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="ID"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="IDREF"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="ENTITY"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="NMTOKEN"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="integer"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="nonPositiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="negativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="long"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="nonNegativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="unsignedLong"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="unsignedInt"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="positiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line"><tt class="py-string">          </tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="int"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="short"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="byte"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="unsignedShort"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="unsignedByte"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true"/&gt;</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<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 class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">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 class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-1292" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1292', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1293" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-1293', 'BoolElement', 'link-39');">BoolElement</a></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-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 id="link-1294" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1294', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">        <tt class="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 id="link-1295" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1295', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="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 id="link-1296" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1296', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</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 class="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 id="link-1297" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1297', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt id="link-1298" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1298', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</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">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 class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1299" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1299', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1300" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1300', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">            <tt 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">5</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">             </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt id="link-1301" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1301', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</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 class="py-name">s</tt><tt class="py-op">,</tt> <tt id="link-1302" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1302', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1303" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-1303', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">            <tt 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">"5"</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line"> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">i</tt><tt class="py-op">:</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</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 class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-1305" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1305', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1306" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1306', 'IntElement', 'link-35');">IntElement</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">i</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-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">l</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-1308" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1308', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1309" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1309', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">            <tt 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">5</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">             </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</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-1310" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1310', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt id="link-1311" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1311', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1312" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1312', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt class="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 id="link-1313" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1313', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_schema_types_prefixed"></a><div id="ObjectifyTestCase.test_schema_types_prefixed-def"><a name="L1161"></a><tt class="py-lineno">1161</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_schema_types_prefixed-toggle" onclick="return toggle('ObjectifyTestCase.test_schema_types_prefixed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_schema_types_prefixed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_schema_types_prefixed-expanded"><a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">        <tt id="link-1314" 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-1314', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1315" 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-1315', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">        <tt id="link-1316" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1316', 'root', 'link-144');">root</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-1317', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;true&lt;/b&gt;</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;false&lt;/b&gt;</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;1&lt;/b&gt;</tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;0&lt;/b&gt;</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="xsd:float"&gt;5&lt;/f&gt;</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="xsd:double"&gt;5&lt;/f&gt;</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-string">        </tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:normalizedString"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:token"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:language"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:Name"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:NCName"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:ID"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:IDREF"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:ENTITY"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:NMTOKEN"&gt;5&lt;/s&gt;</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:integer"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:nonPositiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:negativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:long"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:nonNegativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:unsignedLong"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:unsignedInt"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:positiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-string">          </tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:int"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:short"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:byte"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:unsignedShort"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:unsignedByte"&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true"/&gt;</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</tt> <tt id="link-1318" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1318', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">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 class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-1319" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1319', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1320" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-1320', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="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 id="link-1321" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1321', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt class="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 id="link-1322" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1322', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="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 id="link-1323" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1323', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="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 id="link-1324" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1324', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</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 class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1326" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1326', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1327" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1327', 'FloatElement', 'link-37');">FloatElement</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">             </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</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 class="py-name">s</tt><tt class="py-op">,</tt> <tt id="link-1329" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1329', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1330" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-1330', 'StringElement', 'link-41');">StringElement</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"5"</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">i</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">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 class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-1332" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1332', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1333" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1333', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">            <tt 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">5</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line"> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</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 class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-1335" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1335', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1336" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1336', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">            <tt 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">5</tt><tt class="py-op">,</tt> <tt class="py-name">l</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">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-1337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1337', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt id="link-1338" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1338', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1339" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1339', 'NoneElement', 'link-353');">NoneElement</a></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">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 id="link-1340" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1340', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">         </tt>
-<a name="ObjectifyTestCase.test_type_str_sequence"></a><div id="ObjectifyTestCase.test_type_str_sequence-def"><a name="L1230"></a><tt class="py-lineno">1230</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_str_sequence-toggle" onclick="return toggle('ObjectifyTestCase.test_type_str_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_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="ObjectifyTestCase.test_type_str_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_str_sequence-expanded"><a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">        <tt id="link-1341" 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-1341', 'XML', 'link-63');">XML</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.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1342', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">        <tt id="link-1343" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1343', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1344" 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-1344', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1345" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1345', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;why&lt;/b&gt;&lt;b&gt;try&lt;/b&gt;&lt;/root&gt;'</tt><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">strs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt id="link-1346" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1346', 'str', 'link-461');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">        <tt 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">"why"</tt><tt class="py-op">,</tt> <tt class="py-string">"try"</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-name">strs</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_type_str_cmp"></a><div id="ObjectifyTestCase.test_type_str_cmp-def"><a name="L1237"></a><tt class="py-lineno">1237</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_str_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_str_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_type_str_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_str_cmp-expanded"><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">        <tt id="link-1348" 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-1348', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1349" 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-1349', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">        <tt id="link-1350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1350', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1351" 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-1351', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1352" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1352', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;test&lt;/b&gt;&lt;b&gt;taste&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;b/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1353" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1353', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</tt>  <tt id="link-1355" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1355', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1356" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1356', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1357" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1357', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</tt> <tt id="link-1358" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1358', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1359" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1359', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1360" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1360', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1361" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1361', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</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-1362" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1362', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1363', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1246"></a><tt class="py-lineno">1246</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-1366" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1366', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1319', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1320" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1320', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1321" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1321', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_schema_types"></a><div id="ObjectifyTestCase.test_schema_types-def"><a name="L1137"></a><tt class="py-lineno">1137</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_schema_types-toggle" onclick="return toggle('ObjectifyTestCase.test_schema_types');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_schema_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_schema_types-expanded"><a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">        <tt id="link-1322" 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-1322', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1323" 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-1323', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt id="link-1324" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1324', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1325" 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-1325', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;true&lt;/b&gt;</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;false&lt;/b&gt;</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;1&lt;/b&gt;</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="boolean"&gt;0&lt;/b&gt;</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="float"&gt;5&lt;/f&gt;</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="double"&gt;5&lt;/f&gt;</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"><tt class="py-string">        </tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="normalizedString"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="token"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="language"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="Name"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="NCName"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="ID"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="IDREF"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="ENTITY"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="NMTOKEN"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="integer"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="nonPositiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="negativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="long"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="nonNegativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="unsignedLong"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="unsignedInt"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="positiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"><tt class="py-string">          </tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="int"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="short"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="byte"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="unsignedShort"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="unsignedByte"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true"/&gt;</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">:</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</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 class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-1327" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1327', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-1328', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt class="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 id="link-1329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1329', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt class="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 id="link-1330" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1330', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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 class="py-name">True</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="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 id="link-1332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1332', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</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">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 class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1334" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1334', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1335" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1335', 'FloatElement', 'link-37');">FloatElement</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">             </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</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 class="py-name">s</tt><tt class="py-op">,</tt> <tt id="link-1337" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1337', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1338" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-1338', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">            <tt 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">"5"</tt><tt class="py-op">,</tt> <tt class="py-name">s</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-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-1339" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1339', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">i</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">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 class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-1340" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1340', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1341" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1341', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</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 class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</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 class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-1343" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1343', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1344" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1344', 'IntElement', 'link-35');">IntElement</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">             </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</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-1345" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1345', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt id="link-1346" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1346', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1347" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1347', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt class="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 id="link-1348" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1348', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_schema_types_prefixed"></a><div id="ObjectifyTestCase.test_schema_types_prefixed-def"><a name="L1205"></a><tt class="py-lineno">1205</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_schema_types_prefixed-toggle" onclick="return toggle('ObjectifyTestCase.test_schema_types_prefixed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_schema_types_prefixed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_schema_types_prefixed-expanded"><a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt id="link-1349" 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-1349', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1350" 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-1350', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt id="link-1351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1351', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1352" 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-1352', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;true&lt;/b&gt;</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;false&lt;/b&gt;</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;1&lt;/b&gt;</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:boolean"&gt;0&lt;/b&gt;</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="xsd:float"&gt;5&lt;/f&gt;</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="xsd:double"&gt;5&lt;/f&gt;</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"><tt class="py-string">        </tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:normalizedString"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:token"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:language"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:Name"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:NCName"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:ID"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:IDREF"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:ENTITY"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:NMTOKEN"&gt;5&lt;/s&gt;</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:integer"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:nonPositiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:negativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:long"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:nonNegativeInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:unsignedLong"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:unsignedInt"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:positiveInteger"&gt;5&lt;/l&gt;</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"><tt class="py-string">          </tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:int"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:short"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:byte"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:unsignedShort"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"><tt class="py-string">          &lt;i xsi:type="xsd:unsignedByte"&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true"/&gt;</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
 <a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line"> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">"test"</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">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-1369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1369', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line"> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">        <tt 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 id="link-1370" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1370', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">""</tt><tt class="py-op">)</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">        <tt 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 id="link-1372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1372', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">""</tt><tt class="py-op">)</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">         </tt>
-<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">        <tt id="link-1376" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1376', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1377', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1379" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1379', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1380" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1380', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1381" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1381', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">""</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">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 id="link-1382" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1382', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_type_int_cmp"></a><div id="ObjectifyTestCase.test_type_int_cmp-def"><a name="L1264"></a><tt class="py-lineno">1264</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_int_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_int_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_type_int_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_int_cmp-expanded"><a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">        <tt id="link-1383" class="py-name"><a title="lxml.etree.XML
+<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">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 class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-1354" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1354', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1355" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-1355', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">        <tt class="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 id="link-1356" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1356', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">        <tt class="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 id="link-1357" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1357', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">        <tt class="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 id="link-1358" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1358', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</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-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 id="link-1359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1359', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line"> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt id="link-1360" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1360', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</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 class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1361" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1361', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1362" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-1362', 'FloatElement', 'link-37');">FloatElement</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">             </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt id="link-1363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1363', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</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 class="py-name">s</tt><tt class="py-op">,</tt> <tt id="link-1364" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1364', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1365" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-1365', 'StringElement', 'link-41');">StringElement</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"5"</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line"> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">i</tt><tt class="py-op">:</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</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 class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-1367" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1367', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1368" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1368', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">            <tt 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">5</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line"> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</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 class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-1370" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1370', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1371" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-1371', 'IntElement', 'link-35');">IntElement</a></tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">)</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">             </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</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-1372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1372', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt id="link-1373" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1373', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1374" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-1374', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">        <tt class="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 id="link-1375" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1375', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">         </tt>
+<a name="ObjectifyTestCase.test_type_str_sequence"></a><div id="ObjectifyTestCase.test_type_str_sequence-def"><a name="L1274"></a><tt class="py-lineno">1274</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_str_sequence-toggle" onclick="return toggle('ObjectifyTestCase.test_type_str_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_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="ObjectifyTestCase.test_type_str_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_str_sequence-expanded"><a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">        <tt id="link-1376" 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-1376', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1377" 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-1377', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1379" 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-1379', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1380" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1380', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;why&lt;/b&gt;&lt;b&gt;try&lt;/b&gt;&lt;/root&gt;'</tt><tt class="py-op">)</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">strs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt id="link-1381" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1381', 'str', 'link-461');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt id="link-1382" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1382', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">        <tt 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">"why"</tt><tt class="py-op">,</tt> <tt class="py-string">"try"</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">strs</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="ObjectifyTestCase.test_type_str_cmp"></a><div id="ObjectifyTestCase.test_type_str_cmp-def"><a name="L1281"></a><tt class="py-lineno">1281</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_str_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_str_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_str_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_str_cmp-expanded"><a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt id="link-1383" 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-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1384" 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-1384', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">        <tt id="link-1385" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1385', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1386" 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-1386', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1387" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1387', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;5&lt;/b&gt;&lt;b&gt;6&lt;/b&gt;&lt;/root&gt;'</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1268"></a><tt class="py-lineno">1268</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-1390" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1390', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</tt> <tt id="link-1391" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1391', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1269"></a><tt class="py-lineno">1269</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-1392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1392', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1393" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1393', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line"> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1394" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1394', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1396', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1397" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1397', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1400" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1400', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">5</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 class="py-number">5</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertNotEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">"5"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line"> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt id="link-1406" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1406', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-number">5</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</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-1407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1407', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">        <tt id="link-1408" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1408', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1409" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1409', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1410', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">    <tt class="py-comment"># float + long share the NumberElement implementation with int</tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_type_bool_cmp"></a><div id="ObjectifyTestCase.test_type_bool_cmp-def"><a name="L1286"></a><tt class="py-lineno">1286</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_bool_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_bool_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_type_bool_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_bool_cmp-expanded"><a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt id="link-1411" 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-1411', 'XML', 'link-63');">XML</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
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1412', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">        <tt id="link-1413" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1413', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1414" 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-1414', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1415" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1415', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;false&lt;/b&gt;&lt;b&gt;true&lt;/b&gt;&lt;/root&gt;'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1416" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1416', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1291"></a><tt class="py-lineno">1291</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-1420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1420', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1421" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1421', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1422" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1422', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1424" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1424', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1425" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1425', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</tt> <tt id="link-1427" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1427', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1428" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1428', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1429" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1429', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</tt>  <tt id="link-1430" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1430', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1431" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1431', 'assertFalse', 'link-614');">assertFalse</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"> </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 id="link-1434" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1434', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">        <tt class="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 id="link-1435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1435', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1302"></a><tt class="py-lineno">1302</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-1436" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1436', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</tt>  <tt class="py-number">5</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-number">5</tt> <tt class="py-op">&gt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">        <tt id="link-1438" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1438', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</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-1439" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1439', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt id="link-1440" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1440', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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 id="link-1441" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1441', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1442', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_type_none_cmp"></a><div id="ObjectifyTestCase.test_type_none_cmp-def"><a name="L1310"></a><tt class="py-lineno">1310</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_none_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_none_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_type_none_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_none_cmp-expanded"><a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">        <tt id="link-1443" 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-1443', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1444" 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-63');">XML</a></tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">        <tt id="link-1445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1445', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1446" 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-1446', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1447" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1447', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:nil="true"&gt;&lt;/b&gt;&lt;b xsi:nil="true"/&gt;</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</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="L1316"></a><tt class="py-lineno">1316</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-1448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1448', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1449', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1450" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1450', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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 id="link-1452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1452', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">        <tt class="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 id="link-1453" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1453', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line"> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-comment"># doesn't work in Py3:</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">        <tt id="link-1385" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1385', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1386" 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-1386', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1387" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1387', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;test&lt;/b&gt;&lt;b&gt;taste&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;b/&gt;&lt;/root&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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1388" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1388', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</tt>  <tt id="link-1390" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1390', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1391" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1391', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</tt> <tt id="link-1393" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1393', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1394" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1394', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1396', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1398" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1398', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1289"></a><tt class="py-lineno">1289</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-1399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1399', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt 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-1404" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1404', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt 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 id="link-1405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1405', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">""</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">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 id="link-1407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1407', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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 id="link-1408" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1408', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">""</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1409', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1410', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">         </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</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-1412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1412', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt id="link-1413" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1413', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1414" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1414', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1415', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1416" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1416', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">        <tt 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 id="link-1417" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1417', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_type_int_cmp"></a><div id="ObjectifyTestCase.test_type_int_cmp-def"><a name="L1308"></a><tt class="py-lineno">1308</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_int_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_int_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_int_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_int_cmp-expanded"><a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">        <tt id="link-1418" 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-1418', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1419" 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-1419', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt id="link-1420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1420', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1421" 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-1421', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1422" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1422', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;5&lt;/b&gt;&lt;b&gt;6&lt;/b&gt;&lt;/root&gt;'</tt><tt class="py-op">)</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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1312"></a><tt class="py-lineno">1312</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-1425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1425', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1313"></a><tt class="py-lineno">1313</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-1427" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1427', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1428" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1428', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1429" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1429', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1430" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1430', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1431" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1431', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1432" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1432', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1435" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1435', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">5</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt id="link-1439" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1439', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertNotEqual</tt><tt class="py-op">(</tt><tt id="link-1440" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1440', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-string">"5"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">        <tt class="py-comment">#for comparison in ["abc", 5, 7.3, True, [], ()]:</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line">        <tt class="py-comment">#    none = root.b[1]</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">        <tt class="py-comment">#    self.assertTrue(none &lt; comparison, "%s (%s) should be &lt; %s" %</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt class="py-comment">#                 (none, type(none), comparison) )</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">        <tt class="py-comment">#    self.assertTrue(comparison &gt; none, "%s should be &gt; %s (%s)" %</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">        <tt class="py-comment">#                 (comparison, none, type(none)) )</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">        <tt id="link-1441" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1441', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-number">5</tt> </tt>
+<a name="L1324"></a><tt class="py-lineno">1324</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-1442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1442', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">        <tt id="link-1443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1443', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1444" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1444', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">         </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">    <tt class="py-comment"># float + long share the NumberElement implementation with int</tt> </tt>
 <a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_dataelement_xsi"></a><div id="ObjectifyTestCase.test_dataelement_xsi-def"><a name="L1330"></a><tt class="py-lineno">1330</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_dataelement_xsi-toggle" onclick="return toggle('ObjectifyTestCase.test_dataelement_xsi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_dataelement_xsi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_dataelement_xsi-expanded"><a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1454" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1454', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1455" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1455', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"string"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1456" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="ObjectifyTestCase.test_type_bool_cmp"></a><div id="ObjectifyTestCase.test_type_bool_cmp-def"><a name="L1330"></a><tt class="py-lineno">1330</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_bool_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_bool_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_bool_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_bool_cmp-expanded"><a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">        <tt id="link-1446" 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-1446', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1447" 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-1447', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">        <tt id="link-1448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1448', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1449" 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-1449', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1450" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1450', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;b&gt;false&lt;/b&gt;&lt;b&gt;true&lt;/b&gt;&lt;/root&gt;'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</tt> <tt id="link-1454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1454', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1335"></a><tt class="py-lineno">1335</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-1455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1455', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1456', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1457" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1457', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1458', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1459" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1459', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1460" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1460', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1463" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1463', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="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">self</tt><tt class="py-op">.</tt><tt id="link-1466" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1466', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1467" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1467', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1342"></a><tt class="py-lineno">1342</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-1468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1468', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1469" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1469', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">False</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">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 id="link-1470" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1470', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1346"></a><tt class="py-lineno">1346</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-1471" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1471', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</tt>  <tt class="py-number">5</tt><tt class="py-op">)</tt> </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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-number">5</tt> <tt class="py-op">&gt;</tt> <tt id="link-1472" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1472', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line"> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-1473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1473', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </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">assertTrue</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">        <tt id="link-1475" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1475', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1476" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1476', 'assertFalse', 'link-614');">assertFalse</a></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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_type_none_cmp"></a><div id="ObjectifyTestCase.test_type_none_cmp-def"><a name="L1354"></a><tt class="py-lineno">1354</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_type_none_cmp-toggle" onclick="return toggle('ObjectifyTestCase.test_type_none_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_type_none_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_type_none_cmp-expanded"><a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">        <tt id="link-1478" 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-1478', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1479" 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-1479', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1481" 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-1481', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1482" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1482', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:nil="true"&gt;&lt;/b&gt;&lt;b xsi:nil="true"/&gt;</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</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="L1360"></a><tt class="py-lineno">1360</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-1483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1483', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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-1484" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1484', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1485" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1485', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1486" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1486', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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">None</tt><tt class="py-op">)</tt> </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 class="py-name">None</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">        <tt class="py-comment"># doesn't work in Py3:</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">        <tt class="py-comment">#for comparison in ["abc", 5, 7.3, True, [], ()]:</tt> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-comment">#    none = root.b[1]</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">        <tt class="py-comment">#    self.assertTrue(none &lt; comparison, "%s (%s) should be &lt; %s" %</tt> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-comment">#                 (none, type(none), comparison) )</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-comment">#    self.assertTrue(comparison &gt; none, "%s should be &gt; %s (%s)" %</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">        <tt class="py-comment">#                 (comparison, none, type(none)) )</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_dataelement_xsi"></a><div id="ObjectifyTestCase.test_dataelement_xsi-def"><a name="L1374"></a><tt class="py-lineno">1374</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_dataelement_xsi-toggle" onclick="return toggle('ObjectifyTestCase.test_dataelement_xsi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_dataelement_xsi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_dataelement_xsi-expanded"><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1489" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1489', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1490" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1490', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"string"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1491" 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-1456', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1457" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1457', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></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-string">'xsd:string'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_dataelement_xsi_nsmap"></a><div id="ObjectifyTestCase.test_dataelement_xsi_nsmap-def"><a name="L1336"></a><tt class="py-lineno">1336</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_dataelement_xsi_nsmap-toggle" onclick="return toggle('ObjectifyTestCase.test_dataelement_xsi_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_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="ObjectifyTestCase.test_dataelement_xsi_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_dataelement_xsi_nsmap-expanded"><a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1458" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1458', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1459" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1459', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"string"</tt><tt class="py-op">,</tt>  </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">                                   <tt id="link-1460" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-1460', 'nsmap', 'link-105');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'schema'</tt><tt class="py-op">:</tt> <tt id="link-1461" class="py-name"><a title="lxml.isoschematron.XML_SCHEMA_NS
-lxml.tests.test_objectify.XML_SCHEMA_NS" class="py-name" href="#" onclick="return doclink('link-1461', 'XML_SCHEMA_NS', 'link-22');">XML_SCHEMA_NS</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1462" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1491', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1492" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1492', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></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 class="py-string">'xsd:string'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_dataelement_xsi_nsmap"></a><div id="ObjectifyTestCase.test_dataelement_xsi_nsmap-def"><a name="L1380"></a><tt class="py-lineno">1380</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_dataelement_xsi_nsmap-toggle" onclick="return toggle('ObjectifyTestCase.test_dataelement_xsi_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_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="ObjectifyTestCase.test_dataelement_xsi_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_dataelement_xsi_nsmap-expanded"><a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1493" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1493', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1494', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"string"</tt><tt class="py-op">,</tt>  </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">                                   <tt id="link-1495" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-1495', 'nsmap', 'link-105');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'schema'</tt><tt class="py-op">:</tt> <tt id="link-1496" class="py-name"><a title="lxml.isoschematron.XML_SCHEMA_NS
+lxml.tests.test_objectify.XML_SCHEMA_NS" class="py-name" href="#" onclick="return doclink('link-1496', 'XML_SCHEMA_NS', 'link-22');">XML_SCHEMA_NS</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1497" 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-1462', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1463" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1463', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">            <tt class="py-string">'schema:string'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_dataelement_xsi_prefix_error"></a><div id="ObjectifyTestCase.test_dataelement_xsi_prefix_error-def"><a name="L1343"></a><tt class="py-lineno">1343</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_dataelement_xsi_prefix_error-toggle" onclick="return toggle('ObjectifyTestCase.test_dataelement_xsi_prefix_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_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="ObjectifyTestCase.test_dataelement_xsi_prefix_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_dataelement_xsi_prefix_error-expanded"><a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-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-1464" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1464', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1465" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1465', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</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">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"foo:string"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pytype_annotation"></a><div id="ObjectifyTestCase.test_pytype_annotation-def"><a name="L1347"></a><tt class="py-lineno">1347</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_annotation-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_annotation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pytype_annotation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_annotation-expanded"><a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt id="link-1466" 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-1466', 'XML', 'link-63');">XML</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
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1467', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-1468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1468', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1469" 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-1469', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1470" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1470', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-string">        '''</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 id="link-1471" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1471', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1472" class="py-name" targets="Function lxml.objectify.annotate()=lxml.objectify-module.html#annotate"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1472', 'annotate', 'link-1472');">annotate</a></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-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1474" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1497', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1498" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1498', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</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 class="py-string">'schema:string'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_dataelement_xsi_prefix_error"></a><div id="ObjectifyTestCase.test_dataelement_xsi_prefix_error-def"><a name="L1387"></a><tt class="py-lineno">1387</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_dataelement_xsi_prefix_error-toggle" onclick="return toggle('ObjectifyTestCase.test_dataelement_xsi_prefix_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_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="ObjectifyTestCase.test_dataelement_xsi_prefix_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_dataelement_xsi_prefix_error-expanded"><a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-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-1499" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1499', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1500" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1500', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">                          <tt class="py-name">_xsi</tt><tt class="py-op">=</tt><tt class="py-string">"foo:string"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pytype_annotation"></a><div id="ObjectifyTestCase.test_pytype_annotation-def"><a name="L1391"></a><tt class="py-lineno">1391</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_annotation-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_annotation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pytype_annotation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_annotation-expanded"><a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt id="link-1501" 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-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1502" 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-1502', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">        <tt id="link-1503" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1503', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1504" 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-1504', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1505" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1505', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt id="link-1506" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1506', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1507" class="py-name" targets="Function lxml.objectify.annotate()=lxml.objectify-module.html#annotate"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1507', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1508" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1508', 'root', 'link-144');">root</a></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">child_types</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-1509" 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-1474', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1475" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1475', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1476" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1476', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1478" 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-1478', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</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 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt 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">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</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 class="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_types</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="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</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 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">        <tt class="py-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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</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 class="py-string">"true"</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1480" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1509', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1510" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1510', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1511" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1511', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1513" 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-1513', 'iterchildren', 'link-1513');">iterchildren</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt 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">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</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-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_types</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="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</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 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</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-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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1514', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1515" 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-1480', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1481" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1481', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pytype_annotation_empty"></a><div id="ObjectifyTestCase.test_pytype_annotation_empty-def"><a name="L1389"></a><tt class="py-lineno">1389</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_annotation_empty-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_annotation_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_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="ObjectifyTestCase.test_pytype_annotation_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_annotation_empty-expanded"><a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt id="link-1482" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1515', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1516" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1516', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pytype_annotation_empty"></a><div id="ObjectifyTestCase.test_pytype_annotation_empty-def"><a name="L1433"></a><tt class="py-lineno">1433</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_annotation_empty-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_annotation_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_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="ObjectifyTestCase.test_pytype_annotation_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_annotation_empty-expanded"><a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt id="link-1517" 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-1482', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1483" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1517', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1518" 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-1483', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">        <tt id="link-1484" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1484', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1485" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1518', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1520" 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-63');">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-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-string">        '''</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 id="link-1487" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1487', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1488" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1488', 'annotate', 'link-1472');">annotate</a></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-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1490" 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-1490', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1491" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1491', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1492" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1492', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1494', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">        <tt class="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_types</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="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">        <tt id="link-1495" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1495', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1496" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1496', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1497" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1497', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">empty_pytype</tt><tt class="py-op">=</tt><tt class="py-string">"str"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1498" 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-1498', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1499" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1499', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1500" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1500', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1502" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1502', 'iterchildren', 'link-1478');">iterchildren</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 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">"str"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pytype_annotation_use_old"></a><div id="ObjectifyTestCase.test_pytype_annotation_use_old-def"><a name="L1409"></a><tt class="py-lineno">1409</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_annotation_use_old-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_annotation_use_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pytype_annotation_use_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_annotation_use_old-expanded"><a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt id="link-1503" 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-1503', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1504" 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-1504', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">        <tt id="link-1505" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1505', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1506" 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-1506', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1507" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1507', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"><tt class="py-string">        '''</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 id="link-1508" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1508', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1509" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1509', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1510" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1510', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line"> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1511" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1520', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1521" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1521', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt id="link-1522" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1522', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1523" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1523', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1524" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1524', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1525" 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-1511', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1512" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1512', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1513" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1513', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1514', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1515" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1515', 'iterchildren', 'link-1478');">iterchildren</a></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 class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="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_types</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="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</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 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</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 id="link-1516" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1516', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">         </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1517', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1518" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1525', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1526" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1526', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1527" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1527', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1529" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1529', 'iterchildren', 'link-1513');">iterchildren</a></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-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_types</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="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt id="link-1530" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1530', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1531" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1531', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1532" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1532', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">empty_pytype</tt><tt class="py-op">=</tt><tt class="py-string">"str"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1533" 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-1518', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1519" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1519', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</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="ObjectifyTestCase.test_pytype_xsitype_annotation"></a><div id="ObjectifyTestCase.test_pytype_xsitype_annotation-def"><a name="L1451"></a><tt class="py-lineno">1451</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_xsitype_annotation-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_xsitype_annotation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pytype_xsitype_annotation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_xsitype_annotation-expanded"><a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">        <tt id="link-1520" 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-1520', 'XML', 'link-63');">XML</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.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1521', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt id="link-1522" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1522', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1523" 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-1523', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1524" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1524', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt id="link-1525" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1525', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1526" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1526', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1527" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1527', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">ignore_xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">                           <tt class="py-name">annotate_xsi</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">annotate_pytype</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">         </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-comment"># check py annotations</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1528" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1533', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1534" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1534', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1535" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1535', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1536', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1537" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1537', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pytype_annotation_use_old"></a><div id="ObjectifyTestCase.test_pytype_annotation_use_old-def"><a name="L1453"></a><tt class="py-lineno">1453</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_annotation_use_old-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_annotation_use_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pytype_annotation_use_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_annotation_use_old-expanded"><a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt id="link-1538" 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-1538', 'XML', 'link-63');">XML</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
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1539', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">        <tt id="link-1540" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1540', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1541" 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-1541', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1542', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt id="link-1543" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1543', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1544" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1544', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1545" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1545', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1546" 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-1528', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1529" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1529', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1530" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1530', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1532" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1532', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1546', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1547" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1547', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1548" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1548', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1549" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1549', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1550" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1550', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
@@ -3329,2119 +3360,2178 @@ lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return
 <a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</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 class="py-string">"int"</tt><tt class="py-op">,</tt>     <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1533" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1533', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</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 class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1551" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1551', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">         </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1534', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1535" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1552" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1552', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1553" 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-1553', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1554" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1554', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pytype_xsitype_annotation"></a><div id="ObjectifyTestCase.test_pytype_xsitype_annotation-def"><a name="L1495"></a><tt class="py-lineno">1495</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_xsitype_annotation-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_xsitype_annotation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pytype_xsitype_annotation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_xsitype_annotation-expanded"><a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt id="link-1555" 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-1555', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-1556', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1558" 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-1558', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1559', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt id="link-1560" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1560', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1561" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1561', 'annotate', 'link-1507');">annotate</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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">ignore_xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</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">annotate_xsi</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">annotate_pytype</tt><tt class="py-op">=</tt><tt class="py-number">1</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-comment"># check py annotations</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1563" 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-1563', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1564" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1564', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1565" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1565', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1566" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1566', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1567', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt 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">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">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_types</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="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</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 class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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 class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>     <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1568" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1568', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<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 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1569', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1570" 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-1535', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1536" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1536', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></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 class="py-name">child_xsitypes</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-1537" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1570', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1571" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1571', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></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 class="py-name">child_xsitypes</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-1572" 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-1537', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1538" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1538', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1539" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1539', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1540" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1540', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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-comment"># check xsi annotations</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1541" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1572', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1573" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1573', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1574" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1574', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1575', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt class="py-comment"># check xsi annotations</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1576" 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-1541', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1542" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1542', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1544" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1544', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt 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">"xsd:boolean"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</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-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_types</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="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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 class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-name">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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1545" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1545', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1546" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1576', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1577" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1577', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1578" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1578', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1579" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1579', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt 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">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:boolean"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt class="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_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</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 class="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_types</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="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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 class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</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 class="py-name">None</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<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 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1580" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1580', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1581" 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-1546', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1547" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1547', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_xsiannotate_use_old"></a><div id="ObjectifyTestCase.test_xsiannotate_use_old-def"><a name="L1518"></a><tt class="py-lineno">1518</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsiannotate_use_old-toggle" onclick="return toggle('ObjectifyTestCase.test_xsiannotate_use_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_xsiannotate_use_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsiannotate_use_old-expanded"><a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt id="link-1548" 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-1548', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1549" 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-1549', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt id="link-1550" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1550', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1551" 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-1551', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1552" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1552', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-1553" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1553', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1554" class="py-name" targets="Function lxml.objectify.xsiannotate()=lxml.objectify-module.html#xsiannotate"><a title="lxml.objectify.xsiannotate" class="py-name" href="#" onclick="return doclink('link-1554', 'xsiannotate', 'link-1554');">xsiannotate</a></tt><tt class="py-op">(</tt><tt id="link-1555" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1555', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</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-name">child_types</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-1556" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1581', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1582" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1582', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_xsiannotate_use_old"></a><div id="ObjectifyTestCase.test_xsiannotate_use_old-def"><a name="L1562"></a><tt class="py-lineno">1562</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsiannotate_use_old-toggle" onclick="return toggle('ObjectifyTestCase.test_xsiannotate_use_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_xsiannotate_use_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsiannotate_use_old-expanded"><a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt id="link-1583" 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-1583', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1584" 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-1584', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt id="link-1585" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1585', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1586" 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-1586', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1587', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt id="link-1588" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1588', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1589" class="py-name" targets="Function lxml.objectify.xsiannotate()=lxml.objectify-module.html#xsiannotate"><a title="lxml.objectify.xsiannotate" class="py-name" href="#" onclick="return doclink('link-1589', 'xsiannotate', 'link-1589');">xsiannotate</a></tt><tt class="py-op">(</tt><tt id="link-1590" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1590', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<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 class="py-name">child_types</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-1591" 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-1556', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1557" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1557', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1558" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1558', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1559" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1559', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</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 class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:boolean"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</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="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</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 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">"xsd:float"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</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 class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pyannotate_ignore_old"></a><div id="ObjectifyTestCase.test_pyannotate_ignore_old-def"><a name="L1558"></a><tt class="py-lineno">1558</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pyannotate_ignore_old-toggle" onclick="return toggle('ObjectifyTestCase.test_pyannotate_ignore_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pyannotate_ignore_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pyannotate_ignore_old-expanded"><a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">        <tt id="link-1560" 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-1560', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1561" 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-1561', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt id="link-1562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1562', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1563" 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-1563', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1564" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1564', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt id="link-1565" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1565', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1566" class="py-name" targets="Function lxml.objectify.pyannotate()=lxml.objectify-module.html#pyannotate"><a title="lxml.objectify.pyannotate" class="py-name" href="#" onclick="return doclink('link-1566', 'pyannotate', 'link-1566');">pyannotate</a></tt><tt class="py-op">(</tt><tt id="link-1567" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1567', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1568" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1591', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1592" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1592', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1593', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1594" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1594', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt 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">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">        <tt 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">"xsd:boolean"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt class="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_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</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-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_types</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="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt 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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pyannotate_ignore_old"></a><div id="ObjectifyTestCase.test_pyannotate_ignore_old-def"><a name="L1602"></a><tt class="py-lineno">1602</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pyannotate_ignore_old-toggle" onclick="return toggle('ObjectifyTestCase.test_pyannotate_ignore_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pyannotate_ignore_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pyannotate_ignore_old-expanded"><a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt id="link-1595" 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-1595', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1596" 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-1596', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">        <tt id="link-1597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1597', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1598" 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-1598', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1599" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1599', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt id="link-1600" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1600', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1601" class="py-name" targets="Function lxml.objectify.pyannotate()=lxml.objectify-module.html#pyannotate"><a title="lxml.objectify.pyannotate" class="py-name" href="#" onclick="return doclink('link-1601', 'pyannotate', 'link-1601');">pyannotate</a></tt><tt class="py-op">(</tt><tt id="link-1602" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1602', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1603" 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-1568', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1569" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1569', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1570" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1570', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1571" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1571', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1572" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1572', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt 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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">         </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"true"</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1574" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1603', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1604" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1604', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1605', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1606" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1606', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1607" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1607', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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 class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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 class="py-string">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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 class="py-string">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt class="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_types</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="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-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</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 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</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 class="py-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">         </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1608" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1608', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1609" 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-1574', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1575" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1575', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pyannotate_empty"></a><div id="ObjectifyTestCase.test_pyannotate_empty-def"><a name="L1600"></a><tt class="py-lineno">1600</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pyannotate_empty-toggle" onclick="return toggle('ObjectifyTestCase.test_pyannotate_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_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="ObjectifyTestCase.test_pyannotate_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pyannotate_empty-expanded"><a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">        <tt id="link-1576" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1609', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1610" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1610', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pyannotate_empty"></a><div id="ObjectifyTestCase.test_pyannotate_empty-def"><a name="L1644"></a><tt class="py-lineno">1644</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pyannotate_empty-toggle" onclick="return toggle('ObjectifyTestCase.test_pyannotate_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_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="ObjectifyTestCase.test_pyannotate_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pyannotate_empty-expanded"><a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt id="link-1611" 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-1576', 'XML', 'link-63');">XML</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.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1611', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1612" 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-1577', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt id="link-1578" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1578', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1579" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1612', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt id="link-1613" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1613', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1614" 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-1579', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">        <tt id="link-1580" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1580', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1581" class="py-name"><a title="lxml.objectify.pyannotate" class="py-name" href="#" onclick="return doclink('link-1581', 'pyannotate', 'link-1566');">pyannotate</a></tt><tt class="py-op">(</tt><tt id="link-1582" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1582', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line"> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1583" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1614', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">        <tt id="link-1615" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1615', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1616" class="py-name"><a title="lxml.objectify.pyannotate" class="py-name" href="#" onclick="return doclink('link-1616', 'pyannotate', 'link-1601');">pyannotate</a></tt><tt class="py-op">(</tt><tt id="link-1617" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1617', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1618" 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-1583', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1584" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1584', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1585" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1585', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1586" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1586', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1587" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1587', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</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-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_types</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="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line"> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt id="link-1588" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1588', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1589" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1589', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1590" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1590', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">empty_pytype</tt><tt class="py-op">=</tt><tt class="py-string">"str"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1591" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1618', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1619" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1619', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1620" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1620', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1621" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1621', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1622', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </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 class="py-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line"> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt id="link-1623" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1623', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1624" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1624', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1625" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1625', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">empty_pytype</tt><tt class="py-op">=</tt><tt class="py-string">"str"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1626" 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-1591', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1592" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1592', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1593" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1593', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1594" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1594', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1595" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1595', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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 class="py-string">"str"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pyannotate_use_old"></a><div id="ObjectifyTestCase.test_pyannotate_use_old-def"><a name="L1620"></a><tt class="py-lineno">1620</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pyannotate_use_old-toggle" onclick="return toggle('ObjectifyTestCase.test_pyannotate_use_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pyannotate_use_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pyannotate_use_old-expanded"><a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">        <tt id="link-1596" 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-1596', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1597" 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-1597', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">        <tt id="link-1598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1598', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1599" 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-1599', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt id="link-1600" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1600', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1601" class="py-name"><a title="lxml.objectify.pyannotate" class="py-name" href="#" onclick="return doclink('link-1601', 'pyannotate', 'link-1566');">pyannotate</a></tt><tt class="py-op">(</tt><tt id="link-1602" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1602', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1603" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1626', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1627" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1627', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1628" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1628', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1629', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1630" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1630', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pyannotate_use_old"></a><div id="ObjectifyTestCase.test_pyannotate_use_old-def"><a name="L1664"></a><tt class="py-lineno">1664</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pyannotate_use_old-toggle" onclick="return toggle('ObjectifyTestCase.test_pyannotate_use_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pyannotate_use_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pyannotate_use_old-expanded"><a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">        <tt id="link-1631" 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-1631', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1632" 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-1632', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt id="link-1633" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1633', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1634" 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-1634', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">        <tt id="link-1635" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1635', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1636" class="py-name"><a title="lxml.objectify.pyannotate" class="py-name" href="#" onclick="return doclink('link-1636', 'pyannotate', 'link-1601');">pyannotate</a></tt><tt class="py-op">(</tt><tt id="link-1637" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1637', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line"> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1638" 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-1603', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1604" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1604', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1605', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1606" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1606', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1607" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1607', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</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-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="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 class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</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 class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</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 class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt 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">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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 class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1608" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1608', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">         </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1609', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1610" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1638', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1639" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1639', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1640', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1642" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1642', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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 class="py-string">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</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 class="py-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</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-1643" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1643', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</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>
+<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1644" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1644', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1645" 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-1610', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1611" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1611', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">         </tt>
-<a name="ObjectifyTestCase.test_xsiannotate_ignore_old"></a><div id="ObjectifyTestCase.test_xsiannotate_ignore_old-def"><a name="L1662"></a><tt class="py-lineno">1662</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsiannotate_ignore_old-toggle" onclick="return toggle('ObjectifyTestCase.test_xsiannotate_ignore_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_xsiannotate_ignore_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsiannotate_ignore_old-expanded"><a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt id="link-1612" 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-1612', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1613" 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-1613', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1615" 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-1615', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1616" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1616', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt id="link-1617" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1617', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1618" class="py-name"><a title="lxml.objectify.xsiannotate" class="py-name" href="#" onclick="return doclink('link-1618', 'xsiannotate', 'link-1554');">xsiannotate</a></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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1620" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1645', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1646" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1646', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">         </tt>
+<a name="ObjectifyTestCase.test_xsiannotate_ignore_old"></a><div id="ObjectifyTestCase.test_xsiannotate_ignore_old-def"><a name="L1706"></a><tt class="py-lineno">1706</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsiannotate_ignore_old-toggle" onclick="return toggle('ObjectifyTestCase.test_xsiannotate_ignore_old');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_xsiannotate_ignore_old-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsiannotate_ignore_old-expanded"><a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt id="link-1647" 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-1647', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1648" 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-1648', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt id="link-1649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1649', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1650" 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-1650', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1651" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1651', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt id="link-1652" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1652', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1653" class="py-name"><a title="lxml.objectify.xsiannotate" class="py-name" href="#" onclick="return doclink('link-1653', 'xsiannotate', 'link-1589');">xsiannotate</a></tt><tt class="py-op">(</tt><tt id="link-1654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1654', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1655" 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-1620', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1621" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1621', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1622" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1622', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1623', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="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-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">        <tt 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">"xsd:boolean"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</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="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 class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</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 class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"> </tt>
-<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 class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1624', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1625" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1655', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1656" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1656', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1657" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1657', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1658" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1658', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</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 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">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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">"xsd:boolean"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="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 class="py-name">None</tt><tt class="py-op">,</tt>          <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt 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_types</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="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt 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">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</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="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1659" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1659', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1660" 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-1625', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1626" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1626', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_deannotate"></a><div id="ObjectifyTestCase.test_deannotate-def"><a name="L1704"></a><tt class="py-lineno">1704</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_deannotate-expanded"><a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">        <tt id="link-1627" 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-1627', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1628" 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-1628', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt id="link-1629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1629', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1630" 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-1630', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1631" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1631', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">        <tt id="link-1632" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1632', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1633" class="py-name" targets="Function lxml.objectify.deannotate()=lxml.objectify-module.html#deannotate"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1633', 'deannotate', 'link-1633');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1634" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1634', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1635" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1635', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1636" 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-1636', 'getiterator', 'link-1636');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1660', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1661" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1661', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_deannotate"></a><div id="ObjectifyTestCase.test_deannotate-def"><a name="L1748"></a><tt class="py-lineno">1748</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_deannotate-expanded"><a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">        <tt id="link-1662" 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-1662', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1663" 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-1663', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1665" 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-1665', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1666', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">        <tt id="link-1667" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1667', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1668" class="py-name" targets="Function lxml.objectify.deannotate()=lxml.objectify-module.html#deannotate"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1668', 'deannotate', 'link-1668');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1669" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1669', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line"> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1670" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1670', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1671" 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-1671', 'getiterator', 'link-1671');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">            <tt class="py-name">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">c</tt><tt class="py-op">.</tt><tt id="link-1672" 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-1637', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1638" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1638', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</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 class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1639" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1672', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1673" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1673', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1674" 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-1639', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1640" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1640', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1641', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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>
-<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1642" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1642', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1643" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1674', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1675" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1675', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1676" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1676', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line"> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1677" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1677', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1678" 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-1643', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1644" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1644', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_xsinil_deannotate"></a><div id="ObjectifyTestCase.test_xsinil_deannotate-def"><a name="L1733"></a><tt class="py-lineno">1733</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsinil_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_xsinil_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_xsinil_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsinil_deannotate-expanded"><a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt id="link-1645" 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-1645', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1646" 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-1646', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt id="link-1647" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1647', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1648" 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-1648', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1649" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1649', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt id="link-1650" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1650', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1651" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1651', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">            <tt id="link-1652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1652', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">ignore_xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">annotate_xsi</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">            <tt class="py-name">empty_pytype</tt><tt class="py-op">=</tt><tt class="py-string">'str'</tt><tt class="py-op">,</tt> <tt class="py-name">empty_type</tt><tt class="py-op">=</tt><tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">        <tt id="link-1653" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1653', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1654" class="py-name"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1654', 'deannotate', 'link-1633');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1655" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1655', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">xsi_nil</tt><tt class="py-op">=</tt><tt class="py-name">True</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">child_types</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-1656" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1678', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1679" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1679', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_xsinil_deannotate"></a><div id="ObjectifyTestCase.test_xsinil_deannotate-def"><a name="L1777"></a><tt class="py-lineno">1777</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsinil_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_xsinil_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_xsinil_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsinil_deannotate-expanded"><a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt id="link-1680" 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-1680', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1681" 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-1681', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">        <tt id="link-1682" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1682', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1683" 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-1683', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1684" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1684', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"&gt;</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt id="link-1685" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1685', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1686" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1686', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignore_old</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">ignore_xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">annotate_xsi</tt><tt class="py-op">=</tt><tt class="py-name">True</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">empty_pytype</tt><tt class="py-op">=</tt><tt class="py-string">'str'</tt><tt class="py-op">,</tt> <tt class="py-name">empty_type</tt><tt class="py-op">=</tt><tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt id="link-1688" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1688', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1689" class="py-name"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1689', 'deannotate', 'link-1668');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1690', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">xsi_nil</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line"> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1691" 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-1656', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1657" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1657', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1658', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1659" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1659', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">        <tt 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">"xsd:integer"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:boolean"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>           <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt class="py-name">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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line"> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1660" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1660', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1661" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1691', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1692" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1692', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1693', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1694" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1694', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:boolean"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>           <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</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-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">"xsd:double"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt 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">"xsd:double"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:integer"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>           <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line"> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-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 id="link-1695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1695', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1696" 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-1661', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1662" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1662', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line"> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1663" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1663', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1664" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1664', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1665" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1696', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1697" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1697', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line"> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1698', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1699" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1699', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1700" 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-1665', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1666" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1666', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1667" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1667', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">            <tt class="py-comment"># these have no equivalent in xsi:type</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1668" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1700', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1701" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1701', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1702', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></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-comment"># these have no equivalent in xsi:type</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1703" 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-1668', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1669" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1669', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1670" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1670', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-1671" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1671', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt>  </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">                <tt class="py-string">"NoneType"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">                    <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1672" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1703', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1704" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1704', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1705" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1705', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-1706" class="py-name"><a title="lxml.tests.test_objectify.TREE_PYTYPE" class="py-name" href="#" onclick="return doclink('link-1706', 'TREE_PYTYPE', 'link-28');">TREE_PYTYPE</a></tt><tt class="py-op">,</tt>  </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">                <tt class="py-string">"NoneType"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">                    <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1707" 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-1672', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1673" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1673', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_xsitype_deannotate"></a><div id="ObjectifyTestCase.test_xsitype_deannotate-def"><a name="L1786"></a><tt class="py-lineno">1786</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsitype_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_xsitype_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_xsitype_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsitype_deannotate-expanded"><a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">        <tt id="link-1674" 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-1674', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1675" 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-1675', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">        <tt id="link-1676" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1676', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1677" 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-1677', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1678" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1678', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"</tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">        <tt id="link-1679" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1679', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1680" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1680', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1681', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt id="link-1682" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1682', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1683" class="py-name"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1683', 'deannotate', 'link-1633');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1684" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1684', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line"> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1685" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1707', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1708" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1708', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_xsitype_deannotate"></a><div id="ObjectifyTestCase.test_xsitype_deannotate-def"><a name="L1830"></a><tt class="py-lineno">1830</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xsitype_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_xsitype_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_xsitype_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xsitype_deannotate-expanded"><a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">        <tt id="link-1709" 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-1709', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1710" 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-1710', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1712" 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-1712', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1713" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1713', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"</tt> </tt>
+<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</tt> </tt>
+<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line"><tt class="py-string">          &lt;s py:pytype="str"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"><tt class="py-string">          &lt;f py:pytype="float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"><tt class="py-string">          &lt;l py:pytype="long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">        <tt id="link-1714" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1714', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1715" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1715', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1716" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1716', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt id="link-1717" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1717', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1718" class="py-name"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1718', 'deannotate', 'link-1668');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1719" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1719', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line"> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1720" 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-1685', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1686" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1686', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1687" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1687', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1688" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1688', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1689" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1689', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt class="py-name">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_types</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="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">        <tt class="py-name">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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">         </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1690', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1720', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1721" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1721', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1722" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1722', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1723', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1724" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1724', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</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-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt 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">"bool"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt 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">"NoneType"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</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="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt 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">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"float"</tt><tt class="py-op">,</tt> <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"str"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt 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">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">         </tt>
+<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1725', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1726" 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-1691', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1692" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1692', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line"> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1693', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1694" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1694', 'getiterator', 'link-1636');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">            <tt class="py-name">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">c</tt><tt class="py-op">.</tt><tt id="link-1695" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1726', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1727" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1727', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line"> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1728" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1728', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1729', 'getiterator', 'link-1671');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">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">c</tt><tt class="py-op">.</tt><tt id="link-1730" 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-1695', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1696" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1696', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pytype_deannotate"></a><div id="ObjectifyTestCase.test_pytype_deannotate-def"><a name="L1833"></a><tt class="py-lineno">1833</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pytype_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_deannotate-expanded"><a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">        <tt id="link-1697" 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-1697', 'XML', 'link-63');">XML</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.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1698', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">        <tt id="link-1699" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1699', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1700" 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-1700', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1701" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1701', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:int"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:string"&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line"><tt class="py-string">          &lt;c xsi:type="xsd:float"&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"><tt class="py-string">          &lt;c xsi:type="xsd:string"&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line"><tt class="py-string">          &lt;x xsi:type="xsd:boolean"&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:float"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;23&lt;/s&gt;</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;42&lt;/s&gt;</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="xsd:float"&gt;300&lt;/f&gt;</tt> </tt>
-<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:long"&gt;2&lt;/l&gt;</tt> </tt>
-<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
-<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">        <tt id="link-1702" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1702', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1703" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1703', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1704" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1704', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt id="link-1705" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1705', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1706" class="py-name"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1706', 'deannotate', 'link-1633');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1707" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1707', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"> </tt>
-<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1708" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1730', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1731" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1731', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pytype_deannotate"></a><div id="ObjectifyTestCase.test_pytype_deannotate-def"><a name="L1877"></a><tt class="py-lineno">1877</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pytype_deannotate-toggle" onclick="return toggle('ObjectifyTestCase.test_pytype_deannotate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pytype_deannotate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pytype_deannotate-expanded"><a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line">        <tt id="link-1732" 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-1732', 'XML', 'link-63');">XML</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.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1733', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt id="link-1734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1734', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1735" 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-1735', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1736" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1736', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</tt> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line"><tt class="py-string">        xmlns:py="http://codespeak.net/lxml/objectify/pytype"</tt> </tt>
+<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</tt> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:int"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:string"&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"><tt class="py-string">          &lt;c xsi:type="xsd:float"&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line"><tt class="py-string">          &lt;c xsi:type="xsd:string"&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"><tt class="py-string">          &lt;x xsi:type="xsd:boolean"&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="xsd:float"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;23&lt;/s&gt;</tt> </tt>
+<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line"><tt class="py-string">          &lt;s xsi:type="xsd:string"&gt;42&lt;/s&gt;</tt> </tt>
+<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line"><tt class="py-string">          &lt;f xsi:type="xsd:float"&gt;300&lt;/f&gt;</tt> </tt>
+<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line"><tt class="py-string">          &lt;l xsi:type="xsd:long"&gt;2&lt;/l&gt;</tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line"><tt class="py-string">          &lt;t py:pytype="TREE"&gt;&lt;/t&gt;</tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt id="link-1737" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1737', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1738" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1738', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1739" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1739', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt id="link-1740" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1740', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1741" class="py-name"><a title="lxml.objectify.deannotate" class="py-name" href="#" onclick="return doclink('link-1741', 'deannotate', 'link-1668');">deannotate</a></tt><tt class="py-op">(</tt><tt id="link-1742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1742', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xsi</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line"> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">child_types</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-1743" 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-1708', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1709" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1709', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</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-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1710', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1711" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1711', 'iterchildren', 'link-1478');">iterchildren</a></tt><tt class="py-op">(</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-string">"xsd:int"</tt><tt class="py-op">,</tt>      <tt class="py-name">child_types</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="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt 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">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt 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">"xsd:boolean"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>           <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>           <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:double"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">        <tt 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">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:long"</tt><tt class="py-op">,</tt>     <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">        <tt class="py-name">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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line"> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">        <tt 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">"true"</tt><tt class="py-op">,</tt> <tt id="link-1712" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1712', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1743', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1744" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR" class="py-name" href="#" onclick="return doclink('link-1744', 'XML_SCHEMA_INSTANCE_TYPE_ATTR', 'link-24');">XML_SCHEMA_INSTANCE_TYPE_ATTR</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-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1745', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1746" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1746', 'iterchildren', 'link-1513');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:int"</tt><tt class="py-op">,</tt>      <tt class="py-name">child_types</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="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">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="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">"xsd:boolean"</tt><tt class="py-op">,</tt>  <tt class="py-name">child_types</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="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-name">None</tt><tt class="py-op">,</tt>           <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt class="py-name">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_types</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="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">"xsd:double"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt> <tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">        <tt 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">"xsd:string"</tt><tt class="py-op">,</tt>   <tt class="py-name">child_types</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="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">        <tt 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">"xsd:float"</tt><tt class="py-op">,</tt>    <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">        <tt 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">"xsd:long"</tt><tt class="py-op">,</tt>     <tt class="py-name">child_types</tt><tt class="py-op">[</tt><tt class="py-number">12</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 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_types</tt><tt class="py-op">[</tt><tt class="py-number">13</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>
+<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 class="py-string">"true"</tt><tt class="py-op">,</tt> <tt id="link-1747" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1747', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">.</tt><tt id="link-1748" 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-1713', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1714" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1714', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line"> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1715" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1715', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1716', 'getiterator', 'link-1636');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">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">c</tt><tt class="py-op">.</tt><tt id="link-1717" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1748', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1749" class="py-name"><a title="lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR" class="py-name" href="#" onclick="return doclink('link-1749', 'XML_SCHEMA_NIL_ATTR', 'link-26');">XML_SCHEMA_NIL_ATTR</a></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>
+<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1750', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1751" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1751', 'getiterator', 'link-1671');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">            <tt class="py-name">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">c</tt><tt class="py-op">.</tt><tt id="link-1752" 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-1717', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1718" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1718', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1719" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1719', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_change_pytype_attribute"></a><div id="ObjectifyTestCase.test_change_pytype_attribute-def"><a name="L1880"></a><tt class="py-lineno">1880</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_change_pytype_attribute-toggle" onclick="return toggle('ObjectifyTestCase.test_change_pytype_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_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="ObjectifyTestCase.test_change_pytype_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_change_pytype_attribute-expanded"><a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">        <tt id="link-1720" 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-1720', 'XML', 'link-63');">XML</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.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1721', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line"> </tt>
-<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt id="link-1722" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1722', 'xml', 'link-64');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1723" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1723', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
-<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
-<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
-<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
-<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line"> </tt>
-<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">        <tt class="py-name">pytype_ns</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_name</tt> <tt class="py-op">=</tt> <tt id="link-1724" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1724', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1725" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1725', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">        <tt id="link-1726" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1726', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1727" class="py-name"><a title="lxml.objectify.set_pytype_attribute_tag" class="py-name" href="#" onclick="return doclink('link-1727', 'set_pytype_attribute_tag', 'link-94');">set_pytype_attribute_tag</a></tt><tt class="py-op">(</tt><tt class="py-string">"{TEST}test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line"> </tt>
-<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt id="link-1728" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1728', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1729" 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-1729', 'XML', 'link-63');">XML</a></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-64');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt id="link-1731" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1731', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1732" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1732', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1733" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1733', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line"> </tt>
-<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt id="link-1734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1734', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1735" 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._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1752', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt id="link-1753" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1753', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1754" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1754', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_change_pytype_attribute"></a><div id="ObjectifyTestCase.test_change_pytype_attribute-def"><a name="L1924"></a><tt class="py-lineno">1924</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_change_pytype_attribute-toggle" onclick="return toggle('ObjectifyTestCase.test_change_pytype_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_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="ObjectifyTestCase.test_change_pytype_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_change_pytype_attribute-expanded"><a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">        <tt id="link-1755" 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-1755', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1756" 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-1756', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line"> </tt>
+<a name="L1927"></a><tt class="py-lineno">1927</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-64');">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-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line"><tt class="py-string">        &lt;a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;test&lt;/b&gt;</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;1.1&lt;/c&gt;</tt> </tt>
+<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line"><tt class="py-string">          &lt;c&gt;\uF8D2&lt;/c&gt;</tt> </tt>
+<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line"><tt class="py-string">          &lt;x&gt;true&lt;/x&gt;</tt> </tt>
+<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line"><tt class="py-string">          &lt;n&gt;&lt;/n&gt;</tt> </tt>
+<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line"><tt class="py-string">          &lt;b xsi:type="double"&gt;5&lt;/b&gt;</tt> </tt>
+<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line"><tt class="py-string">        &lt;/a&gt;</tt> </tt>
+<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line"> </tt>
+<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt class="py-name">pytype_ns</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_name</tt> <tt class="py-op">=</tt> <tt id="link-1759" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1759', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1760" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1760', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'}'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line">        <tt id="link-1761" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1761', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1762" class="py-name"><a title="lxml.objectify.set_pytype_attribute_tag" class="py-name" href="#" onclick="return doclink('link-1762', 'set_pytype_attribute_tag', 'link-94');">set_pytype_attribute_tag</a></tt><tt class="py-op">(</tt><tt class="py-string">"{TEST}test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line"> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt id="link-1763" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1763', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1764" 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-1764', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1765" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1765', 'xml', 'link-64');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt id="link-1766" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1766', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1767" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1767', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1768" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1768', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line"> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">        <tt class="py-name">attribs</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1770" 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-1735', 'xpath', 'link-1735');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">pytype_name</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">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</tt> <tt class="py-op">:</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">        <tt class="py-name">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">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt id="link-1736" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1736', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name"><a title="lxml.etree._Element.xpath
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1770', 'xpath', 'link-1770');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">pytype_name</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">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</tt> <tt class="py-op">:</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt 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">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">        <tt class="py-name">attribs</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-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1737', 'xpath', 'link-1735');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:test"</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">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</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="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">        <tt 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">7</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line"> </tt>
-<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">        <tt id="link-1738" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1738', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.objectify.set_pytype_attribute_tag" class="py-name" href="#" onclick="return doclink('link-1739', 'set_pytype_attribute_tag', 'link-94');">set_pytype_attribute_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt class="py-name">pytype_ns</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_name</tt> <tt class="py-op">=</tt> <tt id="link-1740" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1740', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1741" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1741', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line"> </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">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_name</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line"> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">        <tt id="link-1742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1742', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1743" 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-1743', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><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-64');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt id="link-1745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1745', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1746" class="py-name"><a title="lxml.etree._Element.xpath
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1772', 'xpath', 'link-1770');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:test"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">                             <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</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="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">7</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line"> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">        <tt id="link-1773" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1773', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1774" class="py-name"><a title="lxml.objectify.set_pytype_attribute_tag" class="py-name" href="#" onclick="return doclink('link-1774', 'set_pytype_attribute_tag', 'link-94');">set_pytype_attribute_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">        <tt class="py-name">pytype_ns</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_name</tt> <tt class="py-op">=</tt> <tt id="link-1775" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1775', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1776" class="py-name"><a title="lxml.objectify.PYTYPE_ATTRIBUTE" class="py-name" href="#" onclick="return doclink('link-1776', 'PYTYPE_ATTRIBUTE', 'link-377');">PYTYPE_ATTRIBUTE</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-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'}'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line"> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</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 class="py-string">"test"</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt class="py-name">pytype_name</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line"> </tt>
+<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt id="link-1777" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1777', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1778" 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-1778', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><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-64');">xml</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">attribs</tt> <tt class="py-op">=</tt> <tt id="link-1780" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1780', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1781" class="py-name"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1746', 'xpath', 'link-1735');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">pytype_name</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">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</tt> <tt class="py-op">:</tt> <tt class="py-name">pytype_ns</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 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">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line"> </tt>
-<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">        <tt id="link-1747" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1747', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1748" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1748', 'annotate', 'link-1472');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1749" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1749', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt id="link-1750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1750', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1751" class="py-name"><a title="lxml.etree._Element.xpath
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1781', 'xpath', 'link-1770');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">pytype_name</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">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</tt> <tt class="py-op">:</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt 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">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line"> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt id="link-1782" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1782', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1783" class="py-name"><a title="lxml.objectify.annotate" class="py-name" href="#" onclick="return doclink('link-1783', 'annotate', 'link-1507');">annotate</a></tt><tt class="py-op">(</tt><tt id="link-1784" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1784', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt id="link-1785" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1785', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1751', 'xpath', 'link-1735');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">pytype_name</tt><tt class="py-op">,</tt> </tt>
-<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">                             <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</tt> <tt class="py-op">:</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt 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">7</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_registered_types"></a><div id="ObjectifyTestCase.test_registered_types-def"><a name="L1925"></a><tt class="py-lineno">1925</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_registered_types-toggle" onclick="return toggle('ObjectifyTestCase.test_registered_types');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_registered_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_registered_types-expanded"><a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt class="py-name">orig_types</tt> <tt class="py-op">=</tt> <tt id="link-1752" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1752', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1753', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt class="py-name">orig_types</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-1754" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1754', 'unregister', 'link-99');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">orig_types</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 id="link-1755" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1755', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1756" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1756', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line"> </tt>
-<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">NewType</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</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 class="py-keyword">pass</tt> </tt>
-</div><a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line"> </tt>
-<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">checkMyType</tt><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line"> </tt>
-<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt> <tt class="py-op">=</tt> <tt id="link-1757" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1757', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1758" class="py-name" targets="Class lxml.objectify.PyType=lxml.objectify.PyType-class.html"><a title="lxml.objectify.PyType" class="py-name" href="#" onclick="return doclink('link-1758', 'PyType', 'link-1758');">PyType</a></tt><tt class="py-op">(</tt><tt class="py-string">"mytype"</tt><tt class="py-op">,</tt> <tt class="py-name">checkMyType</tt><tt class="py-op">,</tt> <tt class="py-name">NewType</tt><tt class="py-op">)</tt> </tt>
-<a name="L1937"></a><tt class="py-lineno">1937</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">pytype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-1759" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1759', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1760" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1760', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1761" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1761', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</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">pytype</tt> <tt class="py-keyword">in</tt> <tt id="link-1762" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1762', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1763', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1764" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1764', 'unregister', 'link-99');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</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">pytype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-1765" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1765', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1766" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1766', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line"> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1767" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1767', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-name">before</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1768" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1768', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1769" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1769', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1770" 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.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1786', 'xpath', 'link-1770');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">"//@py:%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">pytype_name</tt><tt class="py-op">,</tt> </tt>
+<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">                             <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"py"</tt> <tt class="py-op">:</tt> <tt class="py-name">pytype_ns</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">7</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attribs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_registered_types"></a><div id="ObjectifyTestCase.test_registered_types-def"><a name="L1969"></a><tt class="py-lineno">1969</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_registered_types-toggle" onclick="return toggle('ObjectifyTestCase.test_registered_types');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_registered_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_registered_types-expanded"><a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">        <tt class="py-name">orig_types</tt> <tt class="py-op">=</tt> <tt id="link-1787" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1787', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1788" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1788', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">        <tt class="py-name">orig_types</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.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1789', 'unregister', 'link-99');">unregister</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">orig_types</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 id="link-1790" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1790', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1791" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1791', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</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>
+<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">NewType</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line"> </tt>
+<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">checkMyType</tt><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line"> </tt>
+<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt> <tt class="py-op">=</tt> <tt id="link-1792" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1792', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name" targets="Class lxml.objectify.PyType=lxml.objectify.PyType-class.html"><a title="lxml.objectify.PyType" class="py-name" href="#" onclick="return doclink('link-1793', 'PyType', 'link-1793');">PyType</a></tt><tt class="py-op">(</tt><tt class="py-string">"mytype"</tt><tt class="py-op">,</tt> <tt class="py-name">checkMyType</tt><tt class="py-op">,</tt> <tt class="py-name">NewType</tt><tt class="py-op">)</tt> </tt>
+<a name="L1981"></a><tt class="py-lineno">1981</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">pytype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-1794" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1794', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1795" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1795', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1796', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1983"></a><tt class="py-lineno">1983</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">pytype</tt> <tt class="py-keyword">in</tt> <tt id="link-1797" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1797', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1798" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1798', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1799" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1799', 'unregister', 'link-99');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">pytype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-1800" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1800', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1801', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</a></tt><tt class="py-op">(</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>
+<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1802" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1802', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-name">before</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1803" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1803', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1804', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1805" 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-1770', 'name', 'link-1770');">name</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1771" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1771', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1772', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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>
-<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1773', 'unregister', 'link-99');">unregister</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>
-<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1774" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1774', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-name">after</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1775" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1775', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1776" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1776', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1777" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1805', 'name', 'link-1805');">name</a></tt><tt class="py-op">]</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 class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1806" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1806', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1807', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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>
+<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1808" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1808', 'unregister', 'link-99');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"> </tt>
+<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1809" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1809', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-name">after</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1810" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1810', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1811" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1811', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1812" 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-1777', 'name', 'link-1770');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1778" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1778', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1779" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1779', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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>
-<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1780" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1780', 'unregister', 'link-99');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line"> </tt>
-<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1781" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1781', 'register', 'link-100');">register</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">                          <tt class="py-name">before</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1782" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1782', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1783" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1783', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1784" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1812', 'name', 'link-1805');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">pytype</tt><tt class="py-op">,</tt> <tt id="link-1813" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1813', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1814" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1814', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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>
+<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">        <tt class="py-name">pytype</tt><tt class="py-op">.</tt><tt id="link-1815" class="py-name"><a title="lxml.objectify.PyType.unregister" class="py-name" href="#" onclick="return doclink('link-1815', 'unregister', 'link-99');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line"> </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-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">pytype</tt><tt class="py-op">.</tt><tt id="link-1816" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1816', 'register', 'link-100');">register</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">                          <tt class="py-name">before</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1817" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1817', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1818" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1818', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1819" 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-1784', 'name', 'link-1770');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">                          <tt class="py-name">after</tt>  <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1785" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1785', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1786', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1787" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1819', 'name', 'link-1805');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">                          <tt class="py-name">after</tt>  <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-1820" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1820', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1821" class="py-name"><a title="lxml.objectify.getRegisteredTypes" class="py-name" href="#" onclick="return doclink('link-1821', 'getRegisteredTypes', 'link-89');">getRegisteredTypes</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-1822" 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-1787', 'name', 'link-1770');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_registered_type_stringify"></a><div id="ObjectifyTestCase.test_registered_type_stringify-def"><a name="L1955"></a><tt class="py-lineno">1955</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_registered_type_stringify-toggle" onclick="return toggle('ObjectifyTestCase.test_registered_type_stringify');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_registered_type_stringify-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_registered_type_stringify-expanded"><a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">datetime</tt> <tt class="py-keyword">import</tt> <tt class="py-name">datetime</tt> </tt>
-<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-param">value</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-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1788" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1822', 'name', 'link-1805');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_registered_type_stringify"></a><div id="ObjectifyTestCase.test_registered_type_stringify-def"><a name="L1999"></a><tt class="py-lineno">1999</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_registered_type_stringify-toggle" onclick="return toggle('ObjectifyTestCase.test_registered_type_stringify');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_registered_type_stringify-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_registered_type_stringify-expanded"><a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">datetime</tt> <tt class="py-keyword">import</tt> <tt class="py-name">datetime</tt> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-param">value</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-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1823" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1788', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">14</tt><tt class="py-op">:</tt> </tt>
-<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt id="link-1789" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1823', 'value', 'link-196');">value</a></tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">14</tt><tt class="py-op">:</tt> </tt>
+<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt id="link-1824" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1789', 'value', 'link-196');">value</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">Y</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1790" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1824', 'value', 'link-196');">value</a></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">Y</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1825" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1790', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">0</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="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">            <tt class="py-name">M</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1791" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1825', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">0</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="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">            <tt class="py-name">M</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1826" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1791', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">4</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="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">            <tt class="py-name">D</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1792" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1826', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">4</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="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">            <tt class="py-name">D</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1827" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1792', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">6</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">            <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1793" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1827', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">6</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">            <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1828" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1793', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">8</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="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">            <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1794" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1828', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">8</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="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">            <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1829" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1794', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1795" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1829', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-1830" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1795', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-number">14</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">datetime</tt><tt class="py-op">(</tt><tt class="py-name">Y</tt><tt class="py-op">,</tt> <tt class="py-name">M</tt><tt class="py-op">,</tt> <tt class="py-name">D</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line"> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-param">date</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">date</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">"%Y%m%d%H%M%S"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line"> </tt>
-<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">DatetimeElement</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</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 class="py-keyword">def</tt> <tt class="py-def-name">pyval</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="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1830', 'value', 'link-196');">value</a></tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-number">14</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">datetime</tt><tt class="py-op">(</tt><tt class="py-name">Y</tt><tt class="py-op">,</tt> <tt class="py-name">M</tt><tt class="py-op">,</tt> <tt class="py-name">D</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line"> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-param">date</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">date</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">"%Y%m%d%H%M%S"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line"> </tt>
+<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">DatetimeElement</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">pyval</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="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">parse_date</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.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-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">            <tt id="link-1797" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1831', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">            <tt id="link-1832" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1797', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-1798" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1832', 'pyval', 'link-360');">pyval</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-1833" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1798', 'pyval', 'link-360');">pyval</a></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="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">        <tt class="py-name">datetime_type</tt> <tt class="py-op">=</tt> <tt id="link-1799" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1799', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.objectify.PyType" class="py-name" href="#" onclick="return doclink('link-1800', 'PyType', 'link-1758');">PyType</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">            <tt class="py-string">"datetime"</tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">)</tt> </tt>
-<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">        <tt class="py-name">datetime_type</tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name" targets="Variable lxml.objectify.PyType.xmlSchemaTypes=lxml.objectify.PyType-class.html#xmlSchemaTypes"><a title="lxml.objectify.PyType.xmlSchemaTypes" class="py-name" href="#" onclick="return doclink('link-1801', 'xmlSchemaTypes', 'link-1801');">xmlSchemaTypes</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"dateTime"</tt> </tt>
-<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">        <tt class="py-name">datetime_type</tt><tt class="py-op">.</tt><tt id="link-1802" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1802', 'register', 'link-100');">register</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line"> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">        <tt id="link-1803" class="py-name" targets="Variable lxml.etree.ErrorDomains.NAMESPACE=lxml.etree.ErrorDomains-class.html#NAMESPACE"><a title="lxml.etree.ErrorDomains.NAMESPACE" class="py-name" href="#" onclick="return doclink('link-1803', 'NAMESPACE', 'link-1803');">NAMESPACE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"http://foo.net/xmlns"</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt class="py-name">NAMESPACE_MAP</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'ns'</tt><tt class="py-op">:</tt> <tt id="link-1804" class="py-name"><a title="lxml.etree.ErrorDomains.NAMESPACE" class="py-name" href="#" onclick="return doclink('link-1804', 'NAMESPACE', 'link-1803');">NAMESPACE</a></tt><tt class="py-op">}</tt> </tt>
-<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line"> </tt>
-<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt id="link-1805" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1805', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1833', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line"> </tt>
+<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">        <tt class="py-name">datetime_type</tt> <tt class="py-op">=</tt> <tt id="link-1834" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1834', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1835" class="py-name"><a title="lxml.objectify.PyType" class="py-name" href="#" onclick="return doclink('link-1835', 'PyType', 'link-1793');">PyType</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">            <tt class="py-string">"datetime"</tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">)</tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">        <tt class="py-name">datetime_type</tt><tt class="py-op">.</tt><tt id="link-1836" class="py-name" targets="Variable lxml.objectify.PyType.xmlSchemaTypes=lxml.objectify.PyType-class.html#xmlSchemaTypes"><a title="lxml.objectify.PyType.xmlSchemaTypes" class="py-name" href="#" onclick="return doclink('link-1836', 'xmlSchemaTypes', 'link-1836');">xmlSchemaTypes</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"dateTime"</tt> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">        <tt class="py-name">datetime_type</tt><tt class="py-op">.</tt><tt id="link-1837" class="py-name"><a title="lxml.objectify.PyType.register" class="py-name" href="#" onclick="return doclink('link-1837', 'register', 'link-100');">register</a></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>
+<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">        <tt id="link-1838" class="py-name" targets="Variable lxml.etree.ErrorDomains.NAMESPACE=lxml.etree.ErrorDomains-class.html#NAMESPACE"><a title="lxml.etree.ErrorDomains.NAMESPACE" class="py-name" href="#" onclick="return doclink('link-1838', 'NAMESPACE', 'link-1838');">NAMESPACE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"http://foo.net/xmlns"</tt> </tt>
+<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line">        <tt class="py-name">NAMESPACE_MAP</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'ns'</tt><tt class="py-op">:</tt> <tt id="link-1839" class="py-name"><a title="lxml.etree.ErrorDomains.NAMESPACE" class="py-name" href="#" onclick="return doclink('link-1839', 'NAMESPACE', 'link-1838');">NAMESPACE</a></tt><tt class="py-op">}</tt> </tt>
+<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-name">r</tt> <tt class="py-op">=</tt> <tt id="link-1840" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1840', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1841" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1806', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{%s}root"</tt> <tt class="py-op">%</tt> <tt id="link-1807" class="py-name"><a title="lxml.etree.ErrorDomains.NAMESPACE" class="py-name" href="#" onclick="return doclink('link-1807', 'NAMESPACE', 'link-1803');">NAMESPACE</a></tt><tt class="py-op">,</tt> <tt id="link-1808" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-1808', 'nsmap', 'link-105');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">NAMESPACE_MAP</tt><tt class="py-op">)</tt> </tt>
-<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt class="py-name">time</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">now</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">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt> </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line"> </tt>
-<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line">        <tt class="py-name">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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</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 class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1809" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1841', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{%s}root"</tt> <tt class="py-op">%</tt> <tt id="link-1842" class="py-name"><a title="lxml.etree.ErrorDomains.NAMESPACE" class="py-name" href="#" onclick="return doclink('link-1842', 'NAMESPACE', 'link-1838');">NAMESPACE</a></tt><tt class="py-op">,</tt> <tt id="link-1843" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-1843', 'nsmap', 'link-105');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">NAMESPACE_MAP</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">time</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">now</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">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt> </tt>
+<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-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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">        <tt class="py-name">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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1844" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1809', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"> </tt>
-<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line">        <tt class="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">date</tt><tt class="py-op">.</tt><tt id="link-1810" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1844', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line"> </tt>
+<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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1845" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1810', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">        <tt class="py-name">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">date</tt><tt class="py-op">.</tt><tt id="link-1811" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1845', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">        <tt class="py-name">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">date</tt><tt class="py-op">.</tt><tt id="link-1846" 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-1811', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line"> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt id="link-1812" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1812', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1813" class="py-name" targets="Variable lxml.builder.E=lxml.builder-module.html#E,Variable lxml.html.builder.E=lxml.html.builder-module.html#E,Variable lxml.objectify.E=lxml.objectify-module.html#E"><a title="lxml.builder.E
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1846', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</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>
+<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt id="link-1847" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1847', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1848" class="py-name" targets="Variable lxml.builder.E=lxml.builder-module.html#E,Variable lxml.html.builder.E=lxml.html.builder-module.html#E,Variable lxml.objectify.E=lxml.objectify-module.html#E"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-1813', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line"> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1814" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-1848', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt> </tt>
+<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line"> </tt>
+<a name="L2040"></a><tt class="py-lineno">2040</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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">        <tt class="py-name">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 class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1849" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1814', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line"> </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 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">date</tt><tt class="py-op">.</tt><tt id="link-1815" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1849', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line"> </tt>
+<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">        <tt class="py-name">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">date</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1815', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">        <tt class="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">date</tt><tt class="py-op">.</tt><tt id="link-1816" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1850', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">date</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-1816', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</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>
-<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">        <tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt id="link-1817" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1817', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1818" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1818', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt> </tt>
-<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line"> </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 class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1819" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1851', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</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">date</tt> <tt class="py-op">=</tt> <tt id="link-1852" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1852', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1853" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-1853', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt> </tt>
+<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line"> </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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-name">DatetimeElement</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">        <tt class="py-name">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 class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1854" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1819', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line"> </tt>
-<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.objectify.BoolElement.pyval
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1854', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line"> </tt>
+<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1855" class="py-name"><a title="lxml.objectify.BoolElement.pyval
 lxml.objectify.NoneElement.pyval
 lxml.objectify.NumberElement.pyval
 lxml.objectify.ObjectifiedDataElement.pyval
-lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1820', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1821" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.StringElement.pyval" class="py-name" href="#" onclick="return doclink('link-1855', 'pyval', 'link-360');">pyval</a></tt><tt class="py-op">,</tt> <tt class="py-name">parse_date</tt><tt class="py-op">(</tt><tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">.</tt><tt id="link-1856" 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-1821', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path"></a><div id="ObjectifyTestCase.test_object_path-def"><a name="L2010"></a><tt class="py-lineno">2010</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path-expanded"><a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">        <tt id="link-1822" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1822', 'root', 'link-144');">root</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.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1856', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">stringify_date</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path"></a><div id="ObjectifyTestCase.test_object_path-def"><a name="L2054"></a><tt class="py-lineno">2054</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path-expanded"><a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">        <tt id="link-1857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1857', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1858" 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-1823', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1824" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1858', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1859" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1824', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt id="link-1825" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1825', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1826" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1826', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name" targets="Class lxml.objectify.ObjectPath=lxml.objectify.ObjectPath-class.html"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1827', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </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-1828" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1828', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1829" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1859', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line">        <tt id="link-1860" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1860', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1861" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1861', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name" targets="Class lxml.objectify.ObjectPath=lxml.objectify.ObjectPath-class.html"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1862', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1863', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1864" 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-1829', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1830" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1830', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1831" 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
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1864', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1865" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1865', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1866" 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-1831', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-1832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1832', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1833" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-1866', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-1867" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1867', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1868" 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-1833', 'text', 'link-311');">text</a></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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1834" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1834', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1835" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1868', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1869" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1869', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1870" 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-1835', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1836" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1836', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1837" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1837', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1838" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1870', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1871" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1871', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1872" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1872', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1873" 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-1838', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_list"></a><div id="ObjectifyTestCase.test_object_path_list-def"><a name="L2016"></a><tt class="py-lineno">2016</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_list-expanded"><a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">        <tt id="link-1839" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1839', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1873', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_list"></a><div id="ObjectifyTestCase.test_object_path_list-def"><a name="L2060"></a><tt class="py-lineno">2060</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_list-expanded"><a name="L2061"></a><tt class="py-lineno">2061</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1840', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1841" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1875', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1876" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1841', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">        <tt id="link-1842" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1842', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1843" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1843', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1844" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1844', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1845" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1845', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1876', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt id="link-1877" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1877', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1878" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1878', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1879" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1879', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1880', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1881" 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-1846', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1847" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1847', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1848" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1881', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1882" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1882', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1883" 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-1848', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-1849" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1849', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-1883', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-1884" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1884', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1885" 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-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">        <tt 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.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1851', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-1885', 'text', 'link-311');">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 id="link-1886" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1886', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1887" 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-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1853" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1853', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1854" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1854', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1855" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1887', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1888" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1888', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1889" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1889', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1890" 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-1855', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_fail"></a><div id="ObjectifyTestCase.test_object_path_fail-def"><a name="L2022"></a><tt class="py-lineno">2022</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_fail-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_fail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_fail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_fail-expanded"><a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">        <tt id="link-1856" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1856', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1857" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1890', 'text', 'link-311');">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="ObjectifyTestCase.test_object_path_fail"></a><div id="ObjectifyTestCase.test_object_path_fail-def"><a name="L2066"></a><tt class="py-lineno">2066</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_fail-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_fail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_fail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_fail-expanded"><a name="L2067"></a><tt class="py-lineno">2067</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-144');">root</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.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1857', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1858" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1892', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1893" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1858', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">        <tt id="link-1859" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1859', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1860" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1860', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1861" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1861', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-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">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-1862" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1862', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-1863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1863', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_default_absolute"></a><div id="ObjectifyTestCase.test_object_path_default_absolute-def"><a name="L2027"></a><tt class="py-lineno">2027</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_default_absolute-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_default_absolute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_default_absolute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_default_absolute-expanded"><a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">        <tt id="link-1864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1864', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1893', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">        <tt id="link-1894" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1894', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1895" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1895', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1896" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1896', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-1897" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1897', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-1898" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1898', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_default_absolute"></a><div id="ObjectifyTestCase.test_object_path_default_absolute-def"><a name="L2071"></a><tt class="py-lineno">2071</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_default_absolute-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_default_absolute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_default_absolute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_default_absolute-expanded"><a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt id="link-1899" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1899', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1900" 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-1865', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1866" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1900', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1901" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1866', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line">        <tt id="link-1867" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1867', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1868" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1868', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1869', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1870" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1870', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1871', 'root', 'link-144');">root</a></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="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">        <tt id="link-1872" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1872', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1873" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1873', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1874" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1874', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c99.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-1875" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1875', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1876" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1876', 'root', 'link-144');">root</a></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="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">        <tt id="link-1877" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1877', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1878" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1878', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1879" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1879', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"notroot.c99.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1880" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1880', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_default_relative"></a><div id="ObjectifyTestCase.test_object_path_default_relative-def"><a name="L2036"></a><tt class="py-lineno">2036</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_default_relative-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_default_relative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_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="ObjectifyTestCase.test_object_path_default_relative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_default_relative-expanded"><a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">        <tt id="link-1882" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1882', 'root', 'link-144');">root</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
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1883', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1884" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1901', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">        <tt id="link-1902" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1902', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1903" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1903', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1904" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1904', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">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 id="link-1905" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1905', 'path', 'link-0');">path</a></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-144');">root</a></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="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line">        <tt id="link-1907" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1907', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1908" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1908', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1909" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1909', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c99.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1910" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1910', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1911" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1911', 'root', 'link-144');">root</a></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="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">        <tt id="link-1912" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1912', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1913" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1913', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1914" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1914', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"notroot.c99.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-1915" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1915', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1916" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1916', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_default_relative"></a><div id="ObjectifyTestCase.test_object_path_default_relative-def"><a name="L2080"></a><tt class="py-lineno">2080</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_default_relative-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_default_relative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_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="ObjectifyTestCase.test_object_path_default_relative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_default_relative-expanded"><a name="L2081"></a><tt class="py-lineno">2081</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-144');">root</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
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1918', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1919" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1884', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">        <tt id="link-1885" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1885', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1886" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1886', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1887', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">".c1.c99"</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-name">None</tt><tt class="py-op">,</tt> <tt id="link-1888" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1888', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1889" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1889', 'root', 'link-144');">root</a></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="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line">        <tt id="link-1890" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1890', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1891" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1891', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1892', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">".c99.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-1893" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1893', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_syntax"></a><div id="ObjectifyTestCase.test_object_path_syntax-def"><a name="L2043"></a><tt class="py-lineno">2043</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_syntax-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_syntax');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_syntax-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_syntax-expanded"><a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">        <tt id="link-1895" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1895', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1896" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1919', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt id="link-1920" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1920', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1921" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1921', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1922" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1922', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">".c1.c99"</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1923" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1923', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1924" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1924', 'root', 'link-144');">root</a></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="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">        <tt id="link-1925" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1925', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1926" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1926', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1927" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1927', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">".c99.c2"</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1928', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1929" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1929', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_syntax"></a><div id="ObjectifyTestCase.test_object_path_syntax-def"><a name="L2087"></a><tt class="py-lineno">2087</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_syntax-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_syntax');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_syntax-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_syntax-expanded"><a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt id="link-1930" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1930', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1931" 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-1896', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1897" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1931', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1932" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1897', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">        <tt id="link-1898" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1898', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1899" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1899', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1900" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1900', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root .    {objectified}c1.   c2"</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">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1901', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1902" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1932', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line">        <tt id="link-1933" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1933', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1934" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1934', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1935', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root .    {objectified}c1.   c2"</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 id="link-1936" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1936', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1937" 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-1902', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1903" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1903', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1904" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1904', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1905" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1937', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1938" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1938', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1939" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1939', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1940" 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-1905', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line"> </tt>
-<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">        <tt id="link-1906" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1906', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1907" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1907', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1908" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1908', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"   root.{objectified}  c1.c2  [ 0 ]   "</tt><tt class="py-op">)</tt> </tt>
-<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1909" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1909', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1940', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line"> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt id="link-1941" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1941', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1942" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1942', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1943" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1943', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"   root.{objectified}  c1.c2  [ 0 ]   "</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 id="link-1944" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1944', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1945" 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-1910', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1911" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1911', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1912" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1912', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1945', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1946" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1946', 'path', 'link-0');">path</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1948" 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-1913', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_fail_parse_empty"></a><div id="ObjectifyTestCase.test_object_path_fail_parse_empty-def"><a name="L2051"></a><tt class="py-lineno">2051</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_fail_parse_empty-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_fail_parse_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_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="ObjectifyTestCase.test_object_path_fail_parse_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_fail_parse_empty-expanded"><a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-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-1914" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1914', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1915" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1915', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_fail_parse_empty_list"></a><div id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-def"><a name="L2054"></a><tt class="py-lineno">2054</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_fail_parse_empty_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-expanded"><a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-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-1916" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1916', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1917" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1917', 'ObjectPath', 'link-1827');">ObjectPath</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="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_hasattr"></a><div id="ObjectifyTestCase.test_object_path_hasattr-def"><a name="L2057"></a><tt class="py-lineno">2057</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_hasattr-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_hasattr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_hasattr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_hasattr-expanded"><a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line">        <tt id="link-1918" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1918', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1919" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1948', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_fail_parse_empty"></a><div id="ObjectifyTestCase.test_object_path_fail_parse_empty-def"><a name="L2095"></a><tt class="py-lineno">2095</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_fail_parse_empty-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_fail_parse_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_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="ObjectifyTestCase.test_object_path_fail_parse_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_fail_parse_empty-expanded"><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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1949" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1949', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1950', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_fail_parse_empty_list"></a><div id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-def"><a name="L2098"></a><tt class="py-lineno">2098</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_fail_parse_empty_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_fail_parse_empty_list-expanded"><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">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1951" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1951', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1952" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1952', 'ObjectPath', 'link-1862');">ObjectPath</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="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_hasattr"></a><div id="ObjectifyTestCase.test_object_path_hasattr-def"><a name="L2101"></a><tt class="py-lineno">2101</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_hasattr-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_hasattr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_hasattr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_hasattr-expanded"><a name="L2102"></a><tt class="py-lineno">2102</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-144');">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.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1919', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1920" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1954', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1955" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1920', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">        <tt id="link-1921" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1921', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1922" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1922', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1923', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1924" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1924', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1925" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1925', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1926', 'root', 'link-144');">root</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 id="link-1927" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1927', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1928" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1928', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1929" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1929', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1930" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1930', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1931" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1931', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1932" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1932', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">        <tt id="link-1933" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1933', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1934" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1934', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1935', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1936" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1936', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1937" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1937', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1938" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1938', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">        <tt id="link-1939" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1939', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1940" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1940', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1941" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1941', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.{otherNS}c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1942" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1942', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1943" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1943', 'hasattr', 'link-1925');">hasattr</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">        <tt id="link-1945" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1945', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1946" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1946', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1947" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1947', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[1]"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1948" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1948', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1949" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1949', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1950" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1950', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt id="link-1951" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1951', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1952" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1952', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1953" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1953', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[2]"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1954" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1954', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1955" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1955', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1956" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1956', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">        <tt id="link-1957" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1957', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1958" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1958', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1959" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1959', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[3]"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1960', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1961" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1961', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1962" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1962', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1963" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1963', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">        <tt id="link-1964" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1964', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1965" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1965', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1966', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[1].c2"</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">self</tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1967', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1968" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1968', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1969" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1969', 'hasattr', 'link-1925');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1970" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1970', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_dot"></a><div id="ObjectifyTestCase.test_object_path_dot-def"><a name="L2076"></a><tt class="py-lineno">2076</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_dot-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot-expanded"><a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">        <tt id="link-1971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1971', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1972" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1972', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1973" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1955', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line">        <tt id="link-1956" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1956', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1957" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1957', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1958" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1958', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1959" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1959', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1960', 'hasattr', 'link-1960');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1961" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1961', 'root', 'link-144');">root</a></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 id="link-1962" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1962', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1963" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1963', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1964', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1965" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1965', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1966', 'hasattr', 'link-1960');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1967" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1967', 'root', 'link-144');">root</a></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 id="link-1968" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1968', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1969" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1969', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1970" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1970', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1971" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1971', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1972" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1972', 'hasattr', 'link-1960');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1973" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1973', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">        <tt id="link-1974" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1974', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1975" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1975', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1976" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1976', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.{otherNS}c2"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1977" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1977', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1978" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1978', 'hasattr', 'link-1960');">hasattr</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt id="link-1980" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1980', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1981" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1981', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1982" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1982', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[1]"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1983" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1983', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1984', 'hasattr', 'link-1960');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1985" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1985', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">        <tt id="link-1986" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1986', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1987" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1987', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1988" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1988', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[2]"</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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1989" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1989', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1990', 'hasattr', 'link-1960');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-1991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1991', 'root', 'link-144');">root</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 id="link-1992" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1992', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1993" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1993', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1994" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1994', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[3]"</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 id="link-1995" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-1995', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-1996" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1996', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-1997', 'hasattr', 'link-1960');">hasattr</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt id="link-1999" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1999', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2000" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2000', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2001" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2001', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[1].c2"</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 id="link-2002" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2002', 'assertFalse', 'link-614');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-2003" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2003', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2004" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-2004', 'hasattr', 'link-1960');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-2005" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2005', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_dot"></a><div id="ObjectifyTestCase.test_object_path_dot-def"><a name="L2120"></a><tt class="py-lineno">2120</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_dot-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot-expanded"><a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt id="link-2006" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2006', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2007" 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-2007', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2008" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1973', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">        <tt id="link-1974" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1974', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1975" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1975', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1976" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1976', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"."</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1977" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1977', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1978" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2008', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt id="link-2009" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2009', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2010" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2010', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2011', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"."</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2013" 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-1978', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1979" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1979', 'path', 'link-0');">path</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1981" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2013', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2014" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2014', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2016" 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-1981', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_dot_list"></a><div id="ObjectifyTestCase.test_object_path_dot_list-def"><a name="L2081"></a><tt class="py-lineno">2081</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_dot_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot_list-expanded"><a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt id="link-1982" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1982', 'root', 'link-144');">root</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
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2016', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_dot_list"></a><div id="ObjectifyTestCase.test_object_path_dot_list-def"><a name="L2125"></a><tt class="py-lineno">2125</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_dot_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot_list-expanded"><a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt id="link-2017" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2017', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2018" 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-1983', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1984" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2018', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2019" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1984', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">        <tt id="link-1985" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1985', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1986" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1986', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1987', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1988" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1988', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2019', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">        <tt id="link-2020" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2020', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2021" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2021', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2022" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2022', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">''</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 id="link-2023" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2023', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2024" 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-1989', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1990" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1990', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-1991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1991', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-1992" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2024', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2025" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2025', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2026" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2026', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2027" 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-1992', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_dot_root"></a><div id="ObjectifyTestCase.test_object_path_dot_root-def"><a name="L2086"></a><tt class="py-lineno">2086</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot_root-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_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="ObjectifyTestCase.test_object_path_dot_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot_root-expanded"><a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line">        <tt id="link-1993" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1993', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1994" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2027', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_dot_root"></a><div id="ObjectifyTestCase.test_object_path_dot_root-def"><a name="L2130"></a><tt class="py-lineno">2130</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot_root-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_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="ObjectifyTestCase.test_object_path_dot_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot_root-expanded"><a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt id="link-2028" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2028', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2029" 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-1994', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1995" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2029', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2030" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-1995', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt id="link-1996" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-1996', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-1997" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-1997', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-1998" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-1998', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">".c1.c2"</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 id="link-1999" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1999', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2000" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2030', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt id="link-2031" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2031', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2032" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2032', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2033', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">".c1.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2034" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2034', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2035" 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-2000', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2001" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2001', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2002" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2002', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2035', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2036" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2036', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2038" 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-2003', 'text', 'link-311');">text</a></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="ObjectifyTestCase.test_object_path_dot_root_list"></a><div id="ObjectifyTestCase.test_object_path_dot_root_list-def"><a name="L2091"></a><tt class="py-lineno">2091</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot_root_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot_root_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_dot_root_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot_root_list-expanded"><a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt id="link-2004" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2004', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2038', 'text', 'link-311');">text</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="ObjectifyTestCase.test_object_path_dot_root_list"></a><div id="ObjectifyTestCase.test_object_path_dot_root_list-def"><a name="L2135"></a><tt class="py-lineno">2135</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_dot_root_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_dot_root_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_dot_root_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_dot_root_list-expanded"><a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt id="link-2039" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2039', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2040" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2005', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2006" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2040', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2041" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2006', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">        <tt id="link-2007" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2007', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2008" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2008', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2009" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2009', 'ObjectPath', 'link-1827');">ObjectPath</a></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">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</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 id="link-2010" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2010', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2041', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt id="link-2042" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2042', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2043" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2043', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2044', 'ObjectPath', 'link-1862');">ObjectPath</a></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">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2045" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2045', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2046" 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-2011', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2012" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2012', 'path', 'link-0');">path</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2014" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2046', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2047" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2047', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2048" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2048', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2049" 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-2014', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_index"></a><div id="ObjectifyTestCase.test_object_path_index-def"><a name="L2096"></a><tt class="py-lineno">2096</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_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="ObjectifyTestCase.test_object_path_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index-expanded"><a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">        <tt id="link-2015" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2015', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2016" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2049', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_index"></a><div id="ObjectifyTestCase.test_object_path_index-def"><a name="L2140"></a><tt class="py-lineno">2140</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_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="ObjectifyTestCase.test_object_path_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index-expanded"><a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">        <tt id="link-2050" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2050', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2051" 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-2016', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2017" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2051', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2052" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2017', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">        <tt id="link-2018" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2018', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2019" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2019', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2020" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2020', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[0].c2[0]"</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">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2022" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2052', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt id="link-2053" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2053', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2054" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2054', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2055" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2055', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[0].c2[0]"</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 id="link-2056" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2056', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2057" 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-2022', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2023" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2023', 'path', 'link-0');">path</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2025" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2057', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2058" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2058', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2059" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2059', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2060" 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-2025', 'text', 'link-311');">text</a></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 id="link-2026" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2026', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2027" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2027', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2028', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[0].c2"</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 id="link-2029" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2029', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2030" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2060', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line"> </tt>
+<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">        <tt id="link-2061" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2061', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2062" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2062', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2063" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2063', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[0].c2"</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 id="link-2064" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2064', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2065" 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-2030', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2031" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2031', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2065', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2066" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2066', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2067" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2067', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2068" 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-2033', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line"> </tt>
-<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">        <tt id="link-2034" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2034', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2035" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2035', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2036" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2036', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[0].c2[1]"</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 id="link-2037" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2037', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2068', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line"> </tt>
+<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">        <tt id="link-2069" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2069', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2070" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2070', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2071" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2071', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1[0].c2[1]"</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 id="link-2072" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2072', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2073" 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-2038', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2039" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2039', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2040" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2040', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2073', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2074', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2075" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2075', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2076" 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-2041', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line"> </tt>
-<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">        <tt id="link-2042" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2042', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2043" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2043', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2044', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[2]"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2045" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2045', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2046" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2076', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line"> </tt>
+<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt id="link-2077" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2077', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2078" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2078', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2079" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2079', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[2]"</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 id="link-2080" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2080', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2081" 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-2046', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2047" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2047', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2048" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2048', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2049" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2081', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2082" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2082', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2083" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2083', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2084" 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-2049', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line"> </tt>
-<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">        <tt id="link-2050" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2050', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2051" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2051', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2052" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2052', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[-1]"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2053" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2053', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2054" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2084', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line"> </tt>
+<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">        <tt id="link-2085" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2085', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2086', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2087" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2087', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[-1]"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2089" 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-2054', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2055" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2055', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2057" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2089', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2090" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2090', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2091" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2091', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2092" 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-2057', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line"> </tt>
-<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">        <tt id="link-2058" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2058', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2059" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2059', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2060" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2060', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[-3]"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2061" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2061', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 id="link-2062" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2092', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line"> </tt>
+<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">        <tt id="link-2093" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2093', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2094" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2094', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2095', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2[-3]"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2096" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2096', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 id="link-2097" 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-2062', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2063" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2063', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2064" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2064', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2065" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2097', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2098" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2098', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2099" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2099', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2100" 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-2065', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_index_list"></a><div id="ObjectifyTestCase.test_object_path_index_list-def"><a name="L2116"></a><tt class="py-lineno">2116</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_index_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index_list-expanded"><a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt id="link-2066" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2066', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2067" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2100', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_index_list"></a><div id="ObjectifyTestCase.test_object_path_index_list-def"><a name="L2160"></a><tt class="py-lineno">2160</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_index_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index_list-expanded"><a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt id="link-2101" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2101', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2102" 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-2067', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2068" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2102', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2103" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2068', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">        <tt id="link-2069" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2069', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2070" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2070', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2071" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2071', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1[0]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[0]'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2072" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2072', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2073" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2103', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">        <tt id="link-2104" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2104', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2105" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2105', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2106" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2106', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1[0]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[0]'</tt><tt class="py-op">]</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 id="link-2107" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2107', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2108" 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-2073', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2074', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2075" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2075', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2076" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2108', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2109" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2109', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2110" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2110', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2111" 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-2076', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line"> </tt>
-<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt id="link-2077" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2077', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2078" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2078', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2079" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2079', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1[0]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[2]'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2080" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2080', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2111', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line"> </tt>
+<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line">        <tt id="link-2112" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2112', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2113" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2113', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2114', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1[0]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[2]'</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2115" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2115', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2116" 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-2081', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2082" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2082', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2083" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2083', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2116', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2117" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2117', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2118', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2119" 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-2084', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line"> </tt>
-<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">        <tt id="link-2085" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2085', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2086', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2087" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2087', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[2]'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2089" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2119', 'text', 'link-311');">text</a></tt><tt class="py-op">)</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-2120" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2120', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2121" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2121', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2122', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[2]'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2123" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2123', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2124" 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-2089', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2090" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2090', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2091" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2091', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2124', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2125" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2125', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2127" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2092', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line"> </tt>
-<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">        <tt id="link-2093" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2093', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2094" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2094', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2095', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[-1]'</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 id="link-2096" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2096', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2097" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2127', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line"> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt id="link-2128" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2128', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2129" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2129', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2130" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2130', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[-1]'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2132" 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-2097', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2098" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2098', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2099" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2099', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2100" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2132', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2133" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2133', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2134" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2134', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2135" 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-2100', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line"> </tt>
-<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line">        <tt id="link-2101" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2101', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2102" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2102', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2103" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2103', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[-3]'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2104" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2104', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 id="link-2105" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2135', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line"> </tt>
+<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt id="link-2136" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2136', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2137" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2137', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2138" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2138', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[-3]'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2139" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2139', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 id="link-2140" 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-2105', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2106" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2106', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2107" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2107', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2108" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2140', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2141" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2141', 'path', 'link-0');">path</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2143" 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-2108', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_index_fail_parse"></a><div id="ObjectifyTestCase.test_object_path_index_fail_parse-def"><a name="L2133"></a><tt class="py-lineno">2133</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index_fail_parse-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index_fail_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_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="ObjectifyTestCase.test_object_path_index_fail_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index_fail_parse-expanded"><a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-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-2109" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2109', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2110" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2110', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">                          <tt class="py-string">"root.c1[0].c2[-1-2]"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2111" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2111', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2112" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2112', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1[0]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[-1-2]'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line"> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2113" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2113', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2114', 'ObjectPath', 'link-1827');">ObjectPath</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-string">"root[2].c1.c2"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2115" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2115', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2116', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-string">'root[2]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2117" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2117', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2118" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2118', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">                          <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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2119" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2119', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2120" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2120', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">                          <tt class="py-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-string">''</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_index_fail_lookup"></a><div id="ObjectifyTestCase.test_object_path_index_fail_lookup-def"><a name="L2149"></a><tt class="py-lineno">2149</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index_fail_lookup-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index_fail_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_index_fail_lookup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index_fail_lookup-expanded"><a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line">        <tt id="link-2121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2121', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2143', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_index_fail_parse"></a><div id="ObjectifyTestCase.test_object_path_index_fail_parse-def"><a name="L2177"></a><tt class="py-lineno">2177</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index_fail_parse-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index_fail_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_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="ObjectifyTestCase.test_object_path_index_fail_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index_fail_parse-expanded"><a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2144" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2144', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2145" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2145', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">                          <tt class="py-string">"root.c1[0].c2[-1-2]"</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">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-2146" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2146', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2147" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2147', 'ObjectPath', 'link-1862');">ObjectPath</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-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1[0]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2[-1-2]'</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>
+<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-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-2148" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2148', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2149" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2149', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">                          <tt class="py-string">"root[2].c1.c2"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2150" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2150', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2151', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-string">'root[2]'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</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>
+<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-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-2152" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2152', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2153" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2153', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-op">]</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2154" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2154', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2155" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2155', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">                          <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-string">''</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_index_fail_lookup"></a><div id="ObjectifyTestCase.test_object_path_index_fail_lookup-def"><a name="L2193"></a><tt class="py-lineno">2193</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_index_fail_lookup-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_index_fail_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_index_fail_lookup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_index_fail_lookup-expanded"><a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">        <tt id="link-2156" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2156', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2157" 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-2122', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2123" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2157', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2158" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2123', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt id="link-2124" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2124', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2125" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2125', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2126" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2126', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[9999].c2"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2127" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2127', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line"> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">        <tt id="link-2129" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2129', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2130" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2130', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2131" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2131', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[0].c2[9999]"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2132" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2132', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line"> </tt>
-<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">        <tt id="link-2134" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2134', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2135" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2135', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2136" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2136', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">".c1[9999].c2[0]"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2137" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2137', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line"> </tt>
-<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">        <tt id="link-2139" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2139', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2140" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2140', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2141" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2141', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[-2].c2"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2142" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2142', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line"> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">        <tt id="link-2144" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2144', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2145" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2145', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2146" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2146', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[0].c2[-4]"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2147" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2147', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-2148" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2148', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_ns"></a><div id="ObjectifyTestCase.test_object_path_ns-def"><a name="L2166"></a><tt class="py-lineno">2166</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_ns-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_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="ObjectifyTestCase.test_object_path_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_ns-expanded"><a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt id="link-2149" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2149', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2150" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2150', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2151" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2158', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">        <tt id="link-2159" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2159', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2160" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2160', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2161', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[9999].c2"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2162" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2162', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-2163" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2163', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line"> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">        <tt id="link-2164" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2164', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2165" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2165', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2166" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2166', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[0].c2[9999]"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2167" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2167', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-2168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2168', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line"> </tt>
+<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">        <tt id="link-2169" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2169', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2170" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2170', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2171" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2171', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">".c1[9999].c2[0]"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2172" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2172', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-2173" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2173', 'root', 'link-144');">root</a></tt><tt class="py-op">)</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-2174" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2174', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2175" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2175', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2176', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[-2].c2"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2177" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2177', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-2178" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2178', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line"> </tt>
+<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt id="link-2179" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2179', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2180" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2180', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2181', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"root.c1[0].c2[-4]"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2182" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2182', 'path', 'link-0');">path</a></tt><tt class="py-op">,</tt> <tt id="link-2183" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2183', 'root', 'link-144');">root</a></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="ObjectifyTestCase.test_object_path_ns"></a><div id="ObjectifyTestCase.test_object_path_ns-def"><a name="L2210"></a><tt class="py-lineno">2210</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_ns-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_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="ObjectifyTestCase.test_object_path_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_ns-expanded"><a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt id="link-2184" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2184', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2185" 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-2185', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2186" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2151', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt id="link-2152" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2152', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2153" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2153', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2154" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2154', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"{objectified}root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2155" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2155', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2156" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2186', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">        <tt id="link-2187" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2187', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2188" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2188', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2189" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2189', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"{objectified}root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2190', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2191" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2156', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2157" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2157', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2158" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2191', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2192" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2192', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2193" 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-2158', 'find', 'link-1831');">find</a></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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2160" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2193', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2194" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2194', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2195" 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-2160', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">        <tt id="link-2161" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2161', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2162" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2162', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2163" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2163', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"{objectified}root.{objectified}c1.c2"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2165" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2195', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">        <tt id="link-2196" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2196', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2197" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2197', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2198" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2198', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"{objectified}root.{objectified}c1.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2200" 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-2165', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2166" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2166', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2167" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2200', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2201" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2201', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2202" 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-2167', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2168', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2169" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2202', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2203" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2203', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2204" 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-2169', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">        <tt id="link-2170" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2170', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2171" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2171', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2172" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2172', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.{objectified}c1.{objectified}c2"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2173" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2173', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2174" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2204', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">        <tt id="link-2205" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2205', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2206" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2206', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2207" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2207', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.{objectified}c1.{objectified}c2"</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 id="link-2208" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2208', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2209" 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-2174', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2175" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2175', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2209', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2210" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2210', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2211" 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-2176', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2177" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2177', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2211', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2212" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2212', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2213" 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-2178', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt id="link-2179" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2179', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2180" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2180', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2181', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.{objectified}c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2182" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2182', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2183" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2213', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt id="link-2214" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2214', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2215" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2215', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2216" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2216', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.{objectified}c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2218" 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-2183', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2184" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2184', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2185" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2218', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2219" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2219', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2220" 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-2185', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2186" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2186', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2187" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2220', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2221', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2222" 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-2187', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">        <tt id="link-2188" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2188', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2189" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2189', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2190', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.{otherNS}c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-2191" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2191', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">,</tt> <tt class="py-string">'{otherNS}c2'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2192" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2222', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">        <tt id="link-2223" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2223', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2224" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2224', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2225', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.{otherNS}c2"</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-name">getattr</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">,</tt> <tt class="py-string">'{otherNS}c2'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2227" 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-2192', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">                          <tt id="link-2193" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2193', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2194" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2227', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">                          <tt id="link-2228" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2228', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2229" 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-2194', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2195" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2195', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2196" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2229', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2230', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2231" 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-2196', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_ns_list"></a><div id="ObjectifyTestCase.test_object_path_ns_list-def"><a name="L2180"></a><tt class="py-lineno">2180</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_ns_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_ns_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_ns_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_ns_list-expanded"><a name="L2181"></a><tt class="py-lineno">2181</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2198" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2231', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_ns_list"></a><div id="ObjectifyTestCase.test_object_path_ns_list-def"><a name="L2224"></a><tt class="py-lineno">2224</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_ns_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_ns_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_ns_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_ns_list-expanded"><a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">        <tt id="link-2232" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2232', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2233" 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-2198', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2199" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2233', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2234" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2199', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">        <tt id="link-2200" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2200', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2201" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2201', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2202" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2202', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'{objectified}root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">        <tt class="py-name">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2203', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2204" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2234', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">        <tt id="link-2235" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2235', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2236" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2236', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2237" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2237', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'{objectified}root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2238" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2238', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2239" 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-2204', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2205" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2205', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2206" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2239', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2240" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2240', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2241" 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-2206', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2207" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2207', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2208" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2241', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2242" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2242', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2243" 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-2208', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">        <tt id="link-2209" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2209', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2210" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2210', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2211" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2211', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'{objectified}root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</tt><tt class="py-op">]</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 id="link-2212" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2212', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2213" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2243', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">        <tt id="link-2244" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2244', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2245" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2245', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2246" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2246', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'{objectified}root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'c2'</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">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2247', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2248" 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-2213', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2214" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2214', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2215" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2248', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2249" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2249', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2250" 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-2215', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2216" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2216', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2250', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2251" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2251', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2252" 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-2217', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">        <tt id="link-2218" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2218', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2219" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2219', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2220" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2220', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2'</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">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2221', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2222" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2252', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">        <tt id="link-2253" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2253', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2254" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2254', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2255', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2256" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2256', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2257" 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-2222', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2223" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2223', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2224" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2257', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2258" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2258', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2259" 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-2224', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2225" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2225', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2226" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2259', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2260" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2260', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2261" 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-2226', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">        <tt id="link-2227" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2227', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2228" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2228', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2229', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2[2]'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2230', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2261', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt id="link-2262" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2262', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2263" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2263', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2264', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2[2]'</tt><tt class="py-op">]</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">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2265', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2266" 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-2231', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2232" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2232', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2233" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2266', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2267" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2267', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2268" 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-2233', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2234" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2234', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2235" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2268', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2269" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2269', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2270" 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-2235', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">        <tt id="link-2236" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2236', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2237" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2237', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2238" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2238', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2270', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt id="link-2271" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2271', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2272" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2272', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2273', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2'</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2274" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2274', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2275" 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-2240', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2241" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2241', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2275', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2276" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2276', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2277" 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-2242', 'find', 'link-1831');">find</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2244" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2277', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2278', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2279" 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-2244', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line">        <tt id="link-2245" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2245', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2246" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2246', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2247" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2247', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2[2]'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2248" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2248', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2249" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2279', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">        <tt id="link-2280" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2280', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2281" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2281', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2282" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2282', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c2[2]'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2283" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2283', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2284" 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-2249', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2250" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2250', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2284', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2285" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2285', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2286" 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-2251', 'find', 'link-1831');">find</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2286', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2287" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2287', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2288" 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-2253', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">        <tt id="link-2254" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2254', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2255" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2255', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2256" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2256', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{otherNS}c2'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-2257" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2257', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">,</tt> <tt class="py-string">'{otherNS}c2'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2258" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2288', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">        <tt id="link-2289" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2289', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2290" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2290', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2291" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2291', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt class="py-string">'c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{otherNS}c2'</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 class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-2292" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2292', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">,</tt> <tt class="py-string">'{otherNS}c2'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2293" 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-2258', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">                          <tt id="link-2259" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2259', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2260" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2293', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">                          <tt id="link-2294" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2294', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2295" 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-2260', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2261" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2261', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2262" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2295', 'find', 'link-1866');">find</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2297" 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-2262', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_set"></a><div id="ObjectifyTestCase.test_object_path_set-def"><a name="L2198"></a><tt class="py-lineno">2198</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set-expanded"><a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt id="link-2263" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2263', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2297', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_set"></a><div id="ObjectifyTestCase.test_object_path_set-def"><a name="L2242"></a><tt class="py-lineno">2242</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set-expanded"><a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">        <tt id="link-2298" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2298', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2299" 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-2264', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2265" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2299', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2300" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2265', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">        <tt id="link-2266" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2266', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2267" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2267', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2268" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2268', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2269" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2269', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2300', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">        <tt id="link-2301" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2301', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2302" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2302', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2303" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2303', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</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 id="link-2304" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2304', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2305" 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-2270', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2271" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2271', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2272" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2305', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2306" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2306', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2307" 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-2272', 'find', 'link-1831');">find</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2307', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2308" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2308', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2309" 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-2274', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt id="link-2275" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2275', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2276" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2309', 'text', 'link-311');">text</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt id="link-2310" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2310', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2311" 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-2276', 'text', 'link-311');">text</a></tt><tt class="py-op">)</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 class="py-name">new_value</tt> <tt class="py-op">=</tt> <tt class="py-string">"my new value"</tt> </tt>
-<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line">        <tt id="link-2277" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2277', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2278" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2278', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2279" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2279', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line"> </tt>
-<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2280', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2281" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2311', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line"> </tt>
+<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">        <tt class="py-name">new_value</tt> <tt class="py-op">=</tt> <tt class="py-string">"my new value"</tt> </tt>
+<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt id="link-2312" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2312', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2313', 'setattr', 'link-501');">setattr</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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line"> </tt>
+<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2315" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2315', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2316" 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-2281', 'text', 'link-311');">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-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2282" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2282', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2316', 'text', 'link-311');">text</a></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 class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2317" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2317', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2318" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2318', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2319" 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-2284', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt id="link-2285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2285', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2286" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2319', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"1"</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2321" 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-2286', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_set_element"></a><div id="ObjectifyTestCase.test_object_path_set_element-def"><a name="L2211"></a><tt class="py-lineno">2211</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_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="ObjectifyTestCase.test_object_path_set_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_element-expanded"><a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">        <tt id="link-2287" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2287', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2288" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2321', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_set_element"></a><div id="ObjectifyTestCase.test_object_path_set_element-def"><a name="L2255"></a><tt class="py-lineno">2255</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_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="ObjectifyTestCase.test_object_path_set_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_element-expanded"><a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">        <tt id="link-2322" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2322', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2323" 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-2288', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2289" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2323', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2324" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2289', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt id="link-2290" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2290', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2291" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2291', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2292', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2294" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2324', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt id="link-2325" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2325', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2326" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2326', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2327" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2327', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</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 id="link-2328" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2328', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2329" 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-2294', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2295" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2295', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2329', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2330" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2330', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2331" 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-2296', 'find', 'link-1831');">find</a></tt><tt class="py-op">(</tt><tt id="link-2297" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2297', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2331', 'find', 'link-1866');">find</a></tt><tt class="py-op">(</tt><tt id="link-2332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2332', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2333" 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-2298', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt 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">"1"</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2300" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2333', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt id="link-2334" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2334', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2335" 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-2300', 'text', 'link-311');">text</a></tt><tt class="py-op">)</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 class="py-name">new_el</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.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2335', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line"> </tt>
+<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2336" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2301', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt id="link-2302" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2336', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">        <tt id="link-2337" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2302', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2303" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2303', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">,</tt> <tt class="py-name">myattr</tt><tt class="py-op">=</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
-<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt id="link-2304" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2304', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2305', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2306" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2306', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line"> </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-string">"ATTR"</tt><tt class="py-op">,</tt> <tt id="link-2307" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2307', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2308" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2337', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2338" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2338', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">,</tt> <tt class="py-name">myattr</tt><tt class="py-op">=</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
+<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line">        <tt id="link-2339" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2339', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2340" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2340', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2341" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2341', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line"> </tt>
+<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt 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">"ATTR"</tt><tt class="py-op">,</tt> <tt id="link-2342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2342', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-2343" 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-2308', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">        <tt 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-2309" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2309', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2310" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2343', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</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">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-2344" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2344', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2345" 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-2310', 'text', 'link-311');">text</a></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">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-2311" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2311', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2312" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2312', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2345', 'text', 'link-311');">text</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">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-2346" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2346', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2347" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2347', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2348" 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-2313', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt 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">"1"</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2315" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2348', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt id="link-2349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2349', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-2350" 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-2315', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_set_create"></a><div id="ObjectifyTestCase.test_object_path_set_create-def"><a name="L2226"></a><tt class="py-lineno">2226</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_create-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_create');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_set_create-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_create-expanded"><a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">        <tt id="link-2316" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2316', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2350', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_set_create"></a><div id="ObjectifyTestCase.test_object_path_set_create-def"><a name="L2270"></a><tt class="py-lineno">2270</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_create-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_create');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_set_create-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_create-expanded"><a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt id="link-2351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2351', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2352" 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-2317', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2318" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2352', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2353" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2318', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">        <tt id="link-2319" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2319', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2320" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2320', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2321" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2321', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2322" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2322', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2323" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2353', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">        <tt id="link-2354" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2354', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2355" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2355', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2356', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2357" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2357', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2358" 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-2323', 'find', 'link-1831');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2324" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2324', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line"> </tt>
-<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">        <tt class="py-name">new_value</tt> <tt class="py-op">=</tt> <tt class="py-string">"my new value"</tt> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt id="link-2325" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2325', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2326', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2327" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2327', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line"> </tt>
-<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt 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 id="link-2328" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2328', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2329', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2358', 'find', 'link-1866');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2359', 'root', 'link-144');">root</a></tt><tt class="py-op">)</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">new_value</tt> <tt class="py-op">=</tt> <tt class="py-string">"my new value"</tt> </tt>
+<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt id="link-2360" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2360', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2361" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2361', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2362" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2362', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line"> </tt>
+<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt 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 id="link-2363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2363', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2365" 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-2330', 'text', 'link-311');">text</a></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 class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2331" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2331', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2332', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2365', 'text', 'link-311');">text</a></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 class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2366" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2366', 'path', 'link-0');">path</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-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2368" 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-2333', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_set_create_element"></a><div id="ObjectifyTestCase.test_object_path_set_create_element-def"><a name="L2238"></a><tt class="py-lineno">2238</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_create_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_create_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_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="ObjectifyTestCase.test_object_path_set_create_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_create_element-expanded"><a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt id="link-2334" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2334', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2335" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2368', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_set_create_element"></a><div id="ObjectifyTestCase.test_object_path_set_create_element-def"><a name="L2282"></a><tt class="py-lineno">2282</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_create_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_create_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_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="ObjectifyTestCase.test_object_path_set_create_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_create_element-expanded"><a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt id="link-2369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2369', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2370" 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-2335', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2336" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2370', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2371" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2336', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">        <tt id="link-2337" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2337', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2338" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2338', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2339" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2339', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2340" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2340', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2341" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2371', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line">        <tt id="link-2372" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2372', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2373" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2373', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2374', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2375" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2375', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2376" 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-2341', 'find', 'link-1831');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2342', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line"> </tt>
-<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2343" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2376', 'find', 'link-1866');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2377', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line"> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-2343', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">        <tt id="link-2344" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2378', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">        <tt id="link-2379" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2344', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2345', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">,</tt> <tt class="py-name">myattr</tt><tt class="py-op">=</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
-<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">        <tt id="link-2346" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2346', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2347" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2347', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2348" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2348', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line"> </tt>
-<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt 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 id="link-2349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2349', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">,</tt> <tt id="link-2350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2350', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2351" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2379', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2380', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">,</tt> <tt class="py-name">myattr</tt><tt class="py-op">=</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
+<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt id="link-2381" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2381', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2382', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2383" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2383', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line"> </tt>
+<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">        <tt 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 id="link-2384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2384', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">,</tt> <tt id="link-2385" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2385', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2386" 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-2351', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">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-2352" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2352', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2353" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2386', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">        <tt class="py-name">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-2387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2387', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2388" 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-2353', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-2354" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2354', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2355" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2355', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2388', 'text', 'link-311');">text</a></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">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-2389" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2389', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2390" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2390', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2391" 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-2356', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_set_create_list"></a><div id="ObjectifyTestCase.test_object_path_set_create_list-def"><a name="L2252"></a><tt class="py-lineno">2252</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_create_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_create_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_set_create_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_create_list-expanded"><a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt id="link-2357" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2357', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2391', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_set_create_list"></a><div id="ObjectifyTestCase.test_object_path_set_create_list-def"><a name="L2296"></a><tt class="py-lineno">2296</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_set_create_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_set_create_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_set_create_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_set_create_list-expanded"><a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">        <tt id="link-2392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2392', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2393" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2358', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2359" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2393', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2394" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2359', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">        <tt id="link-2360" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2360', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2361" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2361', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2362" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2362', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2363" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2363', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2364" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2394', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">        <tt id="link-2395" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2395', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2396" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2396', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2397" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2397', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2398" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2398', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2399" 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-2364', 'find', 'link-1831');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2365', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line"> </tt>
-<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">new_el</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.Element
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2399', 'find', 'link-1866');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2400', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line"> </tt>
+<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2366', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</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">new_el</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-string">"TEST1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST2"</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">new_el</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-2367" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2367', 'set', 'link-2367');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATTR1"</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">new_el</tt><tt class="py-op">.</tt><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-2368" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2368', 'set', 'link-2367');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATTR2"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line"> </tt>
-<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">        <tt id="link-2369" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2369', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2370', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2371', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">new_el</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="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 class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">len</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt 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">"ATTR1"</tt><tt class="py-op">,</tt> <tt id="link-2373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2373', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2374" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2401', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</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">new_el</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-string">"TEST1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST2"</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">new_el</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-2402" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2402', 'set', 'link-2402');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATTR1"</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">new_el</tt><tt class="py-op">.</tt><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-2403" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2403', 'set', 'link-2402');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATTR2"</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 id="link-2404" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2404', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2405', 'setattr', 'link-501');">setattr</a></tt><tt class="py-op">(</tt><tt id="link-2406" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2406', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">new_el</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="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line"> </tt>
+<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt 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">len</tt><tt class="py-op">(</tt><tt id="link-2407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2407', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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 class="py-string">"ATTR1"</tt><tt class="py-op">,</tt> <tt id="link-2408" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2408', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2409" 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-2374', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST1"</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2376" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2409', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</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 class="py-string">"TEST1"</tt><tt class="py-op">,</tt> <tt id="link-2410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2410', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2411" 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-2376', 'text', 'link-311');">text</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ATTR2"</tt><tt class="py-op">,</tt> <tt id="link-2377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2377', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2378" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2411', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ATTR2"</tt><tt class="py-op">,</tt> <tt id="link-2412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2412', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2413" 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-2378', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST2"</tt><tt class="py-op">,</tt> <tt id="link-2379" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2379', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2380" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2413', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST2"</tt><tt class="py-op">,</tt> <tt id="link-2414" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2414', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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-2415" 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-2380', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST1"</tt><tt class="py-op">,</tt> <tt id="link-2381" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2381', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2382" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2382', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2383" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2415', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST1"</tt><tt class="py-op">,</tt> <tt id="link-2416" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2416', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2417" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2417', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2418" 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-2383', 'text', 'link-311');">text</a></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="ObjectifyTestCase.test_object_path_addattr"></a><div id="ObjectifyTestCase.test_object_path_addattr-def"><a name="L2271"></a><tt class="py-lineno">2271</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_addattr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr-expanded"><a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">        <tt id="link-2384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2384', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2385" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2418', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_addattr"></a><div id="ObjectifyTestCase.test_object_path_addattr-def"><a name="L2315"></a><tt class="py-lineno">2315</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_addattr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr-expanded"><a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt id="link-2419" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2419', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2420" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2385', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2386" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2420', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2421" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2386', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">        <tt id="link-2387" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2387', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2388" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2388', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2389', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt 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 id="link-2390" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2390', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 id="link-2391" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2391', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
-lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2392', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2393" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2393', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2394" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2394', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">)</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">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">"0"</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt class="py-string">"2"</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="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2421', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt id="link-2422" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2422', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2423" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2423', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2424" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2424', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2425', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 id="link-2426" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2426', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
+lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2427', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2428" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2428', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2429" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2429', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"0"</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt class="py-string">"2"</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="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2430" 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-2395', 'text', 'link-311');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2396', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_addattr_element"></a><div id="ObjectifyTestCase.test_object_path_addattr_element-def"><a name="L2280"></a><tt class="py-lineno">2280</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_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="ObjectifyTestCase.test_object_path_addattr_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_element-expanded"><a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">        <tt id="link-2397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2397', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2398" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2430', 'text', 'link-311');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2431" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2431', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_addattr_element"></a><div id="ObjectifyTestCase.test_object_path_addattr_element-def"><a name="L2324"></a><tt class="py-lineno">2324</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_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="ObjectifyTestCase.test_object_path_addattr_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_element-expanded"><a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt id="link-2432" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2432', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2433" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2398', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2399" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2433', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2434" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2399', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">        <tt id="link-2400" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2400', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2401" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2401', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2402" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2402', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</tt> <tt class="py-op">)</tt> </tt>
-<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-2403" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2403', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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>
-<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2434', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt id="link-2435" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2435', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2436" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2436', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2437" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2437', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c2"</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 class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2438" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2438', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line"> </tt>
+<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2439" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2404', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt id="link-2405" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2439', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">        <tt id="link-2440" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2405', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2406', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</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 id="link-2407" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2407', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
-lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2408', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2409', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</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 class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2410', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-2411" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2411', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-name">a</tt><tt class="py-op">.</tt><tt id="link-2412" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2440', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2441" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2441', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
+<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line"> </tt>
+<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt id="link-2442" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2442', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2443" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
+lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2443', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2444', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2445', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</tt><tt class="py-op">)</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">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-2446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2446', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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-name">a</tt><tt class="py-op">.</tt><tt id="link-2447" 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-2412', 'text', 'link-311');">text</a></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">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">"0"</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt class="py-string">"2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2413" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2447', 'text', 'link-311');">text</a></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">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">"0"</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">,</tt> <tt class="py-string">"2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2448" 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-2413', 'text', 'link-311');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2414" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2414', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 class="py-op">)</tt> </tt>
-</div><a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_addattr_create"></a><div id="ObjectifyTestCase.test_object_path_addattr_create-def"><a name="L2294"></a><tt class="py-lineno">2294</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_create-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_create');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_addattr_create-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_create-expanded"><a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">        <tt id="link-2415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2415', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2416" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2448', 'text', 'link-311');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2449', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c2</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 class="py-op">)</tt> </tt>
+</div><a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_addattr_create"></a><div id="ObjectifyTestCase.test_object_path_addattr_create-def"><a name="L2338"></a><tt class="py-lineno">2338</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_create-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_create');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_addattr_create-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_create-expanded"><a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">        <tt id="link-2450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2450', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2451" 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-2416', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2417" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2451', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2452" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2417', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt id="link-2418" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2418', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2419" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2419', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2420" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2420', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2421" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2421', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2452', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">        <tt id="link-2453" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2453', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2454" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2454', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2455', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </tt>
+<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2456" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2456', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2457" 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-2422', 'find', 'link-1831');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2423" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2423', 'root', 'link-144');">root</a></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">new_value</tt> <tt class="py-op">=</tt> <tt class="py-string">"my new value"</tt> </tt>
-<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">        <tt id="link-2424" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2424', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2425" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
-lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2425', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2426" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2426', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line"> </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 class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2427" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2427', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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 class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2428" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2428', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2457', 'find', 'link-1866');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2458', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line"> </tt>
+<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt class="py-name">new_value</tt> <tt class="py-op">=</tt> <tt class="py-string">"my new value"</tt> </tt>
+<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">        <tt id="link-2459" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2459', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
+lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2460', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2461" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2461', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line"> </tt>
+<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt 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 id="link-2462" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2462', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2463', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2464" 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-2429', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2430" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2430', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2431" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2431', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2464', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">new_value</tt><tt class="py-op">,</tt> <tt id="link-2465" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2465', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2466" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2466', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2467" 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-2432', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_addattr_create_element"></a><div id="ObjectifyTestCase.test_object_path_addattr_create_element-def"><a name="L2306"></a><tt class="py-lineno">2306</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_create_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_create_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_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="ObjectifyTestCase.test_object_path_addattr_create_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_create_element-expanded"><a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">        <tt id="link-2433" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2433', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2434" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2467', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_addattr_create_element"></a><div id="ObjectifyTestCase.test_object_path_addattr_create_element-def"><a name="L2350"></a><tt class="py-lineno">2350</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_create_element-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_create_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_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="ObjectifyTestCase.test_object_path_addattr_create_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_create_element-expanded"><a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">        <tt id="link-2468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2468', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2469" 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-2434', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2435" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2469', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2470" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2435', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt id="link-2436" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2436', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2437" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2437', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2438" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2438', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2439" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2439', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2440" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2470', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">        <tt id="link-2471" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2471', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2472" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2472', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2473" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2473', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</tt> <tt class="py-op">)</tt> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2474" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2474', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2475" 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-2440', 'find', 'link-1831');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2441" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2441', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line"> </tt>
-<a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2442" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2475', 'find', 'link-1866');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2476" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2476', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line"> </tt>
+<a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line">        <tt class="py-name">new_el</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.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2442', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line">        <tt id="link-2443" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2477', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">        <tt id="link-2478" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2443', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2444', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">,</tt> <tt class="py-name">myattr</tt><tt class="py-op">=</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
-<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line"> </tt>
-<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line">        <tt id="link-2445" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2445', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
-lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2446', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2447', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2448', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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 class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-2449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2449', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2450" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2478', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2479', 'SubElement', 'link-545');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">new_el</tt><tt class="py-op">,</tt> <tt class="py-string">"{objectified}sub"</tt><tt class="py-op">,</tt> <tt class="py-name">myattr</tt><tt class="py-op">=</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
+<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line"> </tt>
+<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">        <tt id="link-2480" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2480', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2481" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
+lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2481', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2482', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">new_el</tt><tt class="py-op">.</tt><tt class="py-name">sub</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">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 id="link-2483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2483', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">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-2484" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2484', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2485" 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-2450', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt class="py-name">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-2451" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2451', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2452', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2453" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2485', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">        <tt 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-2486" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2486', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2487" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2487', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2488" 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-2453', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ATTR"</tt><tt class="py-op">,</tt> <tt id="link-2454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2454', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2488', 'text', 'link-311');">text</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 class="py-string">"ATTR"</tt><tt class="py-op">,</tt> <tt id="link-2489" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2489', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2490" 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-2455', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_object_path_addattr_create_list"></a><div id="ObjectifyTestCase.test_object_path_addattr_create_list-def"><a name="L2320"></a><tt class="py-lineno">2320</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_create_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_create_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_object_path_addattr_create_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_create_list-expanded"><a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt id="link-2456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2456', 'root', 'link-144');">root</a></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.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2490', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"myattr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_object_path_addattr_create_list"></a><div id="ObjectifyTestCase.test_object_path_addattr_create_list-def"><a name="L2364"></a><tt class="py-lineno">2364</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_object_path_addattr_create_list-toggle" onclick="return toggle('ObjectifyTestCase.test_object_path_addattr_create_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_object_path_addattr_create_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_object_path_addattr_create_list-expanded"><a name="L2365"></a><tt class="py-lineno">2365</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-144');">root</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.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2457', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2458" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2492', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2493" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2458', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">        <tt id="link-2459" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2459', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2460" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2460', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2461', 'ObjectPath', 'link-1827');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2462" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2462', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2463" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2493', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt id="link-2494" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2494', 'path', 'link-0');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-2495" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2495', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name"><a title="lxml.objectify.ObjectPath" class="py-name" href="#" onclick="return doclink('link-2496', 'ObjectPath', 'link-1862');">ObjectPath</a></tt><tt class="py-op">(</tt> <tt class="py-string">"root.c1.c99"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">AttributeError</tt><tt class="py-op">,</tt> <tt id="link-2497" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2497', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2498" 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-2463', 'find', 'link-1831');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2464" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2464', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line"> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2465" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-2498', 'find', 'link-1866');">find</a></tt><tt class="py-op">,</tt> <tt id="link-2499" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2499', 'root', 'link-144');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line"> </tt>
+<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">new_el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2500" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2465', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</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">new_el</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-string">"TEST1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST2"</tt><tt class="py-op">]</tt> </tt>
-<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line"> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">        <tt 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">len</tt><tt class="py-op">(</tt><tt class="py-name">new_el</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="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line"> </tt>
-<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">        <tt id="link-2466" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2466', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2467" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
-lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2467', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2468', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">new_el</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="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">        <tt 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">len</tt><tt class="py-op">(</tt><tt id="link-2469" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2469', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST1"</tt><tt class="py-op">,</tt> <tt id="link-2470" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2470', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2471" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2500', 'Element', 'link-79');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{objectified}test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">        <tt class="py-name">new_el</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-string">"TEST1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST2"</tt><tt class="py-op">]</tt> </tt>
+<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line"> </tt>
+<a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line">        <tt 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">len</tt><tt class="py-op">(</tt><tt class="py-name">new_el</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="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line"> </tt>
+<a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">        <tt id="link-2501" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2501', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.objectify.ObjectPath.addattr
+lxml.objectify.ObjectifiedElement.addattr" class="py-name" href="#" onclick="return doclink('link-2502', 'addattr', 'link-523');">addattr</a></tt><tt class="py-op">(</tt><tt id="link-2503" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2503', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">new_el</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="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt 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">len</tt><tt class="py-op">(</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</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 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">"TEST1"</tt><tt class="py-op">,</tt> <tt id="link-2505" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2505', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt class="py-name">c99</tt><tt class="py-op">.</tt><tt id="link-2506" 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-2471', 'text', 'link-311');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST2"</tt><tt class="py-op">,</tt> <tt id="link-2472" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2472', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2473', 'root', 'link-144');">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 class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2506', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">        <tt 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">"TEST2"</tt><tt class="py-op">,</tt> <tt id="link-2507" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-2507', 'path', 'link-0');">path</a></tt><tt class="py-op">(</tt><tt id="link-2508" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2508', 'root', 'link-144');">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 class="py-op">.</tt><tt id="link-2509" 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-2474', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_descendant_paths"></a><div id="ObjectifyTestCase.test_descendant_paths-def"><a name="L2335"></a><tt class="py-lineno">2335</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_descendant_paths-toggle" onclick="return toggle('ObjectifyTestCase.test_descendant_paths');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_descendant_paths-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_descendant_paths-expanded"><a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">        <tt id="link-2475" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2475', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2476" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2509', 'text', 'link-311');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_descendant_paths"></a><div id="ObjectifyTestCase.test_descendant_paths-def"><a name="L2379"></a><tt class="py-lineno">2379</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_descendant_paths-toggle" onclick="return toggle('ObjectifyTestCase.test_descendant_paths');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_descendant_paths-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_descendant_paths-expanded"><a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt id="link-2510" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2510', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2511" 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-2476', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2477" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2511', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2512" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2477', 'xml_str', 'link-59');">xml_str</a></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">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-string">'{objectified}root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}root.c1'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}root.c1.c2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}root.c1.c2[1]'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}root.c1.c2[2]'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}root.c1.{otherNS}c2'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}root.c1.{}c2'</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 id="link-2478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2478', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2479" class="py-name" targets="Method lxml.objectify.ObjectifiedElement.descendantpaths()=lxml.objectify.ObjectifiedElement-class.html#descendantpaths"><a title="lxml.objectify.ObjectifiedElement.descendantpaths" class="py-name" href="#" onclick="return doclink('link-2479', 'descendantpaths', 'link-2479');">descendantpaths</a></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="ObjectifyTestCase.test_descendant_paths_child"></a><div id="ObjectifyTestCase.test_descendant_paths_child-def"><a name="L2344"></a><tt class="py-lineno">2344</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_descendant_paths_child-toggle" onclick="return toggle('ObjectifyTestCase.test_descendant_paths_child');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_descendant_paths_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_descendant_paths_child-expanded"><a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">        <tt id="link-2480" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2480', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2481" 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-2481', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2482" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2512', 'xml_str', 'link-59');">xml_str</a></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-string">'{objectified}root'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}root.c1'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}root.c1.c2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}root.c1.c2[1]'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}root.c1.c2[2]'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}root.c1.{otherNS}c2'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}root.c1.{}c2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">            <tt id="link-2513" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2513', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name" targets="Method lxml.objectify.ObjectifiedElement.descendantpaths()=lxml.objectify.ObjectifiedElement-class.html#descendantpaths"><a title="lxml.objectify.ObjectifiedElement.descendantpaths" class="py-name" href="#" onclick="return doclink('link-2514', 'descendantpaths', 'link-2514');">descendantpaths</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_descendant_paths_child"></a><div id="ObjectifyTestCase.test_descendant_paths_child-def"><a name="L2388"></a><tt class="py-lineno">2388</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_descendant_paths_child-toggle" onclick="return toggle('ObjectifyTestCase.test_descendant_paths_child');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_descendant_paths_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_descendant_paths_child-expanded"><a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt id="link-2515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2515', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2516" 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-2516', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2517" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2482', 'xml_str', 'link-59');">xml_str</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1.c2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}c1.c2[1]'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1.c2[2]'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}c1.{otherNS}c2'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1.{}c2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line">            <tt id="link-2483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2483', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-2484" class="py-name"><a title="lxml.objectify.ObjectifiedElement.descendantpaths" class="py-name" href="#" onclick="return doclink('link-2484', 'descendantpaths', 'link-2479');">descendantpaths</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_descendant_paths_prefix"></a><div id="ObjectifyTestCase.test_descendant_paths_prefix-def"><a name="L2352"></a><tt class="py-lineno">2352</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_descendant_paths_prefix-toggle" onclick="return toggle('ObjectifyTestCase.test_descendant_paths_prefix');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_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="ObjectifyTestCase.test_descendant_paths_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_descendant_paths_prefix-expanded"><a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">        <tt id="link-2485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2485', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2486" 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-2486', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2487" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2517', 'xml_str', 'link-59');">xml_str</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1.c2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}c1.c2[1]'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1.c2[2]'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">             <tt class="py-string">'{objectified}c1.{otherNS}c2'</tt><tt class="py-op">,</tt> <tt class="py-string">'{objectified}c1.{}c2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">            <tt id="link-2518" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2518', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-2519" class="py-name"><a title="lxml.objectify.ObjectifiedElement.descendantpaths" class="py-name" href="#" onclick="return doclink('link-2519', 'descendantpaths', 'link-2514');">descendantpaths</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_descendant_paths_prefix"></a><div id="ObjectifyTestCase.test_descendant_paths_prefix-def"><a name="L2396"></a><tt class="py-lineno">2396</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_descendant_paths_prefix-toggle" onclick="return toggle('ObjectifyTestCase.test_descendant_paths_prefix');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_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="ObjectifyTestCase.test_descendant_paths_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_descendant_paths_prefix-expanded"><a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt id="link-2520" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2520', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-2521', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2522" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2487', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </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-string">'root.{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'root.{objectified}c1.c2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">             <tt class="py-string">'root.{objectified}c1.c2[1]'</tt><tt class="py-op">,</tt> <tt class="py-string">'root.{objectified}c1.c2[2]'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">             <tt class="py-string">'root.{objectified}c1.{otherNS}c2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">             <tt class="py-string">'root.{objectified}c1.{}c2'</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 id="link-2488" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2488', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.objectify.ObjectifiedElement.descendantpaths" class="py-name" href="#" onclick="return doclink('link-2489', 'descendantpaths', 'link-2479');">descendantpaths</a></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="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pickle"></a><div id="ObjectifyTestCase.test_pickle-def"><a name="L2361"></a><tt class="py-lineno">2361</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pickle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle-expanded"><a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">pickle</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 id="link-2490" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2490', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2491" 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-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2492" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2522', 'xml_str', 'link-59');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">        <tt class="py-name">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-string">'root.{objectified}c1'</tt><tt class="py-op">,</tt> <tt class="py-string">'root.{objectified}c1.c2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">             <tt class="py-string">'root.{objectified}c1.c2[1]'</tt><tt class="py-op">,</tt> <tt class="py-string">'root.{objectified}c1.c2[2]'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">             <tt class="py-string">'root.{objectified}c1.{otherNS}c2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">             <tt class="py-string">'root.{objectified}c1.{}c2'</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 id="link-2523" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2523', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.objectify.ObjectifiedElement.descendantpaths" class="py-name" href="#" onclick="return doclink('link-2524', 'descendantpaths', 'link-2514');">descendantpaths</a></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="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pickle"></a><div id="ObjectifyTestCase.test_pickle-def"><a name="L2405"></a><tt class="py-lineno">2405</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pickle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle-expanded"><a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">pickle</tt> </tt>
+<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line"> </tt>
+<a name="L2408"></a><tt class="py-lineno">2408</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-144');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2526" 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-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2527" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2492', 'xml_str', 'link-59');">xml_str</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">out</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="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-2493" 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-2493', 'dump', 'link-2493');">dump</a></tt><tt class="py-op">(</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-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
-<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line"> </tt>
-<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">        <tt class="py-name">new_root</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">out</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>
-<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 id="link-2495" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2527', 'xml_str', 'link-59');">xml_str</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">out</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="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">        <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-2528" 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-2528', 'dump', 'link-2528');">dump</a></tt><tt class="py-op">(</tt><tt id="link-2529" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2529', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line"> </tt>
+<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">        <tt class="py-name">new_root</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">out</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>
+<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line">            <tt id="link-2530" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2495', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2496', 'tostring', 'link-2496');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">new_root</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 id="link-2497" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2530', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2531" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2531', 'tostring', 'link-2531');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">new_root</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">            <tt id="link-2532" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2497', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2498" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2498', 'tostring', 'link-2496');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2499" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2499', 'root', 'link-144');">root</a></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="ObjectifyTestCase.test_pickle_elementtree"></a><div id="ObjectifyTestCase.test_pickle_elementtree-def"><a name="L2373"></a><tt class="py-lineno">2373</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_elementtree-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_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="ObjectifyTestCase.test_pickle_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_elementtree-expanded"><a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">pickle</tt> </tt>
-<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line"> </tt>
-<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2500" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2532', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2533" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2533', 'tostring', 'link-2531');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2534', 'root', 'link-144');">root</a></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="ObjectifyTestCase.test_pickle_elementtree"></a><div id="ObjectifyTestCase.test_pickle_elementtree-def"><a name="L2417"></a><tt class="py-lineno">2417</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_elementtree-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_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="ObjectifyTestCase.test_pickle_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_elementtree-expanded"><a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">pickle</tt> </tt>
+<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line"> </tt>
+<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2535" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2500', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2501" 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_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2535', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2536" 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-2501', 'ElementTree', 'link-2501');">ElementTree</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.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2536', 'ElementTree', 'link-2536');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2537" 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-2502', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2503" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2537', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2538" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2503', 'xml_str', 'link-59');">xml_str</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;?my pi?&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">        <tt class="py-name">out</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="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">        <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-2504" class="py-name"><a title="lxml.etree.dump
-lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-2504', 'dump', 'link-2493');">dump</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
-<a name="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line"> </tt>
-<a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt class="py-name">new_tree</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">out</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>
-<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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">new_tree</tt><tt class="py-op">,</tt> <tt id="link-2505" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-2538', 'xml_str', 'link-59');">xml_str</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;?my pi?&gt;"</tt><tt class="py-op">)</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">out</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="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">        <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree.dump
+lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-2539', 'dump', 'link-2528');">dump</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line"> </tt>
+<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt class="py-name">new_tree</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">out</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>
+<a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">new_tree</tt><tt class="py-op">,</tt> <tt id="link-2540" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2505', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2506" class="py-name" targets="Class lxml.etree._ElementTree=lxml.etree._ElementTree-class.html"><a title="lxml.etree._ElementTree" class="py-name" href="#" onclick="return doclink('link-2506', '_ElementTree', 'link-2506');">_ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">            <tt id="link-2507" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2540', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name" targets="Class lxml.etree._ElementTree=lxml.etree._ElementTree-class.html"><a title="lxml.etree._ElementTree" class="py-name" href="#" onclick="return doclink('link-2541', '_ElementTree', 'link-2541');">_ElementTree</a></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 id="link-2542" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2507', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2508', 'tostring', 'link-2496');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">new_tree</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 id="link-2509" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2542', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2543" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2543', 'tostring', 'link-2531');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">new_tree</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">            <tt id="link-2544" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2509', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2510" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2510', 'tostring', 'link-2496');">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="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pickle_intelement"></a><div id="ObjectifyTestCase.test_pickle_intelement-def"><a name="L2386"></a><tt class="py-lineno">2386</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_intelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_intelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pickle_intelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_intelement-expanded"><a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2511" class="py-name" targets="Method lxml.tests.test_objectify.ObjectifyTestCase._test_pickle()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2511', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;42&lt;/x&gt;'</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 id="link-2512" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2512', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2513" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2513', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2514', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">42</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pickle_floattelement"></a><div id="ObjectifyTestCase.test_pickle_floattelement-def"><a name="L2390"></a><tt class="py-lineno">2390</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_floattelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_floattelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pickle_floattelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_floattelement-expanded"><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 id="link-2515" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2515', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;42.0&lt;/x&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2516', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2517" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2517', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2518" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2518', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">42.0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pickle_strelement"></a><div id="ObjectifyTestCase.test_pickle_strelement-def"><a name="L2394"></a><tt class="py-lineno">2394</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_strelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_strelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pickle_strelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_strelement-expanded"><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 id="link-2519" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2519', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;Pickle me!&lt;/x&gt;'</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">self</tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2520', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2521" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2521', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2522" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2522', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-string">'Pickle me!'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pickle_boolelement"></a><div id="ObjectifyTestCase.test_pickle_boolelement-def"><a name="L2398"></a><tt class="py-lineno">2398</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_boolelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_boolelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pickle_boolelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_boolelement-expanded"><a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2523" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2523', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;true&lt;/x&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2524', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;false&lt;/x&gt;'</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 id="link-2525" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2525', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2526" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2526', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2527" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2527', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2528', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2529" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2529', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2530" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2530', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_pickle_noneelement"></a><div id="ObjectifyTestCase.test_pickle_noneelement-def"><a name="L2404"></a><tt class="py-lineno">2404</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_noneelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_noneelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_pickle_noneelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_noneelement-expanded"><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 id="link-2531" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2531', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line"><tt class="py-string">&lt;x xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/&gt;'''</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 id="link-2532" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2532', '_test_pickle', 'link-2511');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2533" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2533', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2534" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2534', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase._test_pickle"></a><div id="ObjectifyTestCase._test_pickle-def"><a name="L2409"></a><tt class="py-lineno">2409</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase._test_pickle-toggle" onclick="return toggle('ObjectifyTestCase._test_pickle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle">_test_pickle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stringOrElt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase._test_pickle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase._test_pickle-expanded"><a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">pickle</tt> </tt>
-<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stringOrElt</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-2535" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2544', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2545', 'tostring', 'link-2531');">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="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pickle_intelement"></a><div id="ObjectifyTestCase.test_pickle_intelement-def"><a name="L2430"></a><tt class="py-lineno">2430</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_intelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_intelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pickle_intelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_intelement-expanded"><a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2546" class="py-name" targets="Method lxml.tests.test_objectify.ObjectifyTestCase._test_pickle()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2546', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;42&lt;/x&gt;'</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">self</tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2547', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2548" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2548', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2549" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2549', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">42</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="ObjectifyTestCase.test_pickle_floattelement"></a><div id="ObjectifyTestCase.test_pickle_floattelement-def"><a name="L2434"></a><tt class="py-lineno">2434</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_floattelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_floattelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pickle_floattelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_floattelement-expanded"><a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2550', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;42.0&lt;/x&gt;'</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">self</tt><tt class="py-op">.</tt><tt id="link-2551" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2551', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2552" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2552', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2553" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2553', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">42.0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pickle_strelement"></a><div id="ObjectifyTestCase.test_pickle_strelement-def"><a name="L2438"></a><tt class="py-lineno">2438</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_strelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_strelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pickle_strelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_strelement-expanded"><a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2554" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2554', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;Pickle me!&lt;/x&gt;'</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 id="link-2555" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2555', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2556" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2556', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2557" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2557', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-string">'Pickle me!'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pickle_boolelement"></a><div id="ObjectifyTestCase.test_pickle_boolelement-def"><a name="L2442"></a><tt class="py-lineno">2442</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_boolelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_boolelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pickle_boolelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_boolelement-expanded"><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 id="link-2558" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2558', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;true&lt;/x&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2559" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2559', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x&gt;false&lt;/x&gt;'</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 id="link-2560" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2560', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2561" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2561', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2562" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2562', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2563', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2564" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2564', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2565', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_pickle_noneelement"></a><div id="ObjectifyTestCase.test_pickle_noneelement-def"><a name="L2448"></a><tt class="py-lineno">2448</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_pickle_noneelement-toggle" onclick="return toggle('ObjectifyTestCase.test_pickle_noneelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_pickle_noneelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_pickle_noneelement-expanded"><a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2566" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2566', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line"><tt class="py-string">&lt;x xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase._test_pickle" class="py-name" href="#" onclick="return doclink('link-2567', '_test_pickle', 'link-2546');">_test_pickle</a></tt><tt class="py-op">(</tt><tt id="link-2568" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2568', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2569" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2569', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase._test_pickle"></a><div id="ObjectifyTestCase._test_pickle-def"><a name="L2453"></a><tt class="py-lineno">2453</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase._test_pickle-toggle" onclick="return toggle('ObjectifyTestCase._test_pickle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle">_test_pickle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stringOrElt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase._test_pickle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase._test_pickle-expanded"><a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">pickle</tt> </tt>
+<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stringOrElt</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-2570" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2535', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2536" class="py-name" targets="Class lxml.etree._Element=lxml.etree._Element-class.html"><a title="lxml.etree._Element" class="py-name" href="#" onclick="return doclink('link-2536', '_Element', 'link-2536');">_Element</a></tt><tt class="py-op">,</tt> <tt id="link-2537" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2570', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2571" class="py-name" targets="Class lxml.etree._Element=lxml.etree._Element-class.html"><a title="lxml.etree._Element" class="py-name" href="#" onclick="return doclink('link-2571', '_Element', 'link-2571');">_Element</a></tt><tt class="py-op">,</tt> <tt id="link-2572" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2537', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2538" class="py-name"><a title="lxml.etree._ElementTree" class="py-name" href="#" onclick="return doclink('link-2538', '_ElementTree', 'link-2506');">_ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</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">elt</tt> <tt class="py-op">=</tt> <tt class="py-name">stringOrElt</tt> </tt>
-<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">elt</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2539" 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-2539', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">stringOrElt</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">out</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="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">        <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-2540" class="py-name"><a title="lxml.etree.dump
-lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-2540', 'dump', 'link-2493');">dump</a></tt><tt class="py-op">(</tt><tt class="py-name">elt</tt><tt class="py-op">,</tt> <tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
-<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line"> </tt>
-<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt class="py-name">new_elt</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">out</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>
-<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">            <tt id="link-2541" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2572', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2573" class="py-name"><a title="lxml.etree._ElementTree" class="py-name" href="#" onclick="return doclink('link-2573', '_ElementTree', 'link-2541');">_ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">            <tt class="py-name">elt</tt> <tt class="py-op">=</tt> <tt class="py-name">stringOrElt</tt> </tt>
+<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">elt</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2574" 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-2574', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">stringOrElt</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">out</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="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">        <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-2575" class="py-name"><a title="lxml.etree.dump
+lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-2575', 'dump', 'link-2528');">dump</a></tt><tt class="py-op">(</tt><tt class="py-name">elt</tt><tt class="py-op">,</tt> <tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line"> </tt>
+<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt class="py-name">new_elt</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">out</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>
+<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 id="link-2576" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2541', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2542" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2542', 'tostring', 'link-2496');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">new_elt</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">            <tt id="link-2543" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2576', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2577', 'tostring', 'link-2531');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">new_elt</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 id="link-2578" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2543', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2544" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2544', 'tostring', 'link-2496');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">elt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line"> </tt>
-<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">    <tt class="py-comment"># E-Factory tests, need to use sub-elements as root element is always</tt> </tt>
-<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">    <tt class="py-comment"># type-looked-up as ObjectifiedElement (no annotations)</tt> </tt>
-<a name="ObjectifyTestCase.test_efactory_int"></a><div id="ObjectifyTestCase.test_efactory_int-def"><a name="L2425"></a><tt class="py-lineno">2425</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_int-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_int');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_int-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_int-expanded"><a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line">        <tt id="link-2545" class="py-name"><a title="lxml.builder.E
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2578', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2579" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2579', 'tostring', 'link-2531');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">elt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line"> </tt>
+<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">    <tt class="py-comment"># E-Factory tests, need to use sub-elements as root element is always</tt> </tt>
+<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">    <tt class="py-comment"># type-looked-up as ObjectifiedElement (no annotations)</tt> </tt>
+<a name="ObjectifyTestCase.test_efactory_int"></a><div id="ObjectifyTestCase.test_efactory_int-def"><a name="L2469"></a><tt class="py-lineno">2469</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_int-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_int');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_int-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_int-expanded"><a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt id="link-2580" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2545', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2546" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2546', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2580', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2581" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2581', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2582" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2547', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">        <tt id="link-2548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2548', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2549" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2582', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">        <tt id="link-2583" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2583', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2584" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2549', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2550', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2551" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2584', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2585" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2585', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2586" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2551', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-number">23</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2552" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2552', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2553" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2553', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2554" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2554', 'IntElement', 'link-35');">IntElement</a></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="ObjectifyTestCase.test_efactory_float"></a><div id="ObjectifyTestCase.test_efactory_float-def"><a name="L2430"></a><tt class="py-lineno">2430</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_float-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_float');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_float-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_float-expanded"><a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <tt id="link-2555" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2586', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-number">23</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2587" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2587', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2588" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2588', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2589" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2589', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_float"></a><div id="ObjectifyTestCase.test_efactory_float-def"><a name="L2474"></a><tt class="py-lineno">2474</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_float-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_float');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_float-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_float-expanded"><a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt id="link-2590" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2555', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2556" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2556', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2557" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2590', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2591" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2591', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2557', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt id="link-2558" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2558', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2559" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2592', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt id="link-2593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2593', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2594" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2559', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</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-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2561" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2594', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2595" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2595', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2596" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2561', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-number">233.23</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2433"></a><tt class="py-lineno">2433</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-2562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2562', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2563" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2563', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-2564', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_str"></a><div id="ObjectifyTestCase.test_efactory_str-def"><a name="L2435"></a><tt class="py-lineno">2435</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_str-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_str-expanded"><a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt id="link-2565" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2596', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-number">233.23</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt class="py-name">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-2597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2597', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2598" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2598', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-2599', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_str"></a><div id="ObjectifyTestCase.test_efactory_str-def"><a name="L2479"></a><tt class="py-lineno">2479</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_str-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_str-expanded"><a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt id="link-2600" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2565', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2566" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2566', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2600', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2601" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2601', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2602" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2567', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">        <tt id="link-2568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2568', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2569" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2602', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line">        <tt id="link-2603" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2603', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2604" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2569', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</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-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2571" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2604', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2605', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2606" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2571', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-string">"what?"</tt><tt class="py-op">)</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">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-2572" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2572', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2573" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2573', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2574', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_unicode"></a><div id="ObjectifyTestCase.test_efactory_unicode-def"><a name="L2440"></a><tt class="py-lineno">2440</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_unicode-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_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="ObjectifyTestCase.test_efactory_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_unicode-expanded"><a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">        <tt id="link-2575" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2606', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-string">"what?"</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2607" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2607', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2608" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2608', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2609', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_unicode"></a><div id="ObjectifyTestCase.test_efactory_unicode-def"><a name="L2484"></a><tt class="py-lineno">2484</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_unicode-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_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="ObjectifyTestCase.test_efactory_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_unicode-expanded"><a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt id="link-2610" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2575', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2576" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2576', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2610', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2611" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2611', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2612" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2577', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line">        <tt id="link-2578" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2578', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2579" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2612', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt id="link-2613" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2613', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2614" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2579', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2580', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2581" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2614', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2615', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2616" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2581', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt id="link-2582" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2582', '_str', 'link-18');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"bl&#246;&#246;dy h&#228;ll"</tt><tt class="py-op">,</tt> <tt id="link-2583" 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.objectify.E" class="py-name" href="#" onclick="return doclink('link-2616', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt id="link-2617" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2617', '_str', 'link-18');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"bl&#246;&#246;dy h&#228;ll"</tt><tt class="py-op">,</tt> <tt id="link-2618" 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-2583', 'encoding', 'link-2583');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ISO-8859-1"</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2584" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2584', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2585" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2585', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2586" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2586', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_bool"></a><div id="ObjectifyTestCase.test_efactory_bool-def"><a name="L2445"></a><tt class="py-lineno">2445</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_bool-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_bool');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_bool-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_bool-expanded"><a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt id="link-2587" class="py-name"><a title="lxml.builder.E
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2618', 'encoding', 'link-2618');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ISO-8859-1"</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2619', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2620" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2620', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2621" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2621', 'StringElement', 'link-41');">StringElement</a></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="ObjectifyTestCase.test_efactory_bool"></a><div id="ObjectifyTestCase.test_efactory_bool-def"><a name="L2489"></a><tt class="py-lineno">2489</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_bool-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_bool');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_bool-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_bool-expanded"><a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt id="link-2622" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2587', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2588" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2588', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2589" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2622', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2623" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2623', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2624" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2589', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">        <tt id="link-2590" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2590', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2591" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2624', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt id="link-2625" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2625', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2626" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2591', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2592', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2593" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2626', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2627', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2628" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2593', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</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="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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2594" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2594', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2595" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2595', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-2596', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_none"></a><div id="ObjectifyTestCase.test_efactory_none-def"><a name="L2450"></a><tt class="py-lineno">2450</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_none-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_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="ObjectifyTestCase.test_efactory_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_none-expanded"><a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt id="link-2597" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2628', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</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="L2492"></a><tt class="py-lineno">2492</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-2629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2629', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2630" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2630', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2631" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-2631', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_none"></a><div id="ObjectifyTestCase.test_efactory_none-def"><a name="L2494"></a><tt class="py-lineno">2494</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_none-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_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="ObjectifyTestCase.test_efactory_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_none-expanded"><a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt id="link-2632" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2597', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2598" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2598', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2632', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2633" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2633', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2634" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2599', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">        <tt id="link-2600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2600', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2601" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2634', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">        <tt id="link-2635" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2635', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2636" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2601', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2602" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2602', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2603" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2636', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2637', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2638" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2603', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</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="L2453"></a><tt class="py-lineno">2453</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-2604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2604', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2605" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2605', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-2606', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_value_concatenation"></a><div id="ObjectifyTestCase.test_efactory_value_concatenation-def"><a name="L2455"></a><tt class="py-lineno">2455</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_value_concatenation-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_value_concatenation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_value_concatenation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_value_concatenation-expanded"><a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">        <tt id="link-2607" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2638', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</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="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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2639" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2639', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2640" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2640', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2641" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-2641', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_value_concatenation"></a><div id="ObjectifyTestCase.test_efactory_value_concatenation-def"><a name="L2499"></a><tt class="py-lineno">2499</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_value_concatenation-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_value_concatenation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_value_concatenation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_value_concatenation-expanded"><a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line">        <tt id="link-2642" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2607', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2608" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2608', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2642', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2643" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2643', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2644" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2609', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">        <tt id="link-2610" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2610', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2611" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2644', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt id="link-2645" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2645', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2646" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2611', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2612', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2613" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2646', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2647" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2647', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt id="link-2648" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2613', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> <tt class="py-number">2.0</tt><tt class="py-op">,</tt> <tt class="py-string">"bar "</tt><tt class="py-op">,</tt> <tt class="py-name">True</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="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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2614" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2614', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2615" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2615', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2616" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2616', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_attrib"></a><div id="ObjectifyTestCase.test_efactory_attrib-def"><a name="L2460"></a><tt class="py-lineno">2460</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_attrib-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_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="ObjectifyTestCase.test_efactory_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_attrib-expanded"><a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt id="link-2617" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2648', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> <tt class="py-number">2.0</tt><tt class="py-op">,</tt> <tt class="py-string">"bar "</tt><tt class="py-op">,</tt> <tt class="py-name">True</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="L2502"></a><tt class="py-lineno">2502</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-2649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2649', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-2650" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2650', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2651" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2651', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_attrib"></a><div id="ObjectifyTestCase.test_efactory_attrib-def"><a name="L2504"></a><tt class="py-lineno">2504</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_attrib-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_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="ObjectifyTestCase.test_efactory_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_attrib-expanded"><a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt id="link-2652" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2617', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2618" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2618', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2619" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2652', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2653" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2653', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2654" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2619', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt id="link-2620" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2620', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2621" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2654', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt id="link-2655" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2655', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2656" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2621', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2622" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2622', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt class="py-name">foo</tt><tt class="py-op">=</tt><tt class="py-string">"bar"</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 id="link-2623" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2623', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2624" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2656', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2657" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2657', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt class="py-name">foo</tt><tt class="py-op">=</tt><tt class="py-string">"bar"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2658', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2659" 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-2624', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"foo"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"bar"</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="ObjectifyTestCase.test_efactory_nested"></a><div id="ObjectifyTestCase.test_efactory_nested-def"><a name="L2465"></a><tt class="py-lineno">2465</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_nested-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_nested');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_nested-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_nested-expanded"><a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">        <tt id="link-2625" class="py-name"><a title="lxml.builder.E
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2659', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"foo"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"bar"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_nested"></a><div id="ObjectifyTestCase.test_efactory_nested-def"><a name="L2509"></a><tt class="py-lineno">2509</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_nested-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_nested');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_nested-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_nested-expanded"><a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">        <tt id="link-2660" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2625', 'E', 'link-1813');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2626" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2626', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2660', 'E', 'link-1848');">E</a></tt> <tt class="py-op">=</tt> <tt id="link-2661" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2661', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2627', 'E', 'link-1813');">E</a></tt> </tt>
-<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt id="link-2628" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2628', 'DataElement', 'link-198');">DataElement</a></tt> <tt class="py-op">=</tt> <tt id="link-2629" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2629', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2630" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2630', 'DataElement', 'link-198');">DataElement</a></tt> </tt>
-<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">        <tt id="link-2631" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2631', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2632" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2662', 'E', 'link-1848');">E</a></tt> </tt>
+<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt id="link-2663" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2663', 'DataElement', 'link-198');">DataElement</a></tt> <tt class="py-op">=</tt> <tt id="link-2664" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2664', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2665" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2665', 'DataElement', 'link-198');">DataElement</a></tt> </tt>
+<a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line">        <tt id="link-2666" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2666', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2667" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2632', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2633', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-2634" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2667', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2668', 'root', 'link-144');">root</a></tt><tt class="py-op">(</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-2669" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2634', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-2635" class="py-name"><a title="lxml.builder.E
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2669', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-2670" class="py-name"><a title="lxml.builder.E
 lxml.html.builder.E
-lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2635', 'E', 'link-1813');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">subsub</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">"tail"</tt><tt class="py-op">,</tt> <tt id="link-2636" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2636', 'DataElement', 'link-198');">DataElement</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="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">                      <tt id="link-2637" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2637', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">2.0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2638', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt id="link-2639" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2639', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.objectify.ObjectifiedElement" class="py-name" href="#" onclick="return doclink('link-2640', 'ObjectifiedElement', 'link-314');">ObjectifiedElement</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2641" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2641', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.E" class="py-name" href="#" onclick="return doclink('link-2670', 'E', 'link-1848');">E</a></tt><tt class="py-op">.</tt><tt class="py-name">subsub</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">"tail"</tt><tt class="py-op">,</tt> <tt id="link-2671" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2671', 'DataElement', 'link-198');">DataElement</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="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line">                      <tt id="link-2672" class="py-name"><a title="lxml.objectify.DataElement" class="py-name" href="#" onclick="return doclink('link-2672', 'DataElement', 'link-198');">DataElement</a></tt><tt class="py-op">(</tt><tt class="py-number">2.0</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">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-2673" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2673', 'root', 'link-144');">root</a></tt><tt class="py-op">,</tt> <tt id="link-2674" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2674', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.objectify.ObjectifiedElement" class="py-name" href="#" onclick="return doclink('link-2675', 'ObjectifiedElement', 'link-314');">ObjectifiedElement</a></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 id="link-2676" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2676', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2677" 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-2642', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text"</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2643" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2643', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">,</tt> <tt id="link-2644" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2644', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.objectify.ObjectifiedElement" class="py-name" href="#" onclick="return doclink('link-2645', 'ObjectifiedElement', 'link-314');">ObjectifiedElement</a></tt><tt class="py-op">)</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 id="link-2646" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2646', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2647" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2647', 'tail', 'link-319');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</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">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-2648" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2648', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt class="py-name">subsub</tt><tt class="py-op">,</tt> <tt id="link-2649" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2649', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2650" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2650', 'StringElement', 'link-41');">StringElement</a></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">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-2651" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2651', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2677', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2516"></a><tt class="py-lineno">2516</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-2678" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2678', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">,</tt> <tt id="link-2679" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2679', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2680" class="py-name"><a title="lxml.objectify.ObjectifiedElement" class="py-name" href="#" onclick="return doclink('link-2680', 'ObjectifiedElement', 'link-314');">ObjectifiedElement</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2681', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2682" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2682', 'tail', 'link-319');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2683" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2683', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt class="py-name">subsub</tt><tt class="py-op">,</tt> <tt id="link-2684" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2684', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2685" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2685', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</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">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-2686" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2686', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-2652', 'value', 'link-196');">value</a></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="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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2653" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2653', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2654" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-2687', 'value', 'link-196');">value</a></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="L2520"></a><tt class="py-lineno">2520</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-2688" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2688', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2689" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-2654', 'value', 'link-196');">value</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-2655" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2655', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2656', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt class="py-name">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-2657" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2657', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-2689', 'value', 'link-196');">value</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-2690" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2690', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2691" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2691', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</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">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-2692" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2692', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2693" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-2658', 'value', 'link-196');">value</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-2659" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2659', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-2660', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_efactory_subtype"></a><div id="ObjectifyTestCase.test_efactory_subtype-def"><a name="L2479"></a><tt class="py-lineno">2479</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_subtype-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_subtype');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_efactory_subtype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_subtype-expanded"><a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Attribute</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</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-keyword">def</tt> <tt class="py-def-name">__init__</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="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line">                <tt id="link-2661" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2661', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.objectify.ObjectifiedDataElement" class="py-name" href="#" onclick="return doclink('link-2662', 'ObjectifiedDataElement', 'link-309');">ObjectifiedDataElement</a></tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.HTMLPullParser.__init__()=lxml.etree.HTMLPullParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLPullParser.__init__()=lxml.etree.XMLPullParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.htmlfile.__init__()=lxml.etree.htmlfile-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.Classes.__init__()=lxml.html.Classes-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.html.soupparser._PseudoTag.__init__()=lxml.html.soupparser._PseudoTag-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_doctestcompare.DummyInput.__init__()=lxml.tests.test_doctestcompare.DummyInput-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-2693', 'value', 'link-196');">value</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-2694" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2694', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2695" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-2695', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_efactory_subtype"></a><div id="ObjectifyTestCase.test_efactory_subtype-def"><a name="L2523"></a><tt class="py-lineno">2523</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_efactory_subtype-toggle" onclick="return toggle('ObjectifyTestCase.test_efactory_subtype');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_efactory_subtype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_efactory_subtype-expanded"><a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Attribute</tt><tt class="py-op">(</tt><tt class="py-base-class">objectify</tt><tt class="py-op">.</tt><tt class="py-base-class">ObjectifiedDataElement</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-keyword">def</tt> <tt class="py-def-name">__init__</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="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">                <tt id="link-2696" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2696', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2697" class="py-name"><a title="lxml.objectify.ObjectifiedDataElement" class="py-name" href="#" onclick="return doclink('link-2697', 'ObjectifiedDataElement', 'link-309');">ObjectifiedDataElement</a></tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.HTMLPullParser.__init__()=lxml.etree.HTMLPullParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLPullParser.__init__()=lxml.etree.XMLPullParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.htmlfile.__init__()=lxml.etree.htmlfile-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.Classes.__init__()=lxml.html.Classes-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.html.soupparser._PseudoTag.__init__()=lxml.html.soupparser._PseudoTag-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_doctestcompare.DummyInput.__init__()=lxml.tests.test_doctestcompare.DummyInput-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
 lxml.cssselect.CSSSelector.__init__
 lxml.doctestcompare._RestoreChecker.__init__
 lxml.etree.AttributeBasedElementClassLookup.__init__
@@ -5512,170 +5602,170 @@ lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
 lxml.tests.test_doctestcompare.DummyInput.__init__
 lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
 lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-2663', '__init__', 'link-2663');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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">self</tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2664', 'set', 'link-2367');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"datatype"</tt><tt class="py-op">,</tt> <tt class="py-string">"TYPE"</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 id="link-2665" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2665', 'set', 'link-2367');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"range"</tt><tt class="py-op">,</tt> <tt class="py-string">"0.,1."</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line"> </tt>
-<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">Attribute</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 class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-2666" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-2698', '__init__', 'link-2698');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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">self</tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2699', 'set', 'link-2402');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"datatype"</tt><tt class="py-op">,</tt> <tt class="py-string">"TYPE"</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 id="link-2700" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2700', 'set', 'link-2402');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"range"</tt><tt class="py-op">,</tt> <tt class="py-string">"0.,1."</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line"> </tt>
+<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">        <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">Attribute</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 class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-2701" 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-2666', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2701', 'text', 'link-311');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-2702" 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-2667', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"datatype"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"TYPE"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2702', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"datatype"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"TYPE"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-2703" 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-2668', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"range"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"0.,1."</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_XML_base_url_docinfo"></a><div id="ObjectifyTestCase.test_XML_base_url_docinfo-def"><a name="L2491"></a><tt class="py-lineno">2491</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">        <tt id="link-2669" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2669', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2670" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2670', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2671" 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-2671', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2672" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2672', '_bytes', 'link-17');">_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-2673" 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-2673', 'base_url', 'link-2673');">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="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt id="link-2674" 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-2674', 'docinfo', 'link-2674');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2675" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2675', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2676" 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-2676', 'getroottree', 'link-2676');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2677', 'docinfo', 'link-2674');">docinfo</a></tt> </tt>
-<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2678" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2678', 'docinfo', 'link-2674');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2679" 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-2679', 'URL', 'link-2679');">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="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">  </tt>
-<a name="ObjectifyTestCase.test_XML_set_base_url_docinfo"></a><div id="ObjectifyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2496"></a><tt class="py-lineno">2496</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt id="link-2680" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2680', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2681" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2681', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2682" 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-2682', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2683" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2683', '_bytes', 'link-17');">_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-2684" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2684', 'base_url', 'link-2673');">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="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">        <tt id="link-2685" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2685', 'docinfo', 'link-2674');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2686" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2686', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2687', 'getroottree', 'link-2676');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2688" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2688', 'docinfo', 'link-2674');">docinfo</a></tt> </tt>
-<a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2689" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2689', 'docinfo', 'link-2674');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2690" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2690', 'URL', 'link-2679');">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="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line">        <tt id="link-2691" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2691', 'docinfo', 'link-2674');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2692" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2692', 'URL', 'link-2679');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2693" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2693', 'docinfo', 'link-2674');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2694" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2694', 'URL', 'link-2679');">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="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">  </tt>
-<a name="ObjectifyTestCase.test_parse_stringio_base_url"></a><div id="ObjectifyTestCase.test_parse_stringio_base_url-def"><a name="L2503"></a><tt class="py-lineno">2503</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_parse_stringio_base_url-expanded"><a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2695" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2695', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2696" 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._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2703', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"range"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"0.,1."</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="ObjectifyTestCase.test_XML_base_url_docinfo"></a><div id="ObjectifyTestCase.test_XML_base_url_docinfo-def"><a name="L2535"></a><tt class="py-lineno">2535</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">        <tt id="link-2704" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2704', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2705" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2705', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2706" 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-2706', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2707" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2707', '_bytes', 'link-17');">_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-2708" 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-2708', 'base_url', 'link-2708');">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="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt id="link-2709" 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-2709', 'docinfo', 'link-2709');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2710', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2711" 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-2711', 'getroottree', 'link-2711');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2712', 'docinfo', 'link-2709');">docinfo</a></tt> </tt>
+<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2713" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2713', 'docinfo', 'link-2709');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2714" 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-2714', 'URL', 'link-2714');">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="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">  </tt>
+<a name="ObjectifyTestCase.test_XML_set_base_url_docinfo"></a><div id="ObjectifyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2540"></a><tt class="py-lineno">2540</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line">        <tt id="link-2715" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2715', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2716" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2716', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2717" 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-2717', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2718" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2718', '_bytes', 'link-17');">_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-2719" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2719', 'base_url', 'link-2708');">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="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">        <tt id="link-2720" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2720', 'docinfo', 'link-2709');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2721', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2722', 'getroottree', 'link-2711');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2723', 'docinfo', 'link-2709');">docinfo</a></tt> </tt>
+<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2724" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2724', 'docinfo', 'link-2709');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2725', 'URL', 'link-2714');">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="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">        <tt id="link-2726" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2726', 'docinfo', 'link-2709');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2727" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2727', 'URL', 'link-2714');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</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 id="link-2728" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2728', 'docinfo', 'link-2709');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2729" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2729', 'URL', 'link-2714');">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="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line">  </tt>
+<a name="ObjectifyTestCase.test_parse_stringio_base_url"></a><div id="ObjectifyTestCase.test_parse_stringio_base_url-def"><a name="L2547"></a><tt class="py-lineno">2547</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_parse_stringio_base_url-expanded"><a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2730" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2730', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2731" 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-2696', 'parse', 'link-2696');">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-2697" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2697', 'base_url', 'link-2673');">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="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt id="link-2698" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2698', 'docinfo', 'link-2674');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2699', 'docinfo', 'link-2674');">docinfo</a></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 id="link-2700" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2700', 'docinfo', 'link-2674');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2701', 'URL', 'link-2679');">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="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">  </tt>
-<a name="ObjectifyTestCase.test_parse_base_url_docinfo"></a><div id="ObjectifyTestCase.test_parse_base_url_docinfo-def"><a name="L2508"></a><tt class="py-lineno">2508</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2702" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2702', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2703" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2731', 'parse', 'link-2731');">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-2732" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2732', 'base_url', 'link-2708');">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="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">        <tt id="link-2733" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2733', 'docinfo', 'link-2709');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2734" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2734', 'docinfo', 'link-2709');">docinfo</a></tt> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2735" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2735', 'docinfo', 'link-2709');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2736" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2736', 'URL', 'link-2714');">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="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">  </tt>
+<a name="ObjectifyTestCase.test_parse_base_url_docinfo"></a><div id="ObjectifyTestCase.test_parse_base_url_docinfo-def"><a name="L2552"></a><tt class="py-lineno">2552</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ObjectifyTestCase.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_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2737" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2737', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2738" 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-2703', 'parse', 'link-2696');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2704" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2704', 'fileInTestDir', 'link-11');">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="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">                               <tt id="link-2705" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2705', 'base_url', 'link-2673');">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="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt id="link-2706" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2706', 'docinfo', 'link-2674');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2707" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2707', 'docinfo', 'link-2674');">docinfo</a></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 id="link-2708" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2708', 'docinfo', 'link-2674');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2709" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2709', 'URL', 'link-2679');">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="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_xml_base"></a><div id="ObjectifyTestCase.test_xml_base-def"><a name="L2514"></a><tt class="py-lineno">2514</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xml_base-toggle" onclick="return toggle('ObjectifyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xml_base-expanded"><a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt id="link-2710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2710', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2711" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2711', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2712" 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-2712', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2713" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2713', '_bytes', 'link-17');">_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-2714" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2714', 'base_url', 'link-2673');">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="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2715" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2715', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2716" 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-2716', 'base', 'link-2716');">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="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">            <tt id="link-2717" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2717', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2718" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2738', 'parse', 'link-2731');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2739" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2739', 'fileInTestDir', 'link-11');">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="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">                               <tt id="link-2740" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2740', 'base_url', 'link-2708');">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="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt id="link-2741" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2741', 'docinfo', 'link-2709');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2742', 'docinfo', 'link-2709');">docinfo</a></tt> </tt>
+<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2743" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2743', 'docinfo', 'link-2709');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2744', 'URL', 'link-2714');">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="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_xml_base"></a><div id="ObjectifyTestCase.test_xml_base-def"><a name="L2558"></a><tt class="py-lineno">2558</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xml_base-toggle" onclick="return toggle('ObjectifyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xml_base-expanded"><a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt id="link-2745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2745', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2746" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2746', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2747" 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-2747', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2748" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2748', '_bytes', 'link-17');">_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-2749" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2749', 'base_url', 'link-2708');">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="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2750', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2751" 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-2751', 'base', 'link-2751');">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="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">            <tt id="link-2752" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2752', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2753" 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-2718', 'get', 'link-325');">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="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt id="link-2719" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2719', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2720', 'base', 'link-2716');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2721', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2722', 'base', 'link-2716');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">            <tt id="link-2723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2723', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2753', 'get', 'link-325');">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="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt id="link-2754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2754', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2755', 'base', 'link-2751');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2756" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2756', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2757" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2757', 'base', 'link-2751');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">            <tt id="link-2758" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2758', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2759" 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-2724', 'get', 'link-325');">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="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">  </tt>
-<a name="ObjectifyTestCase.test_xml_base_attribute"></a><div id="ObjectifyTestCase.test_xml_base_attribute-def"><a name="L2525"></a><tt class="py-lineno">2525</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ObjectifyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xml_base_attribute-expanded"><a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">        <tt id="link-2725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2725', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2726" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2726', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2727" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2759', 'get', 'link-325');">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="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">  </tt>
+<a name="ObjectifyTestCase.test_xml_base_attribute"></a><div id="ObjectifyTestCase.test_xml_base_attribute-def"><a name="L2569"></a><tt class="py-lineno">2569</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ObjectifyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-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="ObjectifyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_xml_base_attribute-expanded"><a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">        <tt id="link-2760" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2760', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2761" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2761', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2762" 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-2727', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2728" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2728', '_bytes', 'link-17');">_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-2729" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2729', 'base_url', 'link-2673');">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="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2730" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2730', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2731" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2731', 'base', 'link-2716');">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="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 id="link-2732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2732', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2733" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2762', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2763" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2763', '_bytes', 'link-17');">_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-2764" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2764', 'base_url', 'link-2708');">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="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2765', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2766', 'base', 'link-2751');">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="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">            <tt id="link-2767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2767', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2768" 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-2733', 'get', 'link-325');">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="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">        <tt id="link-2734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2734', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2735" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2735', 'set', 'link-2367');">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="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2736" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2736', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2737', 'base', 'link-2716');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">            <tt id="link-2738" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2738', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2739" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2768', 'get', 'link-325');">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="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">        <tt id="link-2769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2769', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2770" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2770', 'set', 'link-2402');">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="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2771" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2771', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2772" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2772', 'base', 'link-2751');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">            <tt id="link-2773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2773', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt id="link-2774" 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-2739', 'get', 'link-325');">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="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line"> </tt>
-<a name="ObjectifyTestCase.test_standard_lookup"></a><div id="ObjectifyTestCase.test_standard_lookup-def"><a name="L2537"></a><tt class="py-lineno">2537</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_standard_lookup-toggle" onclick="return toggle('ObjectifyTestCase.test_standard_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ObjectifyTestCase.test_standard_lookup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_standard_lookup-expanded"><a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt id="link-2740" 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-2740', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2741" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2741', 'XML', 'link-63');">XML</a></tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line"> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">        <tt id="link-2742" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2742', 'xml', 'link-64');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2743" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2743', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
-<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line"><tt class="py-string">          &lt;i&gt;5&lt;/i&gt;</tt> </tt>
-<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line"><tt class="py-string">          &lt;i&gt;-5&lt;/i&gt;</tt> </tt>
-<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line"><tt class="py-string">          &lt;l&gt;4294967296&lt;/l&gt;</tt> </tt>
-<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line"><tt class="py-string">          &lt;l&gt;-4294967296&lt;/l&gt;</tt> </tt>
-<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line"><tt class="py-string">          &lt;f&gt;1.1&lt;/f&gt;</tt> </tt>
-<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;true&lt;/b&gt;</tt> </tt>
-<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;false&lt;/b&gt;</tt> </tt>
-<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;Strange things happen, where strings collide&lt;/s&gt;</tt> </tt>
-<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;True&lt;/s&gt;</tt> </tt>
-<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;False&lt;/s&gt;</tt> </tt>
-<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;t&lt;/s&gt;</tt> </tt>
-<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;f&lt;/s&gt;</tt> </tt>
-<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;&lt;/s&gt;</tt> </tt>
-<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;None&lt;/s&gt;</tt> </tt>
-<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
-<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt id="link-2744" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2744', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2745" 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-2745', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2746" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2746', 'xml', 'link-64');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line"> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-2747" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2747', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">i</tt><tt class="py-op">:</tt> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</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 class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-2748" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2748', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2749" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2749', 'IntElement', 'link-35');">IntElement</a></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-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt id="link-2750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2750', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-2751" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2751', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2752" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2752', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt id="link-2753" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2753', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</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-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2754" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2754', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-2755', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt>   </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</tt> <tt id="link-2756" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2756', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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 class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2757" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2757', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-2758', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-2759" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2759', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt id="link-2760" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2760', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt id="link-2761" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2761', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">,</tt> <tt id="link-2762" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2762', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2763" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2763', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-2764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2764', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt id="link-2765" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2765', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-2766', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-2767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2767', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L2576"></a><tt class="py-lineno">2576</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_objectify-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="L2577"></a><tt class="py-lineno">2577</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="L2578"></a><tt class="py-lineno">2578</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-2768" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase" class="py-name" href="#" onclick="return doclink('link-2768', 'ObjectifyTestCase', 'link-66');">ObjectifyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">    <tt class="py-name">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-2769" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2769', 'objectify', 'link-20');">objectify</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-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">4</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">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-2770" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-2770', 'make_doctest', 'link-15');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/objectify.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line"> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</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="L2586"></a><tt class="py-lineno">2586</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="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2774', 'get', 'link-325');">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="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line"> </tt>
+<a name="ObjectifyTestCase.test_standard_lookup"></a><div id="ObjectifyTestCase.test_standard_lookup-def"><a name="L2581"></a><tt class="py-lineno">2581</tt> <a class="py-toggle" href="#" id="ObjectifyTestCase.test_standard_lookup-toggle" onclick="return toggle('ObjectifyTestCase.test_standard_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ObjectifyTestCase.test_standard_lookup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ObjectifyTestCase.test_standard_lookup-expanded"><a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line">        <tt id="link-2775" 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-2775', 'XML', 'link-63');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2776" 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-2776', 'XML', 'link-63');">XML</a></tt> </tt>
+<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line"> </tt>
+<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">        <tt id="link-2777" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2777', 'xml', 'link-64');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2778" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2778', '_bytes', 'link-17');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line"><tt class="py-string">        &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</tt> </tt>
+<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line"><tt class="py-string">          &lt;i&gt;5&lt;/i&gt;</tt> </tt>
+<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"><tt class="py-string">          &lt;i&gt;-5&lt;/i&gt;</tt> </tt>
+<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line"><tt class="py-string">          &lt;l&gt;4294967296&lt;/l&gt;</tt> </tt>
+<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line"><tt class="py-string">          &lt;l&gt;-4294967296&lt;/l&gt;</tt> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line"><tt class="py-string">          &lt;f&gt;1.1&lt;/f&gt;</tt> </tt>
+<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;true&lt;/b&gt;</tt> </tt>
+<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line"><tt class="py-string">          &lt;b&gt;false&lt;/b&gt;</tt> </tt>
+<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;Strange things happen, where strings collide&lt;/s&gt;</tt> </tt>
+<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;True&lt;/s&gt;</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;False&lt;/s&gt;</tt> </tt>
+<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;t&lt;/s&gt;</tt> </tt>
+<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;f&lt;/s&gt;</tt> </tt>
+<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;&lt;/s&gt;</tt> </tt>
+<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line"><tt class="py-string">          &lt;s&gt;None&lt;/s&gt;</tt> </tt>
+<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line"><tt class="py-string">          &lt;n xsi:nil="true" /&gt;</tt> </tt>
+<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">        <tt id="link-2779" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2779', 'root', 'link-144');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2780" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2780', 'XML', 'link-63');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2781" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2781', 'xml', 'link-64');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line"> </tt>
+<a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-2782" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2782', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">i</tt><tt class="py-op">:</tt> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-2783" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2783', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2784', 'IntElement', 'link-35');">IntElement</a></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-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt id="link-2785" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2785', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">l</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 class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-2786" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2786', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name"><a title="lxml.objectify.IntElement" class="py-name" href="#" onclick="return doclink('link-2787', 'IntElement', 'link-35');">IntElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt id="link-2788" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2788', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</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 class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2789" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2789', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2790" class="py-name"><a title="lxml.objectify.FloatElement" class="py-name" href="#" onclick="return doclink('link-2790', 'FloatElement', 'link-37');">FloatElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt>   </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</tt> <tt id="link-2791" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2791', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">:</tt> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">            <tt class="py-name">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 class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2792" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2792', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2793" class="py-name"><a title="lxml.objectify.BoolElement" class="py-name" href="#" onclick="return doclink('link-2793', 'BoolElement', 'link-39');">BoolElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">        <tt class="py-name">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 id="link-2794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2794', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line">        <tt class="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 id="link-2795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2795', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">b</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="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</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-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</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 class="py-name">s</tt><tt class="py-op">,</tt> <tt id="link-2797" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2797', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.objectify.StringElement" class="py-name" href="#" onclick="return doclink('link-2798', 'StringElement', 'link-41');">StringElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">        <tt class="py-name">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-2799" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2799', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt id="link-2800" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2800', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">.</tt><tt id="link-2801" class="py-name"><a title="lxml.objectify.NoneElement" class="py-name" href="#" onclick="return doclink('link-2801', 'NoneElement', 'link-353');">NoneElement</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-2802" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2802', 'root', 'link-144');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L2620"></a><tt class="py-lineno">2620</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_objectify-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="L2621"></a><tt class="py-lineno">2621</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="L2622"></a><tt class="py-lineno">2622</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-2803" class="py-name"><a title="lxml.tests.test_objectify.ObjectifyTestCase" class="py-name" href="#" onclick="return doclink('link-2803', 'ObjectifyTestCase', 'link-66');">ObjectifyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line">    <tt class="py-name">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-2804" class="py-name"><a title="lxml.objectify" class="py-name" href="#" onclick="return doclink('link-2804', 'objectify', 'link-20');">objectify</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-2805" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-2805', 'make_doctest', 'link-15');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/objectify.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line"> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"><tt class="py-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="L2630"></a><tt class="py-lineno">2630</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="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -5713,7 +5803,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:14 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 53b9b6d..cc8a383 100644 (file)
@@ -1791,6 +1791,86 @@ Test cases for lxml.objectify
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
+          <td><span class="summary-sig"><a name="test_type_float_precision"></a><span class="summary-sig-name">test_type_float_precision</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_objectify-pysrc.html#ObjectifyTestCase.test_type_float_precision">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_type_float_instantiation_precision"></a><span class="summary-sig-name">test_type_float_instantiation_precision</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_objectify-pysrc.html#ObjectifyTestCase.test_type_float_instantiation_precision">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_type_float_precision_consistency"></a><span class="summary-sig-name">test_type_float_precision_consistency</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_objectify-pysrc.html#ObjectifyTestCase.test_type_float_precision_consistency">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_data_element_float_precision"></a><span class="summary-sig-name">test_data_element_float_precision</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_objectify-pysrc.html#ObjectifyTestCase.test_data_element_float_precision">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_data_element_float_hash_repr"></a><span class="summary-sig-name">test_data_element_float_hash_repr</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_objectify-pysrc.html#ObjectifyTestCase.test_data_element_float_hash_repr">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
           <td><span class="summary-sig"><a name="test_data_element_xsitypes"></a><span class="summary-sig-name">test_data_element_xsitypes</span>(<span class="summary-sig-arg">self</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_objectify-pysrc.html#ObjectifyTestCase.test_data_element_xsitypes">source&nbsp;code</a></span>
@@ -3555,7 +3635,8 @@ Test cases for lxml.objectify
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e2dbfa5..cab3d32 100644 (file)
@@ -145,7 +145,7 @@ Tests specific to the Python based class lookup.
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_pyclasslookup-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_pyclasslookup-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -201,7 +201,7 @@ Tests specific to the Python based class lookup.
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -265,7 +265,8 @@ Tests specific to the Python based class lookup.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cc7af7f..dbd8057 100644 (file)
@@ -872,7 +872,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 771f78b..4e01ac8 100644 (file)
@@ -705,7 +705,7 @@ Test cases for the lxml.pyclasslookup class lookup mechanism.
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="parser"></a><span class="summary-name">parser</span> = <code title="etree.XMLParser()">etree.XMLParser()</code>
+        <a name="parser"></a><span class="summary-name">parser</span> = <code title="&lt;lxml.etree.XMLParser object&gt;">&lt;lxml.etree.XMLParser object&gt;</code>
     </td>
   </tr>
   <tr>
@@ -856,7 +856,8 @@ Test cases for the lxml.pyclasslookup class lookup mechanism.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e41a76b..cb9e9dc 100644 (file)
@@ -151,7 +151,7 @@ Test cases related to RelaxNG parsing and validation
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_relaxng-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_relaxng-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -200,7 +200,7 @@ Test cases related to RelaxNG parsing and validation
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -238,7 +238,8 @@ Test cases related to RelaxNG parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 56f02aa..3cb671a 100644 (file)
@@ -648,7 +648,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fb878c1..f9655e6 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 10b7103..8a04456 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a0581f4..c6ba7a8 100644 (file)
@@ -144,7 +144,7 @@ Test cases related to SAX I/O
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_sax-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_sax-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -185,7 +185,7 @@ Test cases related to SAX I/O
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -223,7 +223,8 @@ Test cases related to SAX I/O
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54cfd6c..66aeb3e 100644 (file)
@@ -654,7 +654,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 655e8ea..99203a1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f4af7bf..40230ee 100644 (file)
@@ -144,7 +144,7 @@ Test cases related to Schematron parsing and validation
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_schematron-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_schematron-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -185,7 +185,7 @@ Test cases related to Schematron parsing and validation
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -223,7 +223,8 @@ Test cases related to Schematron parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4ecc115..7cdaba1 100644 (file)
@@ -349,7 +349,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8233380..ca87b10 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3beae5a..0de59e9 100644 (file)
@@ -153,7 +153,7 @@ Tests for thread usage in lxml.etree.
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_threading-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_threading-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -194,7 +194,7 @@ Tests for thread usage in lxml.etree.
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -232,7 +232,8 @@ Tests for thread usage in lxml.etree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 600f1ab..3803af9 100644 (file)
@@ -1249,7 +1249,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c4c1f0d..c36fa80 100644 (file)
@@ -523,7 +523,8 @@ Threading tests based on a thread worker pipeline.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a88fa0d..72958d5 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 0x2ab259301350&gt;</span>)</span></td>
+        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7fc469048b90&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 0x2ab259301350&gt;</span>)</span>
+        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7fc469048b90&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;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6abf270..789d066 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 0x2ab259301350&gt;</span>)</span></td>
+        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7fc469048b90&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 0x2ab259301350&gt;</span>)</span>
+        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7fc469048b90&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;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 644b07a..33894c3 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 0x2ab259301350&gt;</span>)</span></td>
+        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7fc469048b90&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 0x2ab259301350&gt;</span>)</span>
+        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7fc469048b90&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;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 37123cc..0797579 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7175b25..437cec8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 09d9301..b2d41b7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8924ffb..740afe8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 260a106..94d6de2 100644 (file)
@@ -338,7 +338,8 @@ from the args and kwargs arguments, respectively.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 779565d..568dea6 100644 (file)
@@ -564,7 +564,8 @@ Threading tests
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 67b7627..23c869f 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_unicode-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_unicode-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 075c7c6..b74ff4f 100644 (file)
@@ -630,7 +630,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 42f85c1..03558d1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index af498a4..f93ed95 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d726a53..ab1ce00 100644 (file)
@@ -151,7 +151,7 @@ Test cases related to XML Schema parsing and validation
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xmlschema-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_xmlschema-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -192,7 +192,7 @@ Test cases related to XML Schema parsing and validation
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -230,7 +230,8 @@ Test cases related to XML Schema parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 07af7af..0ed6a1a 100644 (file)
@@ -1316,7 +1316,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f9db6f6..3fb8d8a 100644 (file)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_int" class="summary-name">resolver_schema_int</a> = <code title="BytesIO(&quot;&quot;&quot;\
-&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
-    xmlns:etype=&quot;http://codespeak.net/lxml/test/external&quot;
-    targetNamespace=&quot;http://codespeak.net/lxml/test/internal&quot;&gt;
-        &lt;xsd:import namespace=&quot;http://codespeak.net/lxml/test/external\
-&quot; schemaLocation=&quot;XXX.xsd&quot; /&gt;
-        &lt;xsd:element name=&quot;a&quot; type=&quot;etype:AType&quot;/&gt;
-&lt;/xsd:schema&gt;&quot;&quot;&quot;)">BytesIO(&quot;<code class="variable-ellipsis">...</code></code>
+        <a name="resolver_schema_int"></a><span class="summary-name">resolver_schema_int</span> = <code title="&lt;_io.BytesIO object&gt;">&lt;_io.BytesIO object&gt;</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_int2" class="summary-name">resolver_schema_int2</a> = <code title="BytesIO(&quot;&quot;&quot;\
-&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
-    xmlns:etype=&quot;http://codespeak.net/lxml/test/external&quot;
-    targetNamespace=&quot;http://codespeak.net/lxml/test/internal&quot;&gt;
-        &lt;xsd:import namespace=&quot;http://codespeak.net/lxml/test/external\
-&quot; schemaLocation=&quot;YYY.xsd&quot; /&gt;
-        &lt;xsd:element name=&quot;a&quot; type=&quot;etype:AType&quot;/&gt;
-&lt;/xsd:schema&gt;&quot;&quot;&quot;)">BytesIO(&quot;<code class="variable-ellipsis">...</code></code>
+        <a name="resolver_schema_int2"></a><span class="summary-name">resolver_schema_int2</span> = <code title="&lt;_io.BytesIO object&gt;">&lt;_io.BytesIO object&gt;</code>
     </td>
   </tr>
 <tr>
   </td>
 </tr>
 </table>
-<a name="resolver_schema_int"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">resolver_schema_int</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-BytesIO(&quot;&quot;&quot;\
-&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
-    xmlns:etype=&quot;http://codespeak.net/lxml/test/external&quot;
-    targetNamespace=&quot;http://codespeak.net/lxml/test/internal&quot;&gt;
-        &lt;xsd:import namespace=&quot;http://codespeak.net/lxml/test/external<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-&quot; schemaLocation=&quot;XXX.xsd&quot; /&gt;
-        &lt;xsd:element name=&quot;a&quot; type=&quot;etype:AType&quot;/&gt;
-&lt;/xsd:schema&gt;&quot;&quot;&quot;)
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="resolver_schema_int2"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">resolver_schema_int2</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-BytesIO(&quot;&quot;&quot;\
-&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
-    xmlns:etype=&quot;http://codespeak.net/lxml/test/external&quot;
-    targetNamespace=&quot;http://codespeak.net/lxml/test/internal&quot;&gt;
-        &lt;xsd:import namespace=&quot;http://codespeak.net/lxml/test/external<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-&quot; schemaLocation=&quot;YYY.xsd&quot; /&gt;
-        &lt;xsd:element name=&quot;a&quot; type=&quot;etype:AType&quot;/&gt;
-&lt;/xsd:schema&gt;&quot;&quot;&quot;)
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
 <a name="resolver_schema_ext"></a>
 <div>
 <table class="details" border="1" cellpadding="3"
@@ -529,7 +465,8 @@ BytesIO(&quot;&quot;&quot;\
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f266c24..5962772 100644 (file)
@@ -284,7 +284,8 @@ opaque context object.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d09e7dd..4e75b26 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b32426c..ea53901 100644 (file)
@@ -390,22 +390,14 @@ Test cases related to XPath evaluation and the XPath class
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xpathevaluator-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_xpathevaluator-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xpathevaluator-module.html#SAMPLE_XML" class="summary-name">SAMPLE_XML</a> = <code title="etree.parse(BytesIO(&quot;&quot;&quot;
-&lt;body&gt;
-  &lt;tag&gt;text&lt;/tag&gt;
-  &lt;section&gt;
-    &lt;tag&gt;subtext&lt;/tag&gt;
-  &lt;/section&gt;
-  &lt;tag /&gt;
-  &lt;tag /&gt;
-...">etree.parse(BytesIO(<code class="variable-ellipsis">...</code></code>
+        <a name="SAMPLE_XML"></a><span class="summary-name">SAMPLE_XML</span> = <code title="&lt;lxml.etree._ElementTree object&gt;">&lt;lxml.etree._ElementTree object&gt;</code>
     </td>
   </tr>
 <tr>
@@ -419,12 +411,15 @@ Test cases related to XPath evaluation and the XPath class
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xpathevaluator-module.html#extension" class="summary-name">extension</a> = <code title="{(None, 'stringTest'): stringTest, (None, 'stringListTest'): stringLis\
-tTest, (None, 'floatTest'): floatTest, (None, 'booleanTest'): booleanT\
-est, (None, 'setTest'): setTest, (None, 'setTest2'): setTest2, (None, \
-'argsTest1'): argsTest1, (None, 'argsTest2'): argsTest2, (None, 'resul\
-tTypesTest'): resultTypesTest, (None, 'resultTypesTest2'): resultTypes\
-Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;function argsTest1 at 0x2ab<code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_xpathevaluator-module.html#extension" class="summary-name">extension</a> = <code title="{(None, 'argsTest1'): &lt;__builtin__.function object&gt;,
+ (None, 'argsTest2'): &lt;__builtin__.function object&gt;,
+ (None, 'booleanTest'): &lt;__builtin__.function object&gt;,
+ (None, 'floatTest'): &lt;__builtin__.function object&gt;,
+ (None, 'resultTypesTest'): &lt;__builtin__.function object&gt;,
+ (None, 'resultTypesTest2'): &lt;__builtin__.function object&gt;,
+ (None, 'setTest'): &lt;__builtin__.function object&gt;,
+ (None, 'setTest2'): &lt;__builtin__.function object&gt;,
+..."><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -465,33 +460,7 @@ Test2,}"><code class="variable-group">{</code><code class="variable-group">(</co
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
-  </dl>
-</td></tr></table>
-</div>
-<a name="SAMPLE_XML"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <h3 class="epydoc">SAMPLE_XML</h3>
-  
-  <dl class="fields">
-  </dl>
-  <dl class="fields">
-    <dt>Value:</dt>
-      <dd><table><tr><td><pre class="variable">
-etree.parse(BytesIO(&quot;&quot;&quot;
-&lt;body&gt;
-  &lt;tag&gt;text&lt;/tag&gt;
-  &lt;section&gt;
-    &lt;tag&gt;subtext&lt;/tag&gt;
-  &lt;/section&gt;
-  &lt;tag /&gt;
-  &lt;tag /&gt;
-<code class="variable-ellipsis">...</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -509,12 +478,15 @@ etree.parse(BytesIO(&quot;&quot;&quot;
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-{(None, 'stringTest'): stringTest, (None, 'stringListTest'): stringLis<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-tTest, (None, 'floatTest'): floatTest, (None, 'booleanTest'): booleanT<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-est, (None, 'setTest'): setTest, (None, 'setTest2'): setTest2, (None, <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-'argsTest1'): argsTest1, (None, 'argsTest2'): argsTest2, (None, 'resul<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-tTypesTest'): resultTypesTest, (None, 'resultTypesTest2'): resultTypes<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-Test2,}
+<code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest2</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">booleanTest</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">floatTest</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">resultTypesTest</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">resultTypesTest2</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">setTest</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">setTest2</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -552,7 +524,8 @@ Test2,}
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d372042..2cf4806 100644 (file)
@@ -1992,7 +1992,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:13 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ec8921..5ce197d 100644 (file)
@@ -358,7 +358,8 @@ Tests for the ETXPath class
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 760e94b..8930b6e 100644 (file)
@@ -406,7 +406,8 @@ Tests for the XPath class
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a6c7b21..b11063d 100644 (file)
@@ -408,7 +408,8 @@ Tests for the EXSLT support in XPath (requires libxslt 1.1.25+)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b60e76..727bd11 100644 (file)
@@ -1030,7 +1030,8 @@ XPath tests etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9dbcda1..322763e 100644 (file)
@@ -193,7 +193,7 @@ Test cases related to XSLT processing
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_xslt-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/t</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_xslt-module.html#this_dir" class="summary-name">this_dir</a> = <code title="'/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests'"><code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/l</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -241,7 +241,7 @@ Test cases related to XSLT processing
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-hg/src/lxml/tests</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">/home/stefan/source/Python/lxml/lxml-release/src/lxml/tests</code><code class="variable-quote">'</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -279,7 +279,8 @@ Test cases related to XSLT processing
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d20213e..76e5677 100644 (file)
@@ -224,4040 +224,4025 @@ lxml.tests.test_elementtree._XMLPullParserTest.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-34', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
 lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-35', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line"> </tt>
-<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">False</tt> <tt class="py-keyword">and</tt> <tt id="link-36" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-36', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Variable lxml.etree.LIBXSLT_VERSION=lxml.etree-module.html#LIBXSLT_VERSION"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-37', 'LIBXSLT_VERSION', 'link-37');">LIBXSLT_VERSION</a></tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">15</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">        <tt class="py-comment"># earlier versions generate no error</tt> </tt>
-<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-38" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-38', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-39', 'LIBXSLT_VERSION', 'link-37');">LIBXSLT_VERSION</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">17</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_invalid_stylesheet"></a><div id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-def"><a name="L59"></a><tt class="py-lineno">  59</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_invalid_stylesheet');">-</a><tt class="py-line">            <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++++++++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-expanded"><a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line">                <tt id="link-40" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-40', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="ETreeXSLTTestCase.test_xslt_invalid_stylesheet"></a><div id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-def"><a name="L56"></a><tt class="py-lineno">  56</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_invalid_stylesheet');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_invalid_stylesheet-expanded"><a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">        <tt id="link-36" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-36', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" 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-41', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:stylesheet /&gt;</tt> </tt>
-<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line"> </tt>
-<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-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="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line">                    <tt id="link-42" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-37', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line"><tt class="py-string">        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:stylesheet /&gt;</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-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="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">            <tt id="link-38" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-42', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Class lxml.etree.XSLTParseError=lxml.etree.XSLTParseError-class.html"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-43', 'XSLTParseError', 'link-43');">XSLTParseError</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-38', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Class lxml.etree.XSLTParseError=lxml.etree.XSLTParseError-class.html"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-39', 'XSLTParseError', 'link-39');">XSLTParseError</a></tt><tt class="py-op">,</tt> <tt id="link-40" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-44', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-45', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt id="link-46" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-46', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_xslt_copy"></a><div id="ETreeXSLTTestCase.test_xslt_copy-def"><a name="L69"></a><tt class="py-lineno">  69</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_copy-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_copy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_copy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_copy-expanded"><a name="L70"></a><tt class="py-lineno">  70</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-47" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-40', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-41', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-42', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_copy"></a><div id="ETreeXSLTTestCase.test_xslt_copy-def"><a name="L66"></a><tt class="py-lineno">  66</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_copy-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_copy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_copy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_copy-expanded"><a name="L67"></a><tt class="py-lineno">  67</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-43" 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-47', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">        <tt id="link-48" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-48', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-43', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">        <tt id="link-44" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-44', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" 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-49', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line"> </tt>
-<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-50', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-51', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-52', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">        <tt 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>
-<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">                          <tt id="link-53" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-53', 'str', 'link-10');">str</a></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="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line"> </tt>
-<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">        <tt class="py-name">transform_copy</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-45', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line"> </tt>
+<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-46', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-47', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-48" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-48', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">        <tt 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>
+<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line">                          <tt id="link-49" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-49', 'str', 'link-10');">str</a></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="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line">        <tt class="py-name">transform_copy</tt> <tt class="py-op">=</tt> <tt id="link-50" 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-54', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">transform</tt><tt class="py-op">)</tt> </tt>
-<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">transform_copy</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">        <tt 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>
-<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">                          <tt id="link-55" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-55', 'str', 'link-10');">str</a></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="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line"> </tt>
-<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-56', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-57', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-58', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">        <tt 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>
-<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">                          <tt id="link-59" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-59', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_utf8"></a><div id="ETreeXSLTTestCase.test_xslt_utf8-def"><a name="L104"></a><tt class="py-lineno"> 104</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_utf8-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_utf8');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_utf8-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_utf8-expanded"><a name="L105"></a><tt class="py-lineno"> 105</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-60" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-50', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">transform</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">transform_copy</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">        <tt 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>
+<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">                          <tt id="link-51" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-51', 'str', 'link-10');">str</a></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="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line"> </tt>
+<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-52', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-53', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-54', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">        <tt 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>
+<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">                          <tt id="link-55" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-55', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_utf8"></a><div id="ETreeXSLTTestCase.test_xslt_utf8-def"><a name="L101"></a><tt class="py-lineno"> 101</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_utf8-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_utf8');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8">test_xslt_utf8</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_utf8-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_utf8-expanded"><a name="L102"></a><tt class="py-lineno"> 102</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-56" 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-60', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-61', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line">        <tt id="link-62" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-62', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-56', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-57" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-57', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line">        <tt id="link-58" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-58', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" 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-63', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-8"/&gt;</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line"> </tt>
-<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-64', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-65', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-66', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-67', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</tt> </tt>
-<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
-<a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-68" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-68', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-59', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-8"/&gt;</tt> </tt>
+<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-60', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-61', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-62" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-62', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-63', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</tt> </tt>
+<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-64" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-64', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">            <tt class="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>
+<a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line">                              <tt id="link-65" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-65', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">            <tt class="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>
-<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line">                              <tt id="link-69" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-69', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line">            <tt class="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>
-<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line">                              <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-70', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_encoding"></a><div id="ETreeXSLTTestCase.test_xslt_encoding-def"><a name="L129"></a><tt class="py-lineno"> 129</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_encoding-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_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="ETreeXSLTTestCase.test_xslt_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_encoding-expanded"><a name="L130"></a><tt class="py-lineno"> 130</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-71" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line">                              <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-66', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_encoding"></a><div id="ETreeXSLTTestCase.test_xslt_encoding-def"><a name="L126"></a><tt class="py-lineno"> 126</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_encoding-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_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="ETreeXSLTTestCase.test_xslt_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_encoding-expanded"><a name="L127"></a><tt class="py-lineno"> 127</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-67" 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-71', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-72', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">        <tt id="link-73" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-73', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-67', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-68', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line">        <tt id="link-69" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-69', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" 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-74', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-16"/&gt;</tt> </tt>
-<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line"> </tt>
-<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-75', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-76', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-77', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-78" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-78', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0" encoding="UTF-16"?&gt;</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-79" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-79', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-70', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-16"/&gt;</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line"> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-71', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-72', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-73" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-73', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-74', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0" encoding="UTF-16"?&gt;</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-75" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-75', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">            <tt class="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>
+<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">                              <tt id="link-76" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-76', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">            <tt class="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>
-<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">                              <tt id="link-80" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-80', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">            <tt class="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>
-<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line">                              <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt id="link-81" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-81', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_encoding_override"></a><div id="ETreeXSLTTestCase.test_xslt_encoding_override-def"><a name="L154"></a><tt class="py-lineno"> 154</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_encoding_override-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_encoding_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_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="ETreeXSLTTestCase.test_xslt_encoding_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_encoding_override-expanded"><a name="L155"></a><tt class="py-lineno"> 155</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-82" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">                              <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-77', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_encoding_override"></a><div id="ETreeXSLTTestCase.test_xslt_encoding_override-def"><a name="L151"></a><tt class="py-lineno"> 151</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_encoding_override-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_encoding_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_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="ETreeXSLTTestCase.test_xslt_encoding_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_encoding_override-expanded"><a name="L152"></a><tt class="py-lineno"> 152</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-78" 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-82', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-83" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-83', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line">        <tt id="link-84" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-84', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-78', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-79', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">        <tt id="link-80" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-80', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" 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-85', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-8"/&gt;</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line"> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-86', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-87', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-88', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-89', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version='1.0' encoding='UTF-16'?&gt;\</tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;"""</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
-<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line"> </tt>
-<a name="L172"></a><tt class="py-lineno"> 172</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="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">        <tt class="py-name">res</tt><tt class="py-op">.</tt><tt id="link-90" 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-90', 'write', 'link-90');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-91" 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.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-81', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-8"/&gt;</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line"> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-82', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-83', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-84" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-84', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-85', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version='1.0' encoding='UTF-16'?&gt;\</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;"""</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line"> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</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="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line">        <tt class="py-name">res</tt><tt class="py-op">.</tt><tt id="link-86" 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-86', 'write', 'link-86');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-87" 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-91', 'encoding', 'link-91');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-92" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-92', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line">            <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-93" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-93', 'str', 'link-10');">str</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 class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-94" 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-94', 'replace', 'link-94');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line">            <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-95', 'str', 'link-10');">str</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 class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-96', 'replace', 'link-94');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line">        <tt class="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-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_unicode"></a><div id="ETreeXSLTTestCase.test_xslt_unicode-def"><a name="L180"></a><tt class="py-lineno"> 180</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_unicode-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_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="ETreeXSLTTestCase.test_xslt_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_unicode-expanded"><a name="L181"></a><tt class="py-lineno"> 181</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-97" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-87', 'encoding', 'link-87');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-88" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-88', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line">            <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-89', 'str', 'link-10');">str</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 class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-90" 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-90', 'replace', 'link-90');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line">            <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt id="link-91" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-91', 'str', 'link-10');">str</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 class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-92', 'replace', 'link-90');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line">        <tt class="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-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_unicode"></a><div id="ETreeXSLTTestCase.test_xslt_unicode-def"><a name="L177"></a><tt class="py-lineno"> 177</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_unicode-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode">test_xslt_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="ETreeXSLTTestCase.test_xslt_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_unicode-expanded"><a name="L178"></a><tt class="py-lineno"> 178</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-93" 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-97', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-98', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">        <tt id="link-99" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-99', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-93', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-94" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-94', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">                                 <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line">        <tt id="link-95" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-95', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" 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-100', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-16"/&gt;</tt> </tt>
-<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line"> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-101" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-101', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-102', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-103" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-103', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-104" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-104', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">        <tt class="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>
-<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">                          <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_unicode_standalone"></a><div id="ETreeXSLTTestCase.test_xslt_unicode_standalone-def"><a name="L201"></a><tt class="py-lineno"> 201</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_unicode_standalone-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_unicode_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_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="ETreeXSLTTestCase.test_xslt_unicode_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_unicode_standalone-expanded"><a name="L202"></a><tt class="py-lineno"> 202</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-105" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-96', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-16"/&gt;</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-97', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-98', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-99', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-100" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-100', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line">        <tt class="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>
+<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line">                          <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_unicode_standalone"></a><div id="ETreeXSLTTestCase.test_xslt_unicode_standalone-def"><a name="L198"></a><tt class="py-lineno"> 198</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_unicode_standalone-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_unicode_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode_standalone">test_xslt_unicode_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="ETreeXSLTTestCase.test_xslt_unicode_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_unicode_standalone-expanded"><a name="L199"></a><tt class="py-lineno"> 199</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-101" 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-105', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-106" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-106', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">        <tt id="link-107" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-107', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-101', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-102', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;\\uF8D2&lt;/b&gt;&lt;c&gt;\\uF8D2&lt;/c&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">        <tt id="link-103" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-103', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" 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-108', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-16" standalone="no"/&gt;</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line"> </tt>
-<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-109', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-110', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-111" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-111', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-112', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0" standalone="no"?&gt;</tt> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">        <tt class="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>
-<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">                         <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_input"></a><div id="ETreeXSLTTestCase.test_xslt_input-def"><a name="L222"></a><tt class="py-lineno"> 222</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_input-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_input');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_input-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_input-expanded"><a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">        <tt id="link-113" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-113', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-104', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output encoding="UTF-16" standalone="no"/&gt;</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line"> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-105" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-105', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-106', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-107" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-107', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-108', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0" standalone="no"?&gt;</tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;\\uF8D2&lt;/foo&gt;</tt> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">        <tt class="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>
+<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">                         <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_input"></a><div id="ETreeXSLTTestCase.test_xslt_input-def"><a name="L219"></a><tt class="py-lineno"> 219</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_input-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_input');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_input-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_input-expanded"><a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">        <tt id="link-109" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-109', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" 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-114', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-110', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line"> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-111" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-115', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-116', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-117" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-117', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-111', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-112', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-113" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-113', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-118', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-119', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-120" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-120', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-121" 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-121', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_input_partial_doc"></a><div id="ETreeXSLTTestCase.test_xslt_input_partial_doc-def"><a name="L235"></a><tt class="py-lineno"> 235</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_input_partial_doc-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_input_partial_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_input_partial_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_input_partial_doc-expanded"><a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-122', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-114', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-115', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-116" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-116', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-117" 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-117', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_input_partial_doc"></a><div id="ETreeXSLTTestCase.test_xslt_input_partial_doc-def"><a name="L232"></a><tt class="py-lineno"> 232</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_input_partial_doc-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_input_partial_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc">test_xslt_input_partial_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_input_partial_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_input_partial_doc-expanded"><a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">        <tt id="link-118" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-118', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" 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-123', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line"><tt class="py-string">&lt;otherroot&gt;</tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line"><tt class="py-string">&lt;/otherroot&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line"> </tt>
-<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-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-124" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-119', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line"><tt class="py-string">&lt;otherroot&gt;</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line"><tt class="py-string">&lt;/otherroot&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line"> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-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-120" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-124', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-125', 'XSLTParseError', 'link-43');">XSLTParseError</a></tt><tt class="py-op">,</tt> <tt id="link-126" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-120', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-121', 'XSLTParseError', 'link-39');">XSLTParseError</a></tt><tt class="py-op">,</tt> <tt id="link-122" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-126', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-127', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-128', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">        <tt class="py-name">root_node</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-129', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-130', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-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-131" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-122', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-123', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt id="link-124" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-124', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">        <tt class="py-name">root_node</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-125', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-126', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-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-127" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-131', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-132', 'XSLTParseError', 'link-43');">XSLTParseError</a></tt><tt class="py-op">,</tt> <tt id="link-133" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-127', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-128', 'XSLTParseError', 'link-39');">XSLTParseError</a></tt><tt class="py-op">,</tt> <tt id="link-129" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-133', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-134', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt class="py-name">root_node</tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-129', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-130', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt class="py-name">root_node</tt><tt class="py-op">)</tt> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-135', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-136', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">root_node</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="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_broken"></a><div id="ETreeXSLTTestCase.test_xslt_broken-def"><a name="L252"></a><tt class="py-lineno"> 252</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_broken-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_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="ETreeXSLTTestCase.test_xslt_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_broken-expanded"><a name="L253"></a><tt class="py-lineno"> 253</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-137" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-131', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-132', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">root_node</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="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_broken"></a><div id="ETreeXSLTTestCase.test_xslt_broken-def"><a name="L249"></a><tt class="py-lineno"> 249</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_broken-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_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="ETreeXSLTTestCase.test_xslt_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_broken-expanded"><a name="L250"></a><tt class="py-lineno"> 250</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-133" 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-137', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line">        <tt id="link-138" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-138', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-133', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">        <tt id="link-134" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-134', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135" 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-139', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:foo /&gt;</tt> </tt>
-<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-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-140" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-135', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:foo /&gt;</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-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-136" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-136', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-137', 'XSLTParseError', 'link-39');">XSLTParseError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line">                          <tt id="link-138" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-140', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-141', 'XSLTParseError', 'link-43');">XSLTParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">                          <tt id="link-142" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-138', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-139', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-140', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line"> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">        <tt class="py-name">exc</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line">            <tt id="link-141" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-142', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-143', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">,</tt> <tt id="link-144" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-144', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_parameters-def"><a name="L262"></a><tt class="py-lineno"> 262</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameters-expanded"><a name="L263"></a><tt class="py-lineno"> 263</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-145" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-141', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-142', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-143" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-143', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-144" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-144', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="lxml.etree.XSLTParseError" class="py-name" href="#" onclick="return doclink('link-145', 'XSLTParseError', 'link-39');">XSLTParseError</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line">            <tt class="py-name">exc</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-146', 'assertFalse', 'link-146');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-string">"XSLT processing should have failed but didn't"</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</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">exc</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="L267"></a><tt class="py-lineno"> 267</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">exc</tt><tt class="py-op">.</tt><tt id="link-147" 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-147', 'error_log', 'link-147');">error_log</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">error</tt> <tt class="py-keyword">in</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><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-148', 'error_log', 'link-147');">error_log</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</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">':ERROR:XSLT:'</tt> <tt class="py-keyword">in</tt> <tt id="link-149" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-149', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_parameters-def"><a name="L271"></a><tt class="py-lineno"> 271</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters">test_xslt_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameters-expanded"><a name="L272"></a><tt class="py-lineno"> 272</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-150" 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-145', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line">        <tt id="link-146" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-146', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-150', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">        <tt id="link-151" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-151', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" 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-147', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line"> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-148" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-148', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-149', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-150', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</tt><tt class="py-op">)</tt> </tt>
-<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line">        <tt 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>
-<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Bar&lt;/foo&gt;</tt> </tt>
-<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line">                          <tt id="link-151" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-151', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_string_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_string_parameters-def"><a name="L280"></a><tt class="py-lineno"> 280</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_string_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_string_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_string_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_string_parameters-expanded"><a name="L281"></a><tt class="py-lineno"> 281</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-152" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-152', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line"> </tt>
+<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-153" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-153', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-154', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-155" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-155', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line">        <tt 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>
+<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Bar&lt;/foo&gt;</tt> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">                          <tt id="link-156" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-156', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_string_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_string_parameters-def"><a name="L289"></a><tt class="py-lineno"> 289</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_string_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_string_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters">test_xslt_string_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_string_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_string_parameters-expanded"><a name="L290"></a><tt class="py-lineno"> 290</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-157" 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-152', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt id="link-153" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-153', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-157', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt id="link-158" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-158', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" 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-154', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line"> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-155" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-159', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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">st</tt> <tt class="py-op">=</tt> <tt id="link-160" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-155', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-156', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-157" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-157', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt id="link-158" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-160', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-161', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-162" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-162', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt id="link-163" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-158', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-159', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name" targets="Static Method lxml.etree.XSLT.strparam()=lxml.etree.XSLT-class.html#strparam"><a title="lxml.etree.XSLT.strparam" class="py-name" href="#" onclick="return doclink('link-160', 'strparam', 'link-160');">strparam</a></tt><tt class="py-op">(</tt><tt class="py-string">'''it's me, "Bar"'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line">        <tt 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>
-<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;it's me, "Bar"&lt;/foo&gt;</tt> </tt>
-<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line">                          <tt id="link-161" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-161', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_parameter_invalid"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_invalid-def"><a name="L298"></a><tt class="py-lineno"> 298</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_invalid-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_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="ETreeXSLTTestCase.test_xslt_parameter_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_invalid-expanded"><a name="L299"></a><tt class="py-lineno"> 299</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-162" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-163', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-164', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">.</tt><tt id="link-165" class="py-name" targets="Static Method lxml.etree.XSLT.strparam()=lxml.etree.XSLT-class.html#strparam"><a title="lxml.etree.XSLT.strparam" class="py-name" href="#" onclick="return doclink('link-165', 'strparam', 'link-165');">strparam</a></tt><tt class="py-op">(</tt><tt class="py-string">'''it's me, "Bar"'''</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-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>
+<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;it's me, "Bar"&lt;/foo&gt;</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">                          <tt id="link-166" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-166', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_parameter_invalid"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_invalid-def"><a name="L307"></a><tt class="py-lineno"> 307</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_invalid-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_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="ETreeXSLTTestCase.test_xslt_parameter_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_invalid-expanded"><a name="L308"></a><tt class="py-lineno"> 308</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-167" 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-162', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">        <tt id="link-163" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-163', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-167', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">        <tt id="link-168" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-168', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" 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-164', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:param name="bar"/&gt;</tt> </tt>
-<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line"> </tt>
-<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-165" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-169', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:param name="bar"/&gt;</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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-name">st</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-165', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-166', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-167" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-167', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <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-168" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-170', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-171', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-172', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <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-173" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-168', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name" targets="Class lxml.etree.XSLTApplyError=lxml.etree.XSLTApplyError-class.html"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-169', 'XSLTApplyError', 'link-169');">XSLTApplyError</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">st</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"&lt;test/&gt;"</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">res</tt> <tt class="py-op">=</tt> <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-170" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-173', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name" targets="Class lxml.etree.XSLTApplyError=lxml.etree.XSLTApplyError-class.html"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-174', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></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">st</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"&lt;test/&gt;"</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">res</tt> <tt class="py-op">=</tt> <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-175" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-170', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-171', 'XSLTApplyError', 'link-169');">XSLTApplyError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line">                                <tt class="py-name">st</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"...."</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line"> </tt>
-<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-172" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-172', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-173', 'LIBXSLT_VERSION', 'link-37');">LIBXSLT_VERSION</a></tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">18</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-comment"># later versions produce no error</tt> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_parameter_missing"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_missing-def"><a name="L317"></a><tt class="py-lineno"> 317</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_missing-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_missing');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_parameter_missing-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_missing-expanded"><a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">            <tt class="py-comment"># apply() without needed parameter will lead to XSLTApplyError</tt> </tt>
-<a name="L319"></a><tt class="py-lineno"> 319</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-174" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-175', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-176', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></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">st</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"...."</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_parameter_missing"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_missing-def"><a name="L324"></a><tt class="py-lineno"> 324</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_missing-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_missing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_parameter_missing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_missing-expanded"><a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line">        <tt class="py-comment"># apply() without needed parameter will lead to XSLTApplyError</tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</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-177" 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-174', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">            <tt id="link-175" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-175', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-177', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line">        <tt id="link-178" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-178', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" 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-176', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line"> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">            <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-177" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-179', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-180" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-177', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-178', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-179" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-179', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-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-180" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-180', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-181', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-182" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-182', 'style', 'link-24');">style</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-comment"># at least libxslt 1.1.28 produces this error, earlier ones (e.g. 1.1.18) might not ...</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 id="link-183" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-180', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-181', 'XSLTApplyError', 'link-169');">XSLTApplyError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">                              <tt class="py-name">st</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Method lxml.etree.XSLT.apply()=lxml.etree.XSLT-class.html#apply"><a title="lxml.etree.XSLT.apply" class="py-name" href="#" onclick="return doclink('link-182', 'apply', 'link-182');">apply</a></tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_multiple_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_multiple_parameters-def"><a name="L332"></a><tt class="py-lineno"> 332</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_multiple_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_multiple_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_multiple_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_multiple_parameters-expanded"><a name="L333"></a><tt class="py-lineno"> 333</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-183" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-183', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-184', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt class="py-name">st</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name" targets="Method lxml.etree.XSLT.apply()=lxml.etree.XSLT-class.html#apply"><a title="lxml.etree.XSLT.apply" class="py-name" href="#" onclick="return doclink('link-185', 'apply', 'link-185');">apply</a></tt><tt class="py-op">,</tt> <tt class="py-name">tree</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="ETreeXSLTTestCase.test_xslt_multiple_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_multiple_parameters-def"><a name="L339"></a><tt class="py-lineno"> 339</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_multiple_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_multiple_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_multiple_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_multiple_parameters-expanded"><a name="L340"></a><tt class="py-lineno"> 340</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-186" 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-183', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">        <tt id="link-184" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-184', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-186', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt id="link-187" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-187', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-188" 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-185', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$baz" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-186" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-186', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-187', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-188" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-188', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"'Baz'"</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 class="py-string">'''\</tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Bar&lt;/foo&gt;&lt;foo&gt;Baz&lt;/foo&gt;</tt> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">                          <tt id="link-189" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-189', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_xslt_parameter_xpath"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath-def"><a name="L352"></a><tt class="py-lineno"> 352</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_xpath-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_xpath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_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="ETreeXSLTTestCase.test_xslt_parameter_xpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath-expanded"><a name="L353"></a><tt class="py-lineno"> 353</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-190" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-188', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$baz" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line"> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-189" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-189', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-190', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-191" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-191', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"'Baz'"</tt><tt class="py-op">)</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">        <tt 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>
+<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Bar&lt;/foo&gt;&lt;foo&gt;Baz&lt;/foo&gt;</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">                          <tt id="link-192" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-192', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">         </tt>
+<a name="ETreeXSLTTestCase.test_xslt_parameter_xpath"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath-def"><a name="L359"></a><tt class="py-lineno"> 359</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_xpath-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_xpath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_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="ETreeXSLTTestCase.test_xslt_parameter_xpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath-expanded"><a name="L360"></a><tt class="py-lineno"> 360</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-193" 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-190', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">        <tt id="link-191" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-191', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-193', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">        <tt id="link-194" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-194', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" 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-192', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-193', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-194', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-195" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-195', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"/a/b/text()"</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 class="py-string">'''\</tt> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">                          <tt id="link-196" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-196', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_parameter_xpath_object"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-def"><a name="L371"></a><tt class="py-lineno"> 371</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_xpath_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-expanded"><a name="L372"></a><tt class="py-lineno"> 372</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-197" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-195', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line"> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-196" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-196', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-197', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-198" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-198', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"/a/b/text()"</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">                          <tt id="link-199" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-199', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_parameter_xpath_object"></a><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-def"><a name="L378"></a><tt class="py-lineno"> 378</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_parameter_xpath_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_parameter_xpath_object-expanded"><a name="L379"></a><tt class="py-lineno"> 379</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-200" 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-197', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">        <tt id="link-198" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-198', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-200', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line">        <tt id="link-201" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-201', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-202" 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-199', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line"> </tt>
-<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-200" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-202', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-203" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-200', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-201', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-202" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-202', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt id="link-203" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-203', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-204', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-205', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt id="link-206" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-203', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Class lxml.etree.XPath=lxml.etree.XPath-class.html"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-204', 'XPath', 'link-204');">XPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"/a/b/text()"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">        <tt 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>
-<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">                          <tt id="link-205" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-205', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_xslt_default_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_default_parameters-def"><a name="L390"></a><tt class="py-lineno"> 390</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_default_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_default_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_default_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_default_parameters-expanded"><a name="L391"></a><tt class="py-lineno"> 391</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-206" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-206', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-207" class="py-name" targets="Class lxml.etree.XPath=lxml.etree.XPath-class.html"><a title="lxml.etree.XPath" class="py-name" href="#" onclick="return doclink('link-207', 'XPath', 'link-207');">XPath</a></tt><tt class="py-op">(</tt><tt class="py-string">"/a/b/text()"</tt><tt class="py-op">)</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 class="py-string">'''\</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line">                          <tt id="link-208" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-208', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line">         </tt>
+<a name="ETreeXSLTTestCase.test_xslt_default_parameters"></a><div id="ETreeXSLTTestCase.test_xslt_default_parameters-def"><a name="L397"></a><tt class="py-lineno"> 397</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_default_parameters-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_default_parameters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_default_parameters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_default_parameters-expanded"><a name="L398"></a><tt class="py-lineno"> 398</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-209" 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-206', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">        <tt id="link-207" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-207', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-209', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">        <tt id="link-210" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-210', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-211" 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-208', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:param name="bar" select="'Default'" /&gt;</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"> </tt>
-<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-209" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-209', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-210', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-211" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-211', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Bar&lt;/foo&gt;</tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line">                          <tt id="link-212" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-212', 'str', 'link-10');">str</a></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="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="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 class="py-string">'''\</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Default&lt;/foo&gt;</tt> </tt>
-<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">                          <tt id="link-213" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-213', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_xslt_html_output"></a><div id="ETreeXSLTTestCase.test_xslt_html_output-def"><a name="L416"></a><tt class="py-lineno"> 416</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_html_output-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_html_output');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_html_output-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_html_output-expanded"><a name="L417"></a><tt class="py-lineno"> 417</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-214" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-211', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:param name="bar" select="'Default'" /&gt;</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-212', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-213', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-214" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-214', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</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 class="py-string">'''\</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Bar&lt;/foo&gt;</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">                          <tt id="link-215" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-215', 'str', 'link-10');">str</a></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="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line">        <tt 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>
+<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;Default&lt;/foo&gt;</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line">                          <tt id="link-216" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-216', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">         </tt>
+<a name="ETreeXSLTTestCase.test_xslt_html_output"></a><div id="ETreeXSLTTestCase.test_xslt_html_output-def"><a name="L423"></a><tt class="py-lineno"> 423</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_html_output-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_html_output');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_html_output-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_html_output-expanded"><a name="L424"></a><tt class="py-lineno"> 424</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-217" 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-214', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line">        <tt id="link-215" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-215', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-217', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">        <tt id="link-218" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-218', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-219" 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-216', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output method="html"/&gt;</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:strip-space elements="*"/&gt;</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line"><tt class="py-string">    &lt;html&gt;&lt;body&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/body&gt;&lt;/html&gt;</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-219', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:output method="html"/&gt;</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:strip-space elements="*"/&gt;</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"><tt class="py-string">    &lt;html&gt;&lt;body&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/body&gt;&lt;/html&gt;</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-217', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-218', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-219" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-219', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">        <tt 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">'&lt;html&gt;&lt;body&gt;B&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">                          <tt id="link-220" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-220', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-221" 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-221', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_include"></a><div id="ETreeXSLTTestCase.test_xslt_include-def"><a name="L433"></a><tt class="py-lineno"> 433</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_include-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_include-expanded"><a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-222" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-220', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-221', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-222" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-222', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="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 class="py-string">'&lt;html&gt;&lt;body&gt;B&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">                          <tt id="link-223" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-223', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-224" 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-224', 'strip', 'link-224');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_include"></a><div id="ETreeXSLTTestCase.test_xslt_include-def"><a name="L440"></a><tt class="py-lineno"> 440</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_include-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_include-expanded"><a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-225" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-222', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-225', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-226" 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-223', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-224" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-224', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test1.xslt'</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">st</tt> <tt class="py-op">=</tt> <tt id="link-225" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-226', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-227" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-227', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test1.xslt'</tt><tt class="py-op">)</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">st</tt> <tt class="py-op">=</tt> <tt id="link-228" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-225', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-226', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</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="ETreeXSLTTestCase.test_xslt_include_from_filelike"></a><div id="ETreeXSLTTestCase.test_xslt_include_from_filelike-def"><a name="L437"></a><tt class="py-lineno"> 437</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_include_from_filelike-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_include_from_filelike');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_include_from_filelike-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_include_from_filelike-expanded"><a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-227" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-227', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test1.xslt'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-228" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-228', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-229', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_include_from_filelike"></a><div id="ETreeXSLTTestCase.test_xslt_include_from_filelike-def"><a name="L444"></a><tt class="py-lineno"> 444</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_include_from_filelike-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_include_from_filelike');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_include_from_filelike-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_include_from_filelike-expanded"><a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-230" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-230', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test1.xslt'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-231" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-228', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-231', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-232" 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-229', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-230" class="py-name" targets="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.TreeBuilder.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-232', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</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">f</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="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.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-230', 'close', 'link-230');">close</a></tt><tt class="py-op">(</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">st</tt> <tt class="py-op">=</tt> <tt id="link-231" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-233', 'close', 'link-233');">close</a></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">st</tt> <tt class="py-op">=</tt> <tt id="link-234" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-231', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-232', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_multiple_transforms"></a><div id="ETreeXSLTTestCase.test_xslt_multiple_transforms-def"><a name="L443"></a><tt class="py-lineno"> 443</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_multiple_transforms-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_multiple_transforms');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_multiple_transforms-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_multiple_transforms-expanded"><a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt id="link-233" 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-233', 'xml', 'link-233');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;a/&gt;'</tt> </tt>
-<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">        <tt id="link-234" class="py-name" targets="Method lxml.etree._ElementTree.xslt()=lxml.etree._ElementTree-class.html#xslt"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-234', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''\</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"><tt class="py-string">        &lt;response&gt;Some text&lt;/response&gt;</tt> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
-<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line"><tt class="py-string">'''</tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-234', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-235', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</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="ETreeXSLTTestCase.test_xslt_multiple_transforms"></a><div id="ETreeXSLTTestCase.test_xslt_multiple_transforms-def"><a name="L450"></a><tt class="py-lineno"> 450</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_multiple_transforms-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_multiple_transforms');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms">test_xslt_multiple_transforms</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_multiple_transforms-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_multiple_transforms-expanded"><a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">        <tt id="link-236" 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-236', 'xml', 'link-236');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;a/&gt;'</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt id="link-237" class="py-name" targets="Method lxml.etree._ElementTree.xslt()=lxml.etree._ElementTree-class.html#xslt"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-237', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''\</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line"><tt class="py-string">        &lt;response&gt;Some text&lt;/response&gt;</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line"><tt class="py-string">'''</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" 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-235', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-236" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-236', 'xml', 'link-233');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">        <tt class="py-name">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-238', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-239" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-239', 'xml', 'link-236');">xml</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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" 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-237', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-238" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-238', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">        <tt id="link-239" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-239', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-240" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-240', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-241" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-241', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line">        <tt id="link-242" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-242', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-243" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-240', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-241', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</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">result</tt> <tt class="py-op">=</tt> <tt id="link-242" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-242', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</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-243" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-243', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-244', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-245" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-245', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line"> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">        <tt id="link-246" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-243', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-244" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-244', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-245', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">         </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-246', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-247" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-247', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-248', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</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>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-249" 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-246', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-247" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-247', 'xml', 'link-233');">xml</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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-249', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-250" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-250', 'xml', 'link-236');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt class="py-name">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-251" 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-248', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-249" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-249', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line">        <tt id="link-250" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-250', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-251', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-252" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-252', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt id="link-253" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-253', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-254" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-251', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-252', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-253" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-253', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">         </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">        <tt id="link-254" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-254', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-255', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</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">result</tt> <tt class="py-op">=</tt> <tt id="link-256" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-256', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">         </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">        <tt id="link-257" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-254', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-255', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-256', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_repeat_transform"></a><div id="ETreeXSLTTestCase.test_xslt_repeat_transform-def"><a name="L466"></a><tt class="py-lineno"> 466</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_repeat_transform-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_repeat_transform');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_repeat_transform-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_repeat_transform-expanded"><a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt id="link-257" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-257', 'xml', 'link-233');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;a/&gt;'</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt id="link-258" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-258', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''\</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line"><tt class="py-string">        &lt;response&gt;Some text&lt;/response&gt;</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line"><tt class="py-string">'''</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-257', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-258" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-258', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-259', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_repeat_transform"></a><div id="ETreeXSLTTestCase.test_xslt_repeat_transform-def"><a name="L473"></a><tt class="py-lineno"> 473</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_repeat_transform-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_repeat_transform');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_repeat_transform-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_repeat_transform-expanded"><a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">        <tt id="link-260" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-260', 'xml', 'link-236');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;a/&gt;'</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt id="link-261" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-261', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''\</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line"><tt class="py-string">        &lt;response&gt;Some text&lt;/response&gt;</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line"><tt class="py-string">'''</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-262" 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-259', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-260" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-260', 'xml', 'link-233');">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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-262', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-263" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-263', 'xml', 'link-236');">xml</a></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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-264" 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-261', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-262" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-262', 'xslt', 'link-234');">xslt</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">transform</tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-264', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-265" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-265', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-266" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-263', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-264" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-264', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt id="link-265" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-265', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-266', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-267" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-267', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt id="link-268" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-266', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-267" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-267', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">        <tt id="link-268" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-268', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-269', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-270" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-270', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</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 id="link-271" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-271', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result</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 class="py-name">result1</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</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">result2</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</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-272" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-272', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-273" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-273', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-269', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-270" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-270', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">        <tt id="link-274" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-274', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_empty"></a><div id="ETreeXSLTTestCase.test_xslt_empty-def"><a name="L491"></a><tt class="py-lineno"> 491</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_empty-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_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="ETreeXSLTTestCase.test_xslt_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_empty-expanded"><a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">        <tt class="py-comment"># could segfault if result contains "empty document"</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">        <tt id="link-275" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-275', 'xml', 'link-233');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;blah/&gt;'</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">        <tt id="link-276" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-276', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/" /&gt;</tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line"> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">        <tt id="link-271" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-271', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-272" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-272', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-273', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">        <tt id="link-274" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-274', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">        <tt class="py-name">result1</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">        <tt class="py-name">result2</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-275" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-275', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-276" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-276', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result2</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">        <tt id="link-277" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-277', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_empty"></a><div id="ETreeXSLTTestCase.test_xslt_empty-def"><a name="L498"></a><tt class="py-lineno"> 498</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_empty-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_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="ETreeXSLTTestCase.test_xslt_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_empty-expanded"><a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">        <tt class="py-comment"># could segfault if result contains "empty document"</tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">        <tt id="link-278" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-278', 'xml', 'link-236');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;blah/&gt;'</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">        <tt id="link-279" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-279', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/" /&gt;</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line"> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-280" 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-277', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-278" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-278', 'xml', 'link-233');">xml</a></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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-279" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-280', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-281" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-281', 'xml', 'link-236');">xml</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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-282" 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-279', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-280" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-280', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">        <tt id="link-281" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-281', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-282" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-282', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-283" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-283', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-284" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-284', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">        <tt 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 id="link-285" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-285', 'str', 'link-10');">str</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="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_message"></a><div id="ETreeXSLTTestCase.test_xslt_message-def"><a name="L506"></a><tt class="py-lineno"> 506</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_message-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_message');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_message-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_message-expanded"><a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt id="link-286" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-286', 'xml', 'link-233');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;blah/&gt;'</tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">        <tt id="link-287" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-287', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:message&gt;TEST TEST TEST&lt;/xsl:message&gt;</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line"> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-282', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-283" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-283', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">        <tt id="link-284" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-284', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-285" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-285', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-286', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</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">result</tt> <tt class="py-op">=</tt> <tt id="link-287" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-287', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-288" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-288', 'str', 'link-10');">str</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="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_message"></a><div id="ETreeXSLTTestCase.test_xslt_message-def"><a name="L513"></a><tt class="py-lineno"> 513</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_message-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_message');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message">test_xslt_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_message-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_message-expanded"><a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">        <tt id="link-289" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-289', 'xml', 'link-236');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;blah/&gt;'</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line">        <tt id="link-290" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-290', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:message&gt;TEST TEST TEST&lt;/xsl:message&gt;</tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-291" 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-288', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-289" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-289', 'xml', 'link-233');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line">        <tt class="py-name">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-291', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-292" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-292', 'xml', 'link-236');">xml</a></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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-293" 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-290', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-291" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-291', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">        <tt id="link-292" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-292', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-293" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-293', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-294" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-294', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">        <tt id="link-295" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-295', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-296" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-293', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-294', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</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">result</tt> <tt class="py-op">=</tt> <tt id="link-295" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-295', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</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 class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-296" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-296', 'str', 'link-10');">str</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="L521"></a><tt class="py-lineno"> 521</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">"TEST TEST TEST"</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">entry</tt><tt class="py-op">.</tt><tt id="link-297" 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-297', 'message', 'link-297');">message</a></tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">                                          <tt class="py-keyword">for</tt> <tt class="py-name">entry</tt> <tt class="py-keyword">in</tt> <tt id="link-298" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-298', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-299" 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.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-296', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-297" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-297', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-298" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-298', 'style', 'link-24');">style</a></tt><tt class="py-op">(</tt><tt class="py-name">source</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 class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-299" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-299', 'str', 'link-10');">str</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="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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"TEST TEST TEST"</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">entry</tt><tt class="py-op">.</tt><tt id="link-300" 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-300', 'message', 'link-300');">message</a></tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">                                          <tt class="py-keyword">for</tt> <tt class="py-name">entry</tt> <tt class="py-keyword">in</tt> <tt id="link-301" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-301', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-302" class="py-name"><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-299', 'error_log', 'link-299');">error_log</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_message_terminate"></a><div id="ETreeXSLTTestCase.test_xslt_message_terminate-def"><a name="L524"></a><tt class="py-lineno"> 524</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_message_terminate-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_message_terminate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_message_terminate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_message_terminate-expanded"><a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">        <tt id="link-300" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-300', 'xml', 'link-233');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;blah/&gt;'</tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">        <tt id="link-301" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-301', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:message terminate="yes"&gt;TEST TEST TEST&lt;/xsl:message&gt;</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-302" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-302', 'error_log', 'link-147');">error_log</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_message_terminate"></a><div id="ETreeXSLTTestCase.test_xslt_message_terminate-def"><a name="L531"></a><tt class="py-lineno"> 531</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_message_terminate-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_message_terminate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate">test_xslt_message_terminate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_message_terminate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_message_terminate-expanded"><a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt id="link-303" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-303', 'xml', 'link-236');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;blah/&gt;'</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">        <tt id="link-304" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-304', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:message terminate="yes"&gt;TEST TEST TEST&lt;/xsl:message&gt;</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line"> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-305" 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-302', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-303" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-303', 'xml', 'link-233');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">        <tt class="py-name">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-305', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-306" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-306', 'xml', 'link-236');">xml</a></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">styledoc</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-307" 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-304', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-305" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-305', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">        <tt id="link-306" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-306', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-307" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-307', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-308" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-308', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt id="link-309" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-309', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt id="link-310" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-307', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-308', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line"> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-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-309" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-310', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-311', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">styledoc</tt><tt class="py-op">)</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt id="link-312" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-309', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-310', 'XSLTApplyError', 'link-169');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-311" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-311', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">source</tt><tt class="py-op">)</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</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">"TEST TEST TEST"</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">entry</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-312', 'message', 'link-297');">message</a></tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">                                          <tt class="py-keyword">for</tt> <tt class="py-name">entry</tt> <tt class="py-keyword">in</tt> <tt id="link-313" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-313', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="lxml.etree.XInclude.error_log
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-312', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-313', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-314" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-314', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">source</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"TEST TEST TEST"</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">entry</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-315', 'message', 'link-300');">message</a></tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">                                          <tt class="py-keyword">for</tt> <tt class="py-name">entry</tt> <tt class="py-keyword">in</tt> <tt id="link-316" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-316', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><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-314', 'error_log', 'link-299');">error_log</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_shortcut"></a><div id="ETreeXSLTTestCase.test_xslt_shortcut-def"><a name="L542"></a><tt class="py-lineno"> 542</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_shortcut-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_shortcut');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_shortcut-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_shortcut-expanded"><a name="L543"></a><tt class="py-lineno"> 543</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-315" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-317', 'error_log', 'link-147');">error_log</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="ETreeXSLTTestCase.test_xslt_shortcut"></a><div id="ETreeXSLTTestCase.test_xslt_shortcut-def"><a name="L549"></a><tt class="py-lineno"> 549</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_shortcut-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_shortcut');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut">test_xslt_shortcut</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_shortcut-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_shortcut-expanded"><a name="L550"></a><tt class="py-lineno"> 550</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-318" 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-315', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">        <tt id="link-316" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-316', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-318', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">        <tt id="link-319" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-319', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-320" 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-317', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line"><tt class="py-string">    &lt;doc&gt;</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$baz" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line"><tt class="py-string">    &lt;/doc&gt;</tt> </tt>
-<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line"> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-318', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-319" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-319', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"'Baz'"</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>
-<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line">            <tt id="link-320" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-320', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;foo&gt;Bar&lt;/foo&gt;&lt;foo&gt;Baz&lt;/foo&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">            <tt id="link-321" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-321', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-322" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-322', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-323', 'getroot', 'link-121');">getroot</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="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_multiple_elementrees"></a><div id="ETreeXSLTTestCase.test_multiple_elementrees-def"><a name="L561"></a><tt class="py-lineno"> 561</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_multiple_elementrees-toggle" onclick="return toggle('ETreeXSLTTestCase.test_multiple_elementrees');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_multiple_elementrees-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_multiple_elementrees-expanded"><a name="L562"></a><tt class="py-lineno"> 562</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-324" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-320', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line"><tt class="py-string">    &lt;doc&gt;</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$bar" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="$baz" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line"><tt class="py-string">    &lt;/doc&gt;</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line"> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-321', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-322" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-322', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">"'Bar'"</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"'Baz'"</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>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">            <tt id="link-323" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-323', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;foo&gt;Bar&lt;/foo&gt;&lt;foo&gt;Baz&lt;/foo&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">            <tt id="link-324" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-324', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-325', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-326', 'getroot', 'link-117');">getroot</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="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">         </tt>
+<a name="ETreeXSLTTestCase.test_multiple_elementrees"></a><div id="ETreeXSLTTestCase.test_multiple_elementrees-def"><a name="L568"></a><tt class="py-lineno"> 568</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_multiple_elementrees-toggle" onclick="return toggle('ETreeXSLTTestCase.test_multiple_elementrees');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_multiple_elementrees-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_multiple_elementrees-expanded"><a name="L569"></a><tt class="py-lineno"> 569</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-327" 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-324', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">        <tt id="link-325" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-325', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-327', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">        <tt id="link-328" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-328', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-329" 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-326', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:apply-templates/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;&lt;B&gt;&lt;xsl:apply-templates/&gt;&lt;/B&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="c"&gt;&lt;C&gt;&lt;xsl:apply-templates/&gt;&lt;/C&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line"> </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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase._rootstring()=lxml.tests.common_imports.HelperTestCase-class.html#_rootstring,Method lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-327', '_rootstring', 'link-327');">_rootstring</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="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">                          <tt id="link-328" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-328', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-329', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-330" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-330', 'style', 'link-24');">style</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-331', '_rootstring', 'link-327');">_rootstring</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="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">                          <tt id="link-332" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-332', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">        <tt class="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-333" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-333', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">                          <tt id="link-334" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-334', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;B&gt;B&lt;/B&gt;&lt;C&gt;C&lt;/C&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</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">b_tree</tt> <tt class="py-op">=</tt> <tt id="link-335" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-335', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-329', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:apply-templates/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;&lt;B&gt;&lt;xsl:apply-templates/&gt;&lt;/B&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="c"&gt;&lt;C&gt;&lt;xsl:apply-templates/&gt;&lt;/C&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">        <tt class="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-330" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase._rootstring()=lxml.tests.common_imports.HelperTestCase-class.html#_rootstring,Method lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-330', '_rootstring', 'link-330');">_rootstring</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="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">                          <tt id="link-331" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-331', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-332', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-333" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-333', 'style', 'link-24');">style</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">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-334" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-334', '_rootstring', 'link-330');">_rootstring</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="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">                          <tt id="link-335" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-335', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt 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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-336', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">                          <tt id="link-337" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-337', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;B&gt;B&lt;/B&gt;&lt;C&gt;C&lt;/C&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line"> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">        <tt class="py-name">b_tree</tt> <tt class="py-op">=</tt> <tt id="link-338" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-338', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-336', 'ElementTree', 'link-33');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-337" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-337', 'getroot', 'link-121');">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>
-<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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-338" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-338', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">b_tree</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">                          <tt id="link-339" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-339', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;B&lt;/b&gt;'</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">b_tree</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-340', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-341" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-341', 'style', 'link-24');">style</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-342', '_rootstring', 'link-327');">_rootstring</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="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">                          <tt id="link-343" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-343', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt 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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-344" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-344', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">                          <tt id="link-345" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-345', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;B&gt;B&lt;/B&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">        <tt class="py-name">c_tree</tt> <tt class="py-op">=</tt> <tt id="link-346" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-339', 'ElementTree', 'link-33');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-340', 'getroot', 'link-117');">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>
+<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">        <tt class="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-341" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-341', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">b_tree</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">                          <tt id="link-342" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-342', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;B&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">b_tree</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-343', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-344" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-344', 'style', 'link-24');">style</a></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">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-345" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-345', '_rootstring', 'link-330');">_rootstring</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="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line">                          <tt id="link-346" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-346', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">        <tt class="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-347" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-347', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">                          <tt id="link-348" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-348', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;B&gt;B&lt;/B&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line"> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">        <tt class="py-name">c_tree</tt> <tt class="py-op">=</tt> <tt id="link-349" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-346', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-347" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-349', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-347', 'ElementTree', 'link-33');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-348', 'getroot', 'link-121');">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>
-<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt class="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-349" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-349', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">c_tree</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 id="link-350" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-350', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;C&lt;/c&gt;'</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">c_tree</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-351', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-352" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-352', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">        <tt class="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-353" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-353', '_rootstring', 'link-327');">_rootstring</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="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">                          <tt id="link-354" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-354', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">        <tt class="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-355" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-355', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">                          <tt id="link-356" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-356', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;C&gt;C&lt;/C&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_XML"></a><div id="ETreeXSLTTestCase.test_xslt_document_XML-def"><a name="L597"></a><tt class="py-lineno"> 597</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_XML-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_XML-expanded"><a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works from parsed strings</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt id="link-357" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-357', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-358" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-350', 'ElementTree', 'link-33');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-351', 'getroot', 'link-117');">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>
+<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-name">self</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-352', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">c_tree</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 id="link-353" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-353', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;C&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">c_tree</tt><tt class="py-op">.</tt><tt id="link-354" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-354', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-355" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-355', 'style', 'link-24');">style</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-356', '_rootstring', 'link-330');">_rootstring</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="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">                          <tt id="link-357" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-357', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">        <tt class="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-358" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-358', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">                          <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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;C&gt;C&lt;/C&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_XML"></a><div id="ETreeXSLTTestCase.test_xslt_document_XML-def"><a name="L604"></a><tt class="py-lineno"> 604</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_XML-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_XML-expanded"><a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works from parsed strings</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt id="link-360" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-360', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-361" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-358', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-359', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-360" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-361', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-362', 'XSLT', 'link-27');">XSLT</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-360', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-361" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-363', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-364" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><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-361', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;TEXT&lt;xsl:copy-of select="document('')//test"/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt id="link-362" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-362', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-363" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-364', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;TEXT&lt;xsl:copy-of select="document('')//test"/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line"><tt class="py-string">"""</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">result</tt> <tt class="py-op">=</tt> <tt id="link-365" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-365', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-366" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-363', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-364" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-366', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-367" 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-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">        <tt id="link-365" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-365', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-366', 'getroot', 'link-121');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-367" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-367', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-368" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-367', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">        <tt id="link-368" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-368', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-369', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-370" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-370', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-371" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><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-368', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">                          <tt class="py-string">'test'</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-369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-369', 'root', 'link-365');">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-370" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-371', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-372', 'root', 'link-368');">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-373" 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-370', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-372" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-373', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">                          <tt class="py-string">'test'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">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-375" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><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-372', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">                          <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-373', 'root', 'link-365');">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-374" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-375', 'text', 'link-375');">text</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-string">'TEXT'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-376" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-376', 'root', 'link-368');">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-377" 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-374', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">                          <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}copy-of'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_parse"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse-def"><a name="L618"></a><tt class="py-lineno"> 618</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse-expanded"><a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works from loaded files</tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">        <tt id="link-375" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-375', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-376" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-377', 'tag', 'link-371');">tag</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-string">'{http://www.w3.org/1999/XSL/Transform}copy-of'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_parse"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse-def"><a name="L625"></a><tt class="py-lineno"> 625</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse-expanded"><a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works from loaded files</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt id="link-378" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-378', 'xslt', 'link-237');">xslt</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-376', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-377" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-377', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-378" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-379', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-380', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-381" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-378', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-381', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-382" 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-379', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-380" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-380', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt id="link-381" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-381', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-382" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-382', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-383" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-383', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</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 class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-384" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-384', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-385" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-382', 'etree', 'link-15');">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-385', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-386" 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-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">        <tt id="link-384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-384', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-385', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</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-386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-386', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-386', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">        <tt id="link-387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-387', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-388" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-388', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-389" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-389', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-390" 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-387', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-389" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-390', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">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-392" 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-389', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">                          <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</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="ETreeXSLTTestCase.test_xslt_document_elementtree"></a><div id="ETreeXSLTTestCase.test_xslt_document_elementtree-def"><a name="L628"></a><tt class="py-lineno"> 628</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_elementtree-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_elementtree-expanded"><a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works from loaded files</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">        <tt id="link-390" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-390', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-391" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-392', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">                          <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_elementtree"></a><div id="ETreeXSLTTestCase.test_xslt_document_elementtree-def"><a name="L635"></a><tt class="py-lineno"> 635</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_elementtree-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_elementtree-expanded"><a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works from loaded files</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">        <tt id="link-393" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-393', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-394" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-391', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-392" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-392', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-393" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-394', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-395', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-396" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-393', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-394" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-396', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-397" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-394', 'ElementTree', 'link-33');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt id="link-395" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-395', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-396" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-396', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-397" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-397', 'ElementTree', 'link-33');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt id="link-398" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-398', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</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 class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-399" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-399', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-400" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-397', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-400', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-401" 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-398', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line">        <tt id="link-399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-399', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-400', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-401" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-401', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-401', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">        <tt id="link-402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-402', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-403', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-404', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-405" 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-402', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">                          <tt class="py-string">'test'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-404" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-405', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">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-407" 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-404', 'tag', 'link-368');">tag</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-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_error"></a><div id="ETreeXSLTTestCase.test_xslt_document_error-def"><a name="L638"></a><tt class="py-lineno"> 638</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_error-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_error-expanded"><a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">        <tt id="link-405" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-405', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-406" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-407', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">                          <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_error"></a><div id="ETreeXSLTTestCase.test_xslt_document_error-def"><a name="L645"></a><tt class="py-lineno"> 645</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_error-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_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="ETreeXSLTTestCase.test_xslt_document_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_error-expanded"><a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">        <tt id="link-408" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-408', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-409" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-406', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-407" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-407', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-408" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-409', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-410', 'XSLT', 'link-27');">XSLT</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-408', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-409" 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-15');">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-409', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;TEXT&lt;xsl:copy-of select="document('uri:__junkfood__is__evil__')//test"/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-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-410" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-410', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-411', 'XSLTApplyError', 'link-169');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-412" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-412', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-413" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-412', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;TEXT&lt;xsl:copy-of select="document('uri:__junkfood__is__evil__')//test"/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line"> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">        <tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">            <tt id="link-413" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-413', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-414" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-413', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-414" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-414', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-415" 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-414', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_XML_resolver"></a><div id="ETreeXSLTTestCase.test_xslt_document_XML_resolver-def"><a name="L649"></a><tt class="py-lineno"> 649</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_XML_resolver-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_XML_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_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="ETreeXSLTTestCase.test_xslt_document_XML_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_XML_resolver-expanded"><a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works when custom resolvers are in use</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</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="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'count'</tt> <tt class="py-op">:</tt> <tt class="py-number">0</tt><tt class="py-op">}</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestResolver</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="L654"></a><tt class="py-lineno"> 654</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="L655"></a><tt class="py-lineno"> 655</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-string">'file://ANYTHING'</tt><tt class="py-op">)</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">                <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</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-415" 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-415', 'resolve_string', 'link-415');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;CALLED/&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">        <tt id="link-416" 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-416', 'parser', 'link-416');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-417" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-415', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-416" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-417', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-418" 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-416', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-417', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">            <tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><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-418', 'error_log', 'link-147');">error_log</a></tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt id="link-419" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-419', 'assertFalse', 'link-146');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-string">"XSLT processing should have failed but didn't"</tt><tt class="py-op">)</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line"> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</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">errors</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">error</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errors</tt><tt class="py-op">:</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">':ERROR:XSLT:'</tt> <tt class="py-keyword">in</tt> <tt id="link-420" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-420', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">        <tt class="py-keyword">else</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 id="link-421" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-421', 'assertFalse', 'link-146');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-string">'No XSLT errors found in error log:\n%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">errors</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_XML_resolver"></a><div id="ETreeXSLTTestCase.test_xslt_document_XML_resolver-def"><a name="L670"></a><tt class="py-lineno"> 670</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_XML_resolver-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_XML_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_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="ETreeXSLTTestCase.test_xslt_document_XML_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_XML_resolver-expanded"><a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt class="py-comment"># make sure document('') works when custom resolvers are in use</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</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="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'count'</tt> <tt class="py-op">:</tt> <tt class="py-number">0</tt><tt class="py-op">}</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestResolver</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="L675"></a><tt class="py-lineno"> 675</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="L676"></a><tt class="py-lineno"> 676</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-string">'file://ANYTHING'</tt><tt class="py-op">)</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">                <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</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-422" 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-422', 'resolve_string', 'link-422');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;CALLED/&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">        <tt id="link-423" 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-423', 'parser', 'link-423');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-424" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-424', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-425" 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-418', 'XMLParser', 'link-418');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt id="link-419" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-419', 'parser', 'link-416');">parser</a></tt><tt class="py-op">.</tt><tt id="link-420" 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-420', 'resolvers', 'link-420');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-421" 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-425', 'XMLParser', 'link-425');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">        <tt id="link-426" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-426', 'parser', 'link-423');">parser</a></tt><tt class="py-op">.</tt><tt id="link-427" 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-427', 'resolvers', 'link-427');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-428" 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-421', 'add', 'link-421');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">TestResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">        <tt id="link-422" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-422', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-423" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-428', 'add', 'link-428');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">TestResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line"> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">        <tt id="link-429" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-429', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-430" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-423', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-424', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-425" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-430', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-431" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-431', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-432" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-425', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-426" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-432', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-433" 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-426', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-427" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-427', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line"><tt class="py-string">   xmlns:l="local"&gt;</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="document('')//l:data/l:entry"&gt;</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:copy-of select="document('file://ANYTHING')"/&gt;</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:copy&gt;</tt> </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:attribute name="value"&gt;</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:value-of select="."/&gt;</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:copy&gt;</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line"><tt class="py-string">  &lt;l:data&gt;</tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"><tt class="py-string">    &lt;l:entry&gt;A&lt;/l:entry&gt;</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line"><tt class="py-string">    &lt;l:entry&gt;B&lt;/l:entry&gt;</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"><tt class="py-string">  &lt;/l:data&gt;</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-428" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-428', 'parser', 'link-416');">parser</a></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>
-<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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-429" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-429', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-430" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-430', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-431" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-433', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-434" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-434', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line"><tt class="py-string">   xmlns:l="local"&gt;</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="document('')//l:data/l:entry"&gt;</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:copy-of select="document('file://ANYTHING')"/&gt;</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:copy&gt;</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:attribute name="value"&gt;</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:value-of select="."/&gt;</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:copy&gt;</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line"><tt class="py-string">  &lt;l:data&gt;</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line"><tt class="py-string">    &lt;l:entry&gt;A&lt;/l:entry&gt;</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line"><tt class="py-string">    &lt;l:entry&gt;B&lt;/l:entry&gt;</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line"><tt class="py-string">  &lt;/l:data&gt;</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-435" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-435', 'parser', 'link-423');">parser</a></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>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-436" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-436', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-437" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-437', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-438" 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-431', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line"> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">        <tt id="link-432" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-432', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-433" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-433', 'getroot', 'link-121');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-434" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-434', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-435" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-438', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="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 id="link-439" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-439', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-440', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-442" 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-435', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">                          <tt class="py-string">'test'</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-name">len</tt><tt class="py-op">(</tt><tt id="link-436" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-436', 'root', 'link-365');">root</a></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="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"> </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 id="link-437" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-437', 'root', 'link-365');">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-438" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-442', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">                          <tt class="py-string">'test'</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-name">len</tt><tt class="py-op">(</tt><tt id="link-443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-443', 'root', 'link-368');">root</a></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="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line"> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">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-445" 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-438', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">                          <tt class="py-string">'CALLED'</tt><tt class="py-op">)</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">        <tt 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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-439', 'root', 'link-365');">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-440" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-445', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">                          <tt class="py-string">'CALLED'</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 id="link-446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-446', 'root', 'link-368');">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-447" 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-440', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">                          <tt class="py-string">'{local}entry'</tt><tt class="py-op">)</tt> </tt>
-<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-442" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-447', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">                          <tt class="py-string">'{local}entry'</tt><tt class="py-op">)</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-448', 'root', 'link-368');">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-449" 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-442', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-443', 'root', 'link-365');">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-444" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-449', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-450', 'root', 'link-368');">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-451" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><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-444', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">                          <tt class="py-string">'A'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-445', 'root', 'link-365');">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 id="link-446" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-451', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">                          <tt class="py-string">'A'</tt><tt class="py-op">)</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">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 id="link-453" 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-446', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">                          <tt class="py-string">'CALLED'</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 id="link-447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-447', 'root', 'link-365');">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 id="link-448" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-453', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">                          <tt class="py-string">'CALLED'</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-454', 'root', 'link-368');">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 id="link-455" 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-448', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">                          <tt class="py-string">'{local}entry'</tt><tt class="py-op">)</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-449', 'root', 'link-365');">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 id="link-450" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-455', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">                          <tt class="py-string">'{local}entry'</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 id="link-456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-456', 'root', 'link-368');">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 id="link-457" 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-450', 'text', 'link-372');">text</a></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">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-451', 'root', 'link-365');">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 id="link-452" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-457', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">                          <tt class="py-name">None</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 id="link-458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-458', 'root', 'link-368');">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 id="link-459" 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-452', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"value"</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 class="py-string">'B'</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="ETreeXSLTTestCase.test_xslt_resolver_url_building"></a><div id="ETreeXSLTTestCase.test_xslt_resolver_url_building-def"><a name="L711"></a><tt class="py-lineno"> 711</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_resolver_url_building-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_resolver_url_building');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_resolver_url_building-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_resolver_url_building-expanded"><a name="L712"></a><tt class="py-lineno"> 712</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="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'count'</tt> <tt class="py-op">:</tt> <tt class="py-number">0</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">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestResolver</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="L716"></a><tt class="py-lineno"> 716</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="L717"></a><tt class="py-lineno"> 717</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_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">                <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</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">self</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-453', 'resolve_string', 'link-415');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;CALLED/&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line"> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">        <tt class="py-name">stylesheet_xml</tt> <tt class="py-op">=</tt> <tt id="link-454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-454', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line"><tt class="py-string">   xmlns:l="local"&gt;</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy-of select="document('test.xml')"/&gt;</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">        <tt id="link-455" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-455', 'parser', 'link-416');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-456" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-456', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-457" class="py-name"><a title="lxml.etree.XMLParser
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-459', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"value"</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-string">'B'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_resolver_url_building"></a><div id="ETreeXSLTTestCase.test_xslt_resolver_url_building-def"><a name="L732"></a><tt class="py-lineno"> 732</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_resolver_url_building-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_resolver_url_building');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_resolver_url_building-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_resolver_url_building-expanded"><a name="L733"></a><tt class="py-lineno"> 733</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="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'count'</tt> <tt class="py-op">:</tt> <tt class="py-number">0</tt><tt class="py-op">}</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestResolver</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="L737"></a><tt class="py-lineno"> 737</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="L738"></a><tt class="py-lineno"> 738</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_url</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">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</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-460" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-460', 'resolve_string', 'link-422');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;CALLED/&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">        <tt class="py-name">stylesheet_xml</tt> <tt class="py-op">=</tt> <tt id="link-461" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-461', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line"><tt class="py-string">   xmlns:l="local"&gt;</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy-of select="document('test.xml')"/&gt;</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line"> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">        <tt id="link-462" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-462', 'parser', 'link-423');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-463" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-463', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-464" 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-457', 'XMLParser', 'link-418');">XMLParser</a></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-458" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-458', 'parser', 'link-416');">parser</a></tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-459', 'resolvers', 'link-420');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-464', 'XMLParser', 'link-425');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">        <tt id="link-465" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-465', 'parser', 'link-423');">parser</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-466', 'resolvers', 'link-427');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-467" 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-460', 'add', 'link-421');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">TestResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line"> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">        <tt class="py-comment"># test without base_url =&gt; relative path only</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'test.xml'</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">        <tt id="link-461" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-461', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-462" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-467', 'add', 'link-428');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">TestResolver</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>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">        <tt class="py-comment"># test without base_url =&gt; relative path only</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'test.xml'</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">        <tt id="link-468" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-468', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-469" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-462', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-463" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-463', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-464" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-469', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-470', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-471" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-464', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-465" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-471', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-472" 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-465', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-466" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-466', 'parser', 'link-416');">parser</a></tt><tt class="py-op">)</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-467" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-467', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-468" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-472', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-473" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-473', 'parser', 'link-423');">parser</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line"> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-474" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-474', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-475" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-468', 'etree', 'link-15');">etree</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-475', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-476" 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-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">        <tt class="py-comment"># now the same thing with a stylesheet base URL on the filesystem</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'MY/BASE/test.xml'</tt>  <tt class="py-comment"># seems to be the same on Windows</tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt id="link-470" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-470', 'xslt', 'link-234');">xslt</a></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-476', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="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-comment"># now the same thing with a stylesheet base URL on the filesystem</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'MY/BASE/test.xml'</tt>  <tt class="py-comment"># seems to be the same on Windows</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt id="link-477" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-477', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-478" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-471', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-472', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-473" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-478', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-479', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-480" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-473', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-480', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-481" 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-474', 'XML', 'link-361');">XML</a></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">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-475" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-475', 'parser', 'link-416');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">            <tt id="link-476" 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-476', 'base_url', 'link-476');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-477', 'path', 'link-1');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-string">'BASE'</tt><tt class="py-op">,</tt> <tt class="py-string">'FILE'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-478" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-478', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-479" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-481', 'XML', 'link-364');">XML</a></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">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-482" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-482', 'parser', 'link-423');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">            <tt id="link-483" 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-483', 'base_url', 'link-483');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-484', 'path', 'link-1');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-string">'BASE'</tt><tt class="py-op">,</tt> <tt class="py-string">'FILE'</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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-485" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-485', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-486" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-479', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-486', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-487" 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-480', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="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-comment"># now the same thing with a stylesheet base URL</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://server.com/BASE/DIR/test.xml'</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">        <tt id="link-481" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-481', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-482" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-487', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line"> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">        <tt class="py-comment"># now the same thing with a stylesheet base URL</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://server.com/BASE/DIR/test.xml'</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt id="link-488" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-488', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-489" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-482', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-483', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-484" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-489', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-490', 'XSLT', 'link-27');">XSLT</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-484', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-485" 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-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-492" 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-485', 'XML', 'link-361');">XML</a></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">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-486" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-486', 'parser', 'link-416');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">            <tt id="link-487" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-487', 'base_url', 'link-476');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">'http://server.com/BASE/DIR/FILE'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-488" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-488', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-489" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-492', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">            <tt class="py-name">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-493" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-493', 'parser', 'link-423');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">            <tt id="link-494" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-494', 'base_url', 'link-483');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">'http://server.com/BASE/DIR/FILE'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"> </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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-495" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-495', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-489', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-496', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-497" 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-490', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line"> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-comment"># now the same thing with a stylesheet base file:// URL</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://BASE/DIR/test.xml'</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">        <tt id="link-491" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-491', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-492" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-497', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line"> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt class="py-comment"># now the same thing with a stylesheet base file:// URL</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">        <tt class="py-name">expected_url</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://BASE/DIR/test.xml'</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt id="link-498" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-498', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-499" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-492', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-493" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-493', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-494" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-499', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-500', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-501" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-494', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-501', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-502" 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-495', 'XML', 'link-361');">XML</a></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">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-496" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-496', 'parser', 'link-416');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">            <tt id="link-497" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-497', 'base_url', 'link-476');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">'file://BASE/DIR/FILE'</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>
-<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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-498" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-498', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-502', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">            <tt class="py-name">stylesheet_xml</tt><tt class="py-op">,</tt> <tt id="link-503" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-503', 'parser', 'link-423');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">            <tt id="link-504" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-504', 'base_url', 'link-483');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">'file://BASE/DIR/FILE'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line"> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-505', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-506" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-499', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-506', 'etree', 'link-15');">etree</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-500', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<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-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_parse_allow"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_allow-def"><a name="L775"></a><tt class="py-lineno"> 775</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_allow-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_allow');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_document_parse_allow-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_allow-expanded"><a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-501" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-507', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">'count'</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="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_parse_allow"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_allow-def"><a name="L796"></a><tt class="py-lineno"> 796</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_allow-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_allow');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_document_parse_allow-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_allow-expanded"><a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-508" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-501', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-502" class="py-name" targets="Class lxml.etree.XSLTAccessControl=lxml.etree.XSLTAccessControl-class.html"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-502', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">(</tt><tt id="link-503" class="py-name" targets="Function lxml.tests.common_imports.read_file()=lxml.tests.common_imports-module.html#read_file"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-503', 'read_file', 'link-503');">read_file</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt id="link-504" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-504', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-508', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-509" class="py-name" targets="Class lxml.etree.XSLTAccessControl=lxml.etree.XSLTAccessControl-class.html"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-509', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">(</tt><tt id="link-510" class="py-name" targets="Function lxml.tests.common_imports.read_file()=lxml.tests.common_imports-module.html#read_file"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-510', 'read_file', 'link-510');">read_file</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">        <tt id="link-511" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-511', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-512" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-505', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-506" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-506', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-507" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-512', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-513" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-513', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-507', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-514', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-515" 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-508', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-509" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-509', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-510" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-510', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-511" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-515', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-516" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-516', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-517" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-517', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-518" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-511', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-512" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-518', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-519" 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-512', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">        <tt id="link-513" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-513', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-514', 'getroot', 'link-121');">getroot</a></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 id="link-515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-515', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-519', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">        <tt id="link-520" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-520', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-521', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-522" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-522', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-523" 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-516', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">                         <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </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 id="link-517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-517', 'root', 'link-365');">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-518" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-523', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">                         <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-524', 'root', 'link-368');">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-525" 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-518', 'tag', 'link-368');">tag</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-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_parse_deny"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-def"><a name="L786"></a><tt class="py-lineno"> 786</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_deny-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_deny');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-expanded"><a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-519" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-525', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">                         <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_parse_deny"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-def"><a name="L807"></a><tt class="py-lineno"> 807</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_deny-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_deny');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-expanded"><a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-526" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-519', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-520" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-520', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">(</tt><tt id="link-521" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-521', 'read_file', 'link-503');">read_file</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt id="link-522" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-522', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-523" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-526', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-527', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-528', 'read_file', 'link-510');">read_file</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">        <tt id="link-529" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-529', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-530" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-523', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-524" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-524', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-525" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-530', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-531" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-531', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-532" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-525', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-532', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-533" 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-526', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-527" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-527', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-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-528" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-533', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-534" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-534', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-535" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-528', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-529" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-529', 'XSLTApplyError', 'link-169');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-530" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-530', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-531" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-535', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-536', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-537" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-537', 'xslt', 'link-237');">xslt</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-531', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-532" 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-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-539" 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-532', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_document_parse_deny_all"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-def"><a name="L792"></a><tt class="py-lineno"> 792</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_deny_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_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="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-expanded"><a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-533" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-539', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_document_parse_deny_all"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-def"><a name="L813"></a><tt class="py-lineno"> 813</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_deny_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_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="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny_all-expanded"><a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-540" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-533', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-534', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-535" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.DENY_ALL=lxml.etree.XSLTAccessControl-class.html#DENY_ALL"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-535', 'DENY_ALL', 'link-535');">DENY_ALL</a></tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt id="link-536" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-536', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-537" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-540', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-541', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-542" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.DENY_ALL=lxml.etree.XSLTAccessControl-class.html#DENY_ALL"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-542', 'DENY_ALL', 'link-542');">DENY_ALL</a></tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">        <tt id="link-543" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-543', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-544" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-537', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-538', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-539" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-544', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-545', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-546" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-539', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-546', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-547" 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-540', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-541" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-541', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</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">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</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">assertRaises</tt><tt class="py-op">(</tt><tt id="link-542" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-547', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-548" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-548', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</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">assertRaises</tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-542', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-543', 'XSLTApplyError', 'link-169');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-544" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-544', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-545" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-549', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-550" class="py-name"><a title="lxml.etree.XSLTApplyError" class="py-name" href="#" onclick="return doclink('link-550', 'XSLTApplyError', 'link-174');">XSLTApplyError</a></tt><tt class="py-op">,</tt> <tt id="link-551" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-551', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-552" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-545', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-546" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-552', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-553" 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-546', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_access_control_repr"></a><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-def"><a name="L798"></a><tt class="py-lineno"> 798</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_access_control_repr-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_access_control_repr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-expanded"><a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-547" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-553', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_access_control_repr"></a><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-def"><a name="L819"></a><tt class="py-lineno"> 819</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_access_control_repr-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_access_control_repr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-expanded"><a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-554" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-547', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-548', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-549" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-549', 'DENY_ALL', 'link-535');">DENY_ALL</a></tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</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">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt id="link-550" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-550', 'type', 'link-550');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</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 class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-551" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-554', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-555', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-556" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-556', 'DENY_ALL', 'link-542');">DENY_ALL</a></tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</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">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt id="link-557" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-557', 'type', 'link-557');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</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 class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-558" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-551', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-552', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-553" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-553', 'DENY_ALL', 'link-535');">DENY_ALL</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">                            <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-554" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-558', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-559', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-560" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-560', 'DENY_ALL', 'link-542');">DENY_ALL</a></tt><tt class="py-op">)</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">repr</tt><tt class="py-op">(</tt><tt id="link-561" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-554', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-555', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-556" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.DENY_WRITE=lxml.etree.XSLTAccessControl-class.html#DENY_WRITE"><a title="lxml.etree.XSLTAccessControl.DENY_WRITE" class="py-name" href="#" onclick="return doclink('link-556', 'DENY_WRITE', 'link-556');">DENY_WRITE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</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 class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-557" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-561', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-562', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-563" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.DENY_WRITE=lxml.etree.XSLTAccessControl-class.html#DENY_WRITE"><a title="lxml.etree.XSLTAccessControl.DENY_WRITE" class="py-name" href="#" onclick="return doclink('link-563', 'DENY_WRITE', 'link-563');">DENY_WRITE</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-564" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-557', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-558', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-559', 'DENY_ALL', 'link-535');">DENY_ALL</a></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">repr</tt><tt class="py-op">(</tt><tt id="link-560" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-564', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-565" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-565', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-566', 'DENY_ALL', 'link-542');">DENY_ALL</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">                            <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-567" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-560', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-561" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-561', 'XSLTAccessControl', 'link-502');">XSLTAccessControl</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="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_move_result"></a><div id="ETreeXSLTTestCase.test_xslt_move_result-def"><a name="L807"></a><tt class="py-lineno"> 807</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_move_result-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_move_result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_move_result-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_move_result-expanded"><a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt id="link-562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-562', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-563" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-567', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-568', 'XSLTAccessControl', 'link-509');">XSLTAccessControl</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="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_move_result"></a><div id="ETreeXSLTTestCase.test_xslt_move_result-def"><a name="L828"></a><tt class="py-lineno"> 828</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_move_result-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_move_result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_move_result-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_move_result-expanded"><a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">        <tt id="link-569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-569', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-570" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-563', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-564" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-570', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-571" 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-564', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-565" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-565', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line"><tt class="py-string">        &lt;transform&gt;</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line"><tt class="py-string">          &lt;widget displayType="fieldset"/&gt;</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line"><tt class="py-string">        &lt;/transform&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line"> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">        <tt id="link-566" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-566', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-567" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-571', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-572" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-572', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"><tt class="py-string">        &lt;transform&gt;</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"><tt class="py-string">          &lt;widget displayType="fieldset"/&gt;</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line"><tt class="py-string">        &lt;/transform&gt;'''</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>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">        <tt id="link-573" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-573', 'xslt', 'link-237');">xslt</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-567', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-568', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-569" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-574', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-575', 'XSLT', 'link-27');">XSLT</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-569', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><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-576', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-577" 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-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-571" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-571', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:output method="html" indent="no"/&gt;</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line"><tt class="py-string">            &lt;html&gt;</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"><tt class="py-string">              &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line"><tt class="py-string">            &lt;/html&gt;</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="widget"&gt;</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:element name="{@displayType}"/&gt;</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-572" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-572', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-573', 'root', 'link-365');">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="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">        <tt id="link-574" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-574', 'root', 'link-365');">root</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-name">result</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-575', 'getroot', 'link-121');">getroot</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="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt id="link-576" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-576', 'root', 'link-365');">root</a></tt> <tt class="py-comment"># segfaulted before</tt> </tt>
-</div><a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi"></a><div id="ETreeXSLTTestCase.test_xslt_pi-def"><a name="L832"></a><tt class="py-lineno"> 832</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_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="ETreeXSLTTestCase.test_xslt_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi-expanded"><a name="L833"></a><tt class="py-lineno"> 833</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-577" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-577', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-578" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-578', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:output method="html" indent="no"/&gt;</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-string">            &lt;html&gt;</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-string">              &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"><tt class="py-string">            &lt;/html&gt;</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="widget"&gt;</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:element name="{@displayType}"/&gt;</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</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>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-579" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-579', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-580" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-580', 'root', 'link-368');">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="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">        <tt id="link-581" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-581', 'root', 'link-368');">root</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-name">result</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-582', 'getroot', 'link-117');">getroot</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="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt id="link-583" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-583', 'root', 'link-368');">root</a></tt> <tt class="py-comment"># segfaulted before</tt> </tt>
+</div><a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">         </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi"></a><div id="ETreeXSLTTestCase.test_xslt_pi-def"><a name="L853"></a><tt class="py-lineno"> 853</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_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="ETreeXSLTTestCase.test_xslt_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi-expanded"><a name="L854"></a><tt class="py-lineno"> 854</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-584" 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-577', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="%s"?&gt;</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt> <tt class="py-op">%</tt> <tt id="link-578" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-578', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test1.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-579', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-580" 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-580', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-581" class="py-name" targets="Method lxml.etree._XSLTProcessingInstruction.parseXSL()=lxml.etree._XSLTProcessingInstruction-class.html#parseXSL"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-581', 'parseXSL', 'link-581');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-582', 'getroot', 'link-121');">getroot</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-584', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="%s"?&gt;</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt> <tt class="py-op">%</tt> <tt id="link-585" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-585', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test1.xslt"</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>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-586', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-587" 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-587', 'getprevious', 'link-587');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name" targets="Method lxml.etree._XSLTProcessingInstruction.parseXSL()=lxml.etree._XSLTProcessingInstruction-class.html#parseXSL"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-588', 'parseXSL', 'link-588');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-589', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-590" 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-583', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-def"><a name="L845"></a><tt class="py-lineno"> 845</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-expanded"><a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">        <tt class="py-comment"># test xml:id dictionary lookup mechanism</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</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-584" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-590', 'tag', 'link-371');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-def"><a name="L866"></a><tt class="py-lineno"> 866</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-expanded"><a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">        <tt class="py-comment"># test xml:id dictionary lookup mechanism</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</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-591" 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-584', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line"><tt class="py-string">      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line"><tt class="py-string">      &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</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">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-585" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-585', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-586', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-587', 'parseXSL', 'link-581');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-588', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-591', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"><tt class="py-string">      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-string">      &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-592" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-592', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-593', 'getprevious', 'link-587');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-594" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-594', 'parseXSL', 'link-588');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-595', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </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-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</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">style_root</tt><tt class="py-op">.</tt><tt id="link-596" 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-589', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-590" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-596', 'tag', 'link-371');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-597" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-590', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-591', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">        <tt 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>
-<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">                          <tt id="link-592" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-592', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_id"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-def"><a name="L874"></a><tt class="py-lineno"> 874</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-expanded"><a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-comment"># test XPath lookup mechanism</tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</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-593" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-597', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-598', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="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-string">'''\</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">                          <tt id="link-599" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-599', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_id"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-def"><a name="L895"></a><tt class="py-lineno"> 895</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-expanded"><a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-comment"># test XPath lookup mechanism</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</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-600" 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-593', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</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 id="link-594" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-594', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-600', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line"> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt id="link-601" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-601', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-602" 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-595', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line"> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-596" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-596', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-597" 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-597', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt id="link-598" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-598', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-599" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-599', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line"> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-600', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-601" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-601', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-602" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-602', 'parseXSL', 'link-581');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-603', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </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-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</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">style_root</tt><tt class="py-op">.</tt><tt id="link-604" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-602', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line"> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-603', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-604" 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-604', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt id="link-605" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-605', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-606" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-606', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line"> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-607" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-607', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-608" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-608', 'getprevious', 'link-587');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-609" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-609', 'parseXSL', 'link-588');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-610', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt 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://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-611" 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-604', 'tag', 'link-368');">tag</a></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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-605" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-611', 'tag', 'link-371');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-612" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-605', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-606" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-606', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">                          <tt id="link-607" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-607', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get-def"><a name="L908"></a><tt class="py-lineno"> 908</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_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="ETreeXSLTTestCase.test_xslt_pi_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get-expanded"><a name="L909"></a><tt class="py-lineno"> 909</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-608" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-612', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-613', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="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-string">'''\</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">                          <tt id="link-614" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-614', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get-def"><a name="L929"></a><tt class="py-lineno"> 929</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_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="ETreeXSLTTestCase.test_xslt_pi_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get-expanded"><a name="L930"></a><tt class="py-lineno"> 930</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-615" 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-608', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line"> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">        <tt id="link-609" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-609', 'pi', 'link-609');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-610', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-611" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-611', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt 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-612" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-612', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-615', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">        <tt id="link-616" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-616', 'pi', 'link-616');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-617" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-617', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-618" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-618', 'getprevious', 'link-587');">getprevious</a></tt><tt class="py-op">(</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 class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-619" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-619', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-620" 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-613', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get_all"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-def"><a name="L920"></a><tt class="py-lineno"> 920</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_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="ETreeXSLTTestCase.test_xslt_pi_get_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-expanded"><a name="L921"></a><tt class="py-lineno"> 921</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-614" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-620', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get_all"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-def"><a name="L941"></a><tt class="py-lineno"> 941</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_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="ETreeXSLTTestCase.test_xslt_pi_get_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-expanded"><a name="L942"></a><tt class="py-lineno"> 942</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-621" 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-614', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&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-615" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-615', 'pi', 'link-609');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-616" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-616', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-617" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-617', 'getprevious', 'link-580');">getprevious</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 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-618" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-618', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-619" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-621', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">        <tt id="link-622" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-622', 'pi', 'link-616');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-623" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-623', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-624" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-624', 'getprevious', 'link-587');">getprevious</a></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-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-625" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-625', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-626" 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-619', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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 class="py-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-620" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-620', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-621" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-626', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</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 class="py-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-627" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-627', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-628" 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-621', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</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">None</tt><tt class="py-op">,</tt> <tt id="link-622" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-622', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-623" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-628', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">        <tt class="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 id="link-629" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-629', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-630" 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-623', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-def"><a name="L934"></a><tt class="py-lineno"> 934</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_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="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-expanded"><a name="L935"></a><tt class="py-lineno"> 935</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-624" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-630', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-def"><a name="L955"></a><tt class="py-lineno"> 955</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_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="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-expanded"><a name="L956"></a><tt class="py-lineno"> 956</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-631" 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-624', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet href="TEST" type="text/xsl"?&gt;</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">        <tt id="link-625" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-625', 'pi', 'link-609');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-626" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-626', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-627" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-627', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </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 class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-628" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-628', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-629" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-631', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet href="TEST" type="text/xsl"?&gt;</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">        <tt id="link-632" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-632', 'pi', 'link-616');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-633', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-634" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-634', 'getprevious', 'link-587');">getprevious</a></tt><tt class="py-op">(</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">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-635" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-635', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-636" 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-629', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</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-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-630" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-630', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-631" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-636', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">        <tt 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">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-637" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-637', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-638" 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-631', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</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 class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-632" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-632', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-638', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</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">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 id="link-639" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-639', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-640" 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-633', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get_unknown"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-def"><a name="L948"></a><tt class="py-lineno"> 948</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_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="ETreeXSLTTestCase.test_xslt_pi_get_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-expanded"><a name="L949"></a><tt class="py-lineno"> 949</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-634" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-640', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get_unknown"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-def"><a name="L969"></a><tt class="py-lineno"> 969</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_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="ETreeXSLTTestCase.test_xslt_pi_get_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-expanded"><a name="L970"></a><tt class="py-lineno"> 970</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-641" 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-634', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line"> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">        <tt id="link-635" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-635', 'pi', 'link-609');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-636" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-636', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-637" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-637', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">        <tt class="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 id="link-638" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-638', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-639" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-641', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">        <tt id="link-642" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-642', 'pi', 'link-616');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-643', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-644" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-644', 'getprevious', 'link-587');">getprevious</a></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">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 id="link-645" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-645', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-646" 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-639', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"unknownattribute"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_set_replace"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-def"><a name="L960"></a><tt class="py-lineno"> 960</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_replace-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_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="ETreeXSLTTestCase.test_xslt_pi_set_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-expanded"><a name="L961"></a><tt class="py-lineno"> 961</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-640" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-646', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"unknownattribute"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_set_replace"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-def"><a name="L981"></a><tt class="py-lineno"> 981</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_replace-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_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="ETreeXSLTTestCase.test_xslt_pi_set_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-expanded"><a name="L982"></a><tt class="py-lineno"> 982</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-647" 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-640', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt id="link-641" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-641', 'pi', 'link-609');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-642" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-642', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-643', 'getprevious', 'link-580');">getprevious</a></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-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-644" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-644', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-647', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line"> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt id="link-648" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-648', 'pi', 'link-616');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-649', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-650', 'getprevious', 'link-587');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </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-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-651" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-651', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-652" 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-645', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</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>
-<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-646', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-647" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-647', 'set', 'link-647');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST123"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST123"</tt><tt class="py-op">,</tt> <tt id="link-648" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-648', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-652', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</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>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">        <tt id="link-653" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-653', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-654" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-654', 'set', 'link-654');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST123"</tt><tt class="py-op">)</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">        <tt 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">"TEST123"</tt><tt class="py-op">,</tt> <tt id="link-655" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-655', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-656" 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-649', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_set_new"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-def"><a name="L975"></a><tt class="py-lineno"> 975</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_new-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_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="ETreeXSLTTestCase.test_xslt_pi_set_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-expanded"><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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-656', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_set_new"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-def"><a name="L996"></a><tt class="py-lineno"> 996</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_new-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_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="ETreeXSLTTestCase.test_xslt_pi_set_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-expanded"><a name="L997"></a><tt class="py-lineno"> 997</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-657" 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-650', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl"?&gt;</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</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 id="link-651" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-651', 'pi', 'link-609');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-652" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-652', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-653', 'getprevious', 'link-580');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">        <tt class="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 id="link-654" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-654', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-655" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-657', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl"?&gt;</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">        <tt id="link-658" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-658', 'pi', 'link-616');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-659', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-660', 'getprevious', 'link-587');">getprevious</a></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">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 id="link-661" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-661', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-662" 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-655', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</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>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">        <tt id="link-656" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-656', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-657', 'set', 'link-647');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">        <tt 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-658" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-658', 'pi', 'link-609');">pi</a></tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-662', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt id="link-663" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-663', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-664" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-664', 'set', 'link-654');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt 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-665" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-665', 'pi', 'link-616');">pi</a></tt><tt class="py-op">.</tt><tt id="link-666" 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-659', 'get', 'link-444');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase"></a><div id="ETreeEXSLTTestCase-def"><a name="L990"></a><tt class="py-lineno"> 990</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase-toggle" onclick="return toggle('ETreeEXSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</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="ETreeEXSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeEXSLTTestCase-expanded"><a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">    <tt class="py-docstring">"""EXSLT tests"""</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_str"></a><div id="ETreeEXSLTTestCase.test_exslt_str-def"><a name="L993"></a><tt class="py-lineno"> 993</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str-expanded"><a name="L994"></a><tt class="py-lineno"> 994</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-660" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-666', 'get', 'link-451');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase"></a><div id="ETreeEXSLTTestCase-def"><a name="L1011"></a><tt class="py-lineno">1011</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase-toggle" onclick="return toggle('ETreeEXSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</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="ETreeEXSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeEXSLTTestCase-expanded"><a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">    <tt class="py-docstring">"""EXSLT tests"""</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_str"></a><div id="ETreeEXSLTTestCase.test_exslt_str-def"><a name="L1014"></a><tt class="py-lineno">1014</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str-expanded"><a name="L1015"></a><tt class="py-lineno">1015</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-667" 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-660', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">        <tt id="link-661" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-661', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-662" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-667', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">        <tt id="link-668" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-668', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-669" 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-662', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line"><tt class="py-string">    xmlns:str="http://exslt.org/strings"</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="str xsl"&gt;</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="text()"&gt;</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:value-of select="str:align(string(.), '***', 'center')" /&gt;</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-663" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-663', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-664" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-664', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-665" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-665', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">        <tt 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>
-<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;&lt;b&gt;*B*&lt;/b&gt;&lt;c&gt;*C*&lt;/c&gt;&lt;/a&gt;</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">                          <tt id="link-666" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-666', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-667" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-667', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-668" class="py-name"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-668', 'LIBXSLT_VERSION', 'link-37');">LIBXSLT_VERSION</a></tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">21</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_str_attribute_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str_attribute_replace');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_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="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-expanded"><a name="L1020"></a><tt class="py-lineno">1020</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-669" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-669', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"><tt class="py-string">    xmlns:str="http://exslt.org/strings"</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="str xsl"&gt;</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="text()"&gt;</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:value-of select="str:align(string(.), '***', 'center')" /&gt;</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line"> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-670" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-670', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-671" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-671', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-672" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-672', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="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-string">'''\</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;&lt;b&gt;*B*&lt;/b&gt;&lt;c&gt;*C*&lt;/c&gt;&lt;/a&gt;</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">                          <tt id="link-673" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-673', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_str_attribute_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-def"><a name="L1039"></a><tt class="py-lineno">1039</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str_attribute_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_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="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-expanded"><a name="L1040"></a><tt class="py-lineno">1040</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-674" 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-669', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">            <tt id="link-670" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-670', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-671" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-674', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">        <tt id="link-675" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-675', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-676" 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-671', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:stylesheet version = "1.0"</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"><tt class="py-string">          xmlns:xsl='http://www.w3.org/1999/XSL/Transform'</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line"><tt class="py-string">          xmlns:str="http://exslt.org/strings"</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"><tt class="py-string">          extension-element-prefixes="str"&gt;</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"><tt class="py-string">            &lt;h1 class="{str:replace('abc', 'b', 'x')}"&gt;test&lt;/h1&gt;</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</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">st</tt> <tt class="py-op">=</tt> <tt id="link-672" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-672', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-673', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-674" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-674', 'style', 'link-24');">style</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-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">            <tt 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>
-<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt class="py-string">&lt;h1 class="axc"&gt;test&lt;/h1&gt;</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">                              <tt id="link-675" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-675', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_math"></a><div id="ETreeEXSLTTestCase.test_exslt_math-def"><a name="L1041"></a><tt class="py-lineno">1041</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_math-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_math');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_math-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_math-expanded"><a name="L1042"></a><tt class="py-lineno">1042</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-676" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-676', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:stylesheet version = "1.0"</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"><tt class="py-string">              xmlns:xsl='http://www.w3.org/1999/XSL/Transform'</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-string">              xmlns:str="http://exslt.org/strings"</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-string">              extension-element-prefixes="str"&gt;</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"><tt class="py-string">              &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-string">                &lt;h1 class="{str:replace('abc', 'b', 'x')}"&gt;test&lt;/h1&gt;</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-string">              &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-677" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-677', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-678" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-678', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-679" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-679', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-680" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-680', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'''\</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"><tt class="py-string">&lt;h1 class="axc"&gt;test&lt;/h1&gt;</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_math"></a><div id="ETreeEXSLTTestCase.test_exslt_math-def"><a name="L1060"></a><tt class="py-lineno">1060</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_math-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_math');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_math-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_math-expanded"><a name="L1061"></a><tt class="py-lineno">1061</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-681" 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-676', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">        <tt id="link-677" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-677', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-678" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-681', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">        <tt id="link-682" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-682', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-683" 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-678', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-string">    xmlns:math="http://exslt.org/math"</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="math xsl"&gt;</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:attribute name="pi"&gt;</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:value-of select="math:constant('PI', count(*)+2)"/&gt;</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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">st</tt> <tt class="py-op">=</tt> <tt id="link-679" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-683', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line"><tt class="py-string">    xmlns:math="http://exslt.org/math"</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="math xsl"&gt;</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:attribute name="pi"&gt;</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:value-of select="math:constant('PI', count(*)+2)"/&gt;</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<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 class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-684" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-679', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-680" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-680', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-681" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-681', 'style', 'link-24');">style</a></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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">        <tt 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>
-<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"><tt class="py-string">&lt;a pi="3.14"&gt;&lt;b pi="3"&gt;B&lt;/b&gt;&lt;c pi="3"&gt;C&lt;/c&gt;&lt;/a&gt;</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">                          <tt id="link-682" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-682', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_test"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-def"><a name="L1066"></a><tt class="py-lineno">1066</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_test-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_test');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-expanded"><a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt id="link-683" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-683', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-684" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-684', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-685', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-686', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt 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>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line"><tt class="py-string">&lt;a pi="3.14"&gt;&lt;b pi="3"&gt;B&lt;/b&gt;&lt;c pi="3"&gt;C&lt;/c&gt;&lt;/a&gt;</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">                          <tt id="link-687" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-687', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_test"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-def"><a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_test-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_test');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt id="link-688" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-688', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-689" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-684', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-685', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-689', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-690" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-690', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-691" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-686', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-687" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-691', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-692" 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-687', 'XML', 'link-361');">XML</a></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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;&lt;xsl:copy-of select="*[regexp:test(string(.), '8.')]"/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-689" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-689', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-690" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-692', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-693', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;&lt;xsl:copy-of select="*[regexp:test(string(.), '8.')]"/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt id="link-694" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-694', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-695" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-690', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-691" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-695', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-696" 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-691', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-692" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-692', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;123&lt;/b&gt;&lt;b&gt;098&lt;/b&gt;&lt;b&gt;987&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="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">        <tt id="link-693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-693', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-694" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-694', 'getroot', 'link-121');">getroot</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-695', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-696', 'XML', 'link-364');">XML</a></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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;123&lt;/b&gt;&lt;b&gt;098&lt;/b&gt;&lt;b&gt;987&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="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">        <tt id="link-698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-698', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-699', 'getroot', 'link-117');">getroot</a></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">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-700', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-701" 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-696', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">                          <tt class="py-string">'test'</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">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-697" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-697', 'root', 'link-365');">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="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-698', 'root', 'link-365');">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-699" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-701', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="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-702" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-702', 'root', 'link-368');">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="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">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-704" 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-699', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">                          <tt class="py-string">'b'</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 id="link-700" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-700', 'root', 'link-365');">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-701" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-704', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">                          <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-705', 'root', 'link-368');">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-706" 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-701', 'text', 'link-372');">text</a></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">'987'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-def"><a name="L1086"></a><tt class="py-lineno">1086</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_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="ETreeEXSLTTestCase.test_exslt_regexp_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-expanded"><a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt id="link-702" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-702', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-703" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-706', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                          <tt class="py-string">'987'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-def"><a name="L1105"></a><tt class="py-lineno">1105</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_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="ETreeEXSLTTestCase.test_exslt_regexp_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-expanded"><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">        <tt id="link-707" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-707', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-708" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-703', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-704" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-704', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-705" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-708', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-709', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-710" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-705', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-710', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-711" 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-706', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', '',   'XX')"/&gt;</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:text&gt;-&lt;/xsl:text&gt;</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', 'gi', 'XX')"/&gt;</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line"><tt class="py-string">"""</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-name">result</tt> <tt class="py-op">=</tt> <tt id="link-707" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-707', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-708" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-711', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', '',   'XX')"/&gt;</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:text&gt;-&lt;/xsl:text&gt;</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', 'gi', 'XX')"/&gt;</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-712" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-712', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-713" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-708', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-713', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-714" 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-709', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-710" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-710', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</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 id="link-711" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-711', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-712" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-712', 'getroot', 'link-121');">getroot</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-714" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-714', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-715" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-715', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</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 id="link-716" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-716', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-717', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-718', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-719" 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-714', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">        <tt class="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-715" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-715', 'root', 'link-365');">root</a></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="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-716" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-716', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-719', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">        <tt class="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-720" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-720', 'root', 'link-368');">root</a></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="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-721', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-722" 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-717', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'abXXdEeDed-abXXXXeXXd'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-def"><a name="L1107"></a><tt class="py-lineno">1107</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-expanded"><a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt id="link-718" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-718', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-719" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-722', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'abXXdEeDed-abXXXXeXXd'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-def"><a name="L1126"></a><tt class="py-lineno">1126</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-expanded"><a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt id="link-723" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-723', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-724" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-719', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-720" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-720', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-721" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-724', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-725" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-725', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-726" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-721', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-722" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-726', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-727" 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-722', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line"><tt class="py-string">      &lt;test1&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.')"/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.', 'g')"/&gt;&lt;/test2&gt;</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2i&gt;&lt;xsl:copy-of select="regexp:match(string(.), 'd.', 'gi')"/&gt;&lt;/test2i&gt;</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-723" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-723', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-724" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-727', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-string">      &lt;test1&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.')"/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.', 'g')"/&gt;&lt;/test2&gt;</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2i&gt;&lt;xsl:copy-of select="regexp:match(string(.), 'd.', 'gi')"/&gt;&lt;/test2i&gt;</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"><tt class="py-string">"""</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 class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-728" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-728', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-729" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-724', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-725" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-729', 'etree', 'link-15');">etree</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-725', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-726" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-726', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</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 id="link-727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-727', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-728', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-729" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-729', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-730', 'XML', 'link-364');">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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</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 id="link-732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-732', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-733" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-733', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</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 id="link-734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-734', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-735" 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-730', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">        <tt class="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-731" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-731', 'root', 'link-365');">root</a></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="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">        <tt class="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-732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-732', 'root', 'link-365');">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="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-733" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-733', 'root', 'link-365');">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-734" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-735', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</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">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-736" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-736', 'root', 'link-368');">root</a></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="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt class="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-737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-737', 'root', 'link-368');">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="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-738" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-738', 'root', 'link-368');">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-739" 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-734', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</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">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-365');">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-736" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-739', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-740" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-740', 'root', 'link-368');">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-741" 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-736', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</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-name">len</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-365');">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-number">2</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 id="link-738" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-738', 'root', 'link-365');">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 id="link-739" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-741', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt class="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-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-368');">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-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-743" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-743', 'root', 'link-368');">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 id="link-744" 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-739', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-740" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-740', 'root', 'link-365');">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 id="link-741" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-744', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">        <tt 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-368');">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 id="link-746" 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-741', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</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">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-365');">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">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-743" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-746', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</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">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-368');">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">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-748" 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-743', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">        <tt 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-365');">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">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-745" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-748', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</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 id="link-749" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-749', 'root', 'link-368');">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">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-750" 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-745', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">        <tt class="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-746" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-746', 'root', 'link-365');">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-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">        <tt 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-365');">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-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-748" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-750', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"> </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-name">len</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-368');">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-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">        <tt 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-368');">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-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-753" 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-748', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">        <tt 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-365');">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-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-750" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-753', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">        <tt 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-368');">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-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-755" 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-750', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</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">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-365');">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-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-752" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-755', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-756" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-756', 'root', 'link-368');">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-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-757" 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-752', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">        <tt 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-365');">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-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-754" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-757', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-758" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-758', 'root', 'link-368');">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-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-759" 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-754', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</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">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-365');">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-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-756" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-759', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-760" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-760', 'root', 'link-368');">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-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-761" 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-756', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</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 id="link-757" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-757', 'root', 'link-365');">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-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-758" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-761', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">        <tt 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-368');">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-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-763" 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-758', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'De'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match_groups"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-def"><a name="L1144"></a><tt class="py-lineno">1144</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match_groups');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-expanded"><a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt id="link-759" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-759', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-760" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-763', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'De'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match_groups"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-def"><a name="L1163"></a><tt class="py-lineno">1163</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match_groups');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-expanded"><a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">        <tt id="link-764" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-764', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-765" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-760', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-761" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-761', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-762" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-765', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-766" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-766', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-767" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-762', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-763" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-767', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-768" 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-361');">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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-string">            '123abc567', '([0-9]+)([a-z]+)([0-9]+)' )"&gt;</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-765" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-765', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-766" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-766', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-767" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-768', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-769" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-769', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"><tt class="py-string">            '123abc567', '([0-9]+)([a-z]+)([0-9]+)' )"&gt;</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</tt> <tt id="link-770" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-770', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-771" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-771', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-772" 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-767', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-768" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-768', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">        <tt id="link-769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-769', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-770" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-770', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">        <tt 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-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-772" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-772', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-773" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-773', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">        <tt id="link-774" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-774', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-775" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-775', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-777" 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-772', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</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">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-773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-773', 'root', 'link-365');">root</a></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="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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-774" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-774', 'root', 'link-365');">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-775" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-777', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt class="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-778" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-778', 'root', 'link-368');">root</a></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="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"> </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 id="link-779" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-779', 'root', 'link-368');">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.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-775', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123abc567"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-777" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-780', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123abc567"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-781', 'root', 'link-368');">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-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-777', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123"</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 id="link-778" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-778', 'root', 'link-365');">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 id="link-779" 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-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123"</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 id="link-783" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-783', 'root', 'link-368');">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 id="link-784" 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-779', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"abc"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-780" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-780', 'root', 'link-365');">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 id="link-781" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-784', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"abc"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-785" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-785', 'root', 'link-368');">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 id="link-786" 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-781', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"567"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match1"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-def"><a name="L1169"></a><tt class="py-lineno">1169</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match1-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-expanded"><a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt id="link-782" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-782', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-783" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-786', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"567"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match1"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-def"><a name="L1188"></a><tt class="py-lineno">1188</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match1-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-expanded"><a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">        <tt id="link-787" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-787', 'xslt', 'link-237');">xslt</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-783', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-784" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-784', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-785" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-788', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-789', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-790" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-785', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-786" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-790', 'etree', 'link-15');">etree</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-786', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-787" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-787', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-string">            'http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml',</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"><tt class="py-string">            '(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)')"&gt;</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"><tt class="py-string">"""</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-name">result</tt> <tt class="py-op">=</tt> <tt id="link-788" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-788', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-789" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-789', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-790" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-791', 'XML', 'link-364');">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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"><tt class="py-string">            'http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml',</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line"><tt class="py-string">            '(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)')"&gt;</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><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">result</tt> <tt class="py-op">=</tt> <tt id="link-793" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-793', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-794" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-794', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-795" 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-790', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-791" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-791', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">        <tt id="link-792" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-792', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-793" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-793', 'getroot', 'link-121');">getroot</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-794', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-795" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-795', 'XML', 'link-364');">XML</a></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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt id="link-797" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-797', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-798" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-798', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt 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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-799', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-800" 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-795', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</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">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-796" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-796', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">            <tt id="link-797" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-797', 'root', 'link-365');">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-798" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-800', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="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-801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-801', 'root', 'link-368');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">            <tt id="link-802" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-802', 'root', 'link-368');">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-803" 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-798', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">            <tt class="py-string">"http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">            <tt id="link-799" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-799', 'root', 'link-365');">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-800" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-803', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">            <tt class="py-string">"http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">            <tt id="link-804" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-804', 'root', 'link-368');">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-805" 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-800', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">            <tt class="py-string">"http"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">            <tt id="link-801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-801', 'root', 'link-365');">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 id="link-802" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-805', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">            <tt class="py-string">"http"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">            <tt id="link-806" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-806', 'root', 'link-368');">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 id="link-807" 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-802', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">            <tt class="py-string">"www.bayes.co.uk"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-803" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-803', 'assertFalse', 'link-803');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-804" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-804', 'root', 'link-365');">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 id="link-805" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-807', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">            <tt class="py-string">"www.bayes.co.uk"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-808" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-808', 'assertFalse', 'link-146');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-809" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-809', 'root', 'link-368');">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 id="link-810" 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-805', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">            <tt id="link-806" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-806', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-807" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-810', 'text', 'link-375');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">            <tt id="link-811" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-811', 'root', 'link-368');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-812" 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-807', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">            <tt class="py-string">"/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match2"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-def"><a name="L1205"></a><tt class="py-lineno">1205</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match2-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-expanded"><a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt id="link-808" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-808', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-809" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-812', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">            <tt class="py-string">"/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match2"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-def"><a name="L1224"></a><tt class="py-lineno">1224</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match2-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-expanded"><a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">        <tt id="link-813" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-813', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-814" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-809', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-810" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-810', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-811" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-814', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-815" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-815', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-816" 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-811', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '(\w+)', 'g')"&gt;</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-812" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-812', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-813" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-813', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-814" class="py-name"><a title="lxml.etree.XML
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-816', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '(\w+)', 'g')"&gt;</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-817" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-817', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-818" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-818', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-819" 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-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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</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-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-817" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-817', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-819', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-820" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-820', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">        <tt id="link-821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-821', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-822" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-822', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</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 id="link-823" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-823', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-824" 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-819', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">        <tt class="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-820" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-820', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-822" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-824', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">        <tt class="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-825" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-825', 'root', 'link-368');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line"> </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 id="link-826" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-826', 'root', 'link-368');">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-827" 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-822', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</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 id="link-823" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-823', 'root', 'link-365');">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-824" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-827', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-828" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-828', 'root', 'link-368');">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-829" 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-824', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</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">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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-825', 'root', 'link-365');">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 id="link-826" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-829', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-830" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-830', 'root', 'link-368');">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 id="link-831" 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-826', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</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 id="link-827" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-827', 'root', 'link-365');">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 id="link-828" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-831', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-832', 'root', 'link-368');">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 id="link-833" 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-828', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">        <tt 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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-829', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-830" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-833', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-834" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-834', 'root', 'link-368');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-835" 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-830', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"string"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase._test_exslt_regexp_match3"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-def"><a name="L1232"></a><tt class="py-lineno">1232</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match3-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match3');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-expanded"><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">        <tt id="link-831" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-831', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-832" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-835', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"string"</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="ETreeEXSLTTestCase._test_exslt_regexp_match3"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-def"><a name="L1251"></a><tt class="py-lineno">1251</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match3-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match3');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-expanded"><a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">        <tt id="link-836" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-836', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-837" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-832', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-833', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-834" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-837', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-838" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-838', 'XSLT', 'link-27');">XSLT</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-834', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-835" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-839', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-840" 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-835', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-836" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-836', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'g')"&gt;</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line"><tt class="py-string">"""</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-name">result</tt> <tt class="py-op">=</tt> <tt id="link-837" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-837', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-838" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-838', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-839" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-840', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-841" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-841', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'g')"&gt;</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</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-name">result</tt> <tt class="py-op">=</tt> <tt id="link-842" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-842', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-843" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-843', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-844" 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-839', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-840" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-840', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">        <tt id="link-841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-841', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-842" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-842', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-843" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-843', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-844" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-844', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-845" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-845', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">        <tt id="link-846" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-846', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-847" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-847', 'getroot', 'link-117');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">        <tt 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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-848', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-849" 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-844', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">        <tt class="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-845" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-845', 'root', 'link-365');">root</a></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="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-846" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-846', 'root', 'link-365');">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-847" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-849', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">        <tt class="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-850" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-850', 'root', 'link-368');">root</a></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="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line"> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-851" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-851', 'root', 'link-368');">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-852" 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-847', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"his"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">        <tt 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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-848', 'root', 'link-365');">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-849" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-852', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"his"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-853" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-853', 'root', 'link-368');">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-854" 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-849', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-850" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-850', 'root', 'link-365');">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 id="link-851" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-854', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-855" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-855', 'root', 'link-368');">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 id="link-856" 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-851', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-852" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-852', 'root', 'link-365');">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 id="link-853" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-856', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</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 id="link-857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-857', 'root', 'link-368');">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 id="link-858" 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-853', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase._test_exslt_regexp_match4"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-def"><a name="L1259"></a><tt class="py-lineno">1259</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match4-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match4');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-expanded"><a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">        <tt id="link-854" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-854', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-855" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-858', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase._test_exslt_regexp_match4"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-def"><a name="L1278"></a><tt class="py-lineno">1278</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match4-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match4');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-expanded"><a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">        <tt id="link-859" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-859', 'xslt', 'link-237');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-860" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-855', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-856" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-856', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-857" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-860', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-861', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-862" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-857', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-858" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-862', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-863" 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-858', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-859" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-859', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'gi')"&gt;</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line"><tt class="py-string">"""</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">result</tt> <tt class="py-op">=</tt> <tt id="link-860" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-860', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-861" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-861', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-862" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-863', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'gi')"&gt;</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</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 class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-865" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-865', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-866" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-866', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-867" 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-862', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-863" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-863', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">        <tt id="link-864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-864', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-865" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-865', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-867" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-867', 'XML', 'link-364');">XML</a></tt><tt class="py-op">(</tt><tt id="link-868" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-868', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt id="link-869" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-869', 'root', 'link-368');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-870" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-870', 'getroot', 'link-117');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-871', 'root', 'link-368');">root</a></tt><tt class="py-op">.</tt><tt id="link-872" 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-867', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</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">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-868" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-868', 'root', 'link-365');">root</a></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="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-365');">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-870" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-872', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</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 class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-873" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-873', 'root', 'link-368');">root</a></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="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"> </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 id="link-874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-874', 'root', 'link-368');">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-875" 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-870', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-871', 'root', 'link-365');">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-872" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-875', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-876" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-876', 'root', 'link-368');">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-877" 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-872', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-873" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-873', 'root', 'link-365');">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 id="link-874" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-877', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-878" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-878', 'root', 'link-368');">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 id="link-879" 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-874', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-875" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-875', 'root', 'link-365');">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 id="link-876" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-879', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-880', 'root', 'link-368');">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 id="link-881" 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-876', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase"></a><div id="ETreeXSLTExtFuncTestCase-def"><a name="L1287"></a><tt class="py-lineno">1287</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</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="ETreeXSLTExtFuncTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtFuncTestCase-expanded"><a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for XPath extension functions in XSLT."""</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_extensions1"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions1-def"><a name="L1290"></a><tt class="py-lineno">1290</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions1-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-expanded"><a name="L1291"></a><tt class="py-lineno">1291</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-877" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-881', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase"></a><div id="ETreeXSLTExtFuncTestCase-def"><a name="L1306"></a><tt class="py-lineno">1306</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</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="ETreeXSLTExtFuncTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtFuncTestCase-expanded"><a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for XPath extension functions in XSLT."""</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_extensions1"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions1-def"><a name="L1309"></a><tt class="py-lineno">1309</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions1-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-expanded"><a name="L1310"></a><tt class="py-lineno">1310</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-882" 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-877', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">        <tt id="link-878" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-878', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-879" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-882', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">        <tt id="link-883" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-883', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-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-879', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-880" 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.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-884', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</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-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-885" 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-880', 'values', 'link-880');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-881" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-881', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-882" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-882', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'mytext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">mytext</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">        <tt class="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-883" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-883', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">                          <tt id="link-884" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-884', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_extensions2"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions2-def"><a name="L1307"></a><tt class="py-lineno">1307</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions2-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-expanded"><a name="L1308"></a><tt class="py-lineno">1308</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-885" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-885', 'values', 'link-885');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line"> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-886" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-886', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-887" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-887', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'mytext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">mytext</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">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-888" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-888', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1324"></a><tt class="py-lineno">1324</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-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</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="ETreeXSLTExtFuncTestCase.test_extensions2"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions2-def"><a name="L1326"></a><tt class="py-lineno">1326</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions2-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-expanded"><a name="L1327"></a><tt class="py-lineno">1327</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-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-885', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">        <tt id="link-886" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-886', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-887" 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-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">        <tt id="link-891" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-891', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-892" 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-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</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 class="py-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-888" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-892', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><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-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-893" 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-888', 'values', 'link-880');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt id="link-889" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace,Function lxml.tests.selftest.namespace()=lxml.tests.selftest-module.html#namespace"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-889', 'namespace', 'link-889');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-890" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-893', 'values', 'link-885');">values</a></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="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt id="link-894" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace,Function lxml.tests.selftest.namespace()=lxml.tests.selftest-module.html#namespace"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-894', 'namespace', 'link-894');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-895" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-890', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-891" class="py-name" targets="Function lxml.etree.FunctionNamespace()=lxml.etree-module.html#FunctionNamespace"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-891', 'FunctionNamespace', 'link-891');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt id="link-892" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-892', 'namespace', 'link-889');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-893" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-893', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-894" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-894', 'style', 'link-24');">style</a></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">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-895" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-895', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">                          <tt id="link-896" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-896', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment"></a><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-def"><a name="L1327"></a><tt class="py-lineno">1327</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-expanded"><a name="L1328"></a><tt class="py-lineno">1328</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-897" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-895', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-896" class="py-name" targets="Function lxml.etree.FunctionNamespace()=lxml.etree-module.html#FunctionNamespace"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-896', 'FunctionNamespace', 'link-896');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">        <tt id="link-897" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-897', 'namespace', 'link-894');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-898" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-898', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-899" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-899', 'style', 'link-24');">style</a></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">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-900" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-900', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">                          <tt id="link-901" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-901', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment"></a><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-def"><a name="L1346"></a><tt class="py-lineno">1346</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-expanded"><a name="L1347"></a><tt class="py-lineno">1347</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-902" 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-897', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">        <tt id="link-898" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-898', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-899" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-902', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt id="link-903" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-903', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-904" 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-899', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="content"&gt;</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-string">       &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:variable&gt;</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:mytext($content)"/&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;&lt;xsl:copy&gt;BBB&lt;/xsl:copy&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</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 id="link-900" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-904', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="content"&gt;</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-string">       &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:variable&gt;</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:mytext($content)"/&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;&lt;xsl:copy&gt;BBB&lt;/xsl:copy&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-905" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-900', 'value', 'link-900');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-901" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-905', 'value', 'link-905');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-906" 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-901', 'values', 'link-880');">values</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-902" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-902', 'hasattr', 'link-902');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-903" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-906', 'values', 'link-885');">values</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</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-907" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-907', 'hasattr', 'link-907');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-908" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-903', 'value', 'link-900');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</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 class="py-string">"%s is not an Element"</tt> <tt class="py-op">%</tt> <tt id="link-904" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-904', 'type', 'link-550');">type</a></tt><tt class="py-op">(</tt><tt id="link-905" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-908', 'value', 'link-905');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</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 class="py-string">"%s is not an Element"</tt> <tt class="py-op">%</tt> <tt id="link-909" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-909', 'type', 'link-557');">type</a></tt><tt class="py-op">(</tt><tt id="link-910" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-905', 'value', 'link-900');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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 id="link-906" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-910', 'value', 'link-905');">value</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-911" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-906', 'value', 'link-900');">value</a></tt><tt class="py-op">.</tt><tt id="link-907" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-911', 'value', 'link-905');">value</a></tt><tt class="py-op">.</tt><tt id="link-912" 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-907', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-908" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-912', 'tag', 'link-371');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-913" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-908', 'value', 'link-900');">value</a></tt><tt class="py-op">.</tt><tt id="link-909" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-913', 'value', 'link-905');">value</a></tt><tt class="py-op">.</tt><tt id="link-914" 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-909', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'BBB'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</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
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-914', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'BBB'</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">return</tt> <tt class="py-string">'X'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-915" 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-910', 'tag', 'link-368');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-911" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-915', 'tag', 'link-371');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-916" 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-911', 'values', 'link-880');">values</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">        <tt id="link-912" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-912', 'namespace', 'link-889');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-913" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-916', 'values', 'link-885');">values</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt id="link-917" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-917', 'namespace', 'link-894');">namespace</a></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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-913', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-914" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-914', 'FunctionNamespace', 'link-891');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt id="link-915" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-915', 'namespace', 'link-889');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-916', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-917" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-917', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-918" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-918', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">                         <tt id="link-919" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-919', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;bXb&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node"></a><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-def"><a name="L1358"></a><tt class="py-lineno">1358</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_xpath_on_context_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node">test_xpath_on_context_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-expanded"><a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-920" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-918', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-919', 'FunctionNamespace', 'link-896');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt id="link-920" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-920', 'namespace', 'link-894');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-921', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-922" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-922', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt class="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-923" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-923', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">                         <tt id="link-924" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-924', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;bXb&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node"></a><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-def"><a name="L1377"></a><tt class="py-lineno">1377</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_xpath_on_context_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node">test_xpath_on_context_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_context_node-expanded"><a name="L1378"></a><tt class="py-lineno">1378</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-925" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-920', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;c/&gt;C&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">        <tt id="link-921" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-921', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-925', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;c/&gt;C&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt id="link-926" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-926', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-927" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-922', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:myext()"/&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">extfunc</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">            <tt id="link-923" class="py-name" targets="Method lxml.html.HtmlMixin.text_content()=lxml.html.HtmlMixin-class.html#text_content"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-923', 'text_content', 'link-923');">text_content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ctxt</tt><tt class="py-op">.</tt><tt class="py-name">context_node</tt><tt class="py-op">.</tt><tt id="link-924" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-927', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:myext()"/&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">extfunc</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt id="link-928" class="py-name" targets="Method lxml.html.HtmlMixin.text_content()=lxml.html.HtmlMixin-class.html#text_content"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-928', 'text_content', 'link-928');">text_content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ctxt</tt><tt class="py-op">.</tt><tt class="py-name">context_node</tt><tt class="py-op">.</tt><tt id="link-929" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-924', 'xpath', 'link-924');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'text()'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'x'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-925" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-925', 'text_content', 'link-923');">text_content</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt id="link-926" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-926', 'namespace', 'link-889');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-927" class="py-name"><a title="lxml.etree
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-929', 'xpath', 'link-929');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'text()'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'x'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-930" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-930', 'text_content', 'link-928');">text_content</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">        <tt id="link-931" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-931', 'namespace', 'link-894');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-932" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-927', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-928', 'FunctionNamespace', 'link-891');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt id="link-929" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-929', 'namespace', 'link-889');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'myext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">extfunc</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-930', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-931" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-931', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-932" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-932', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">                         <tt id="link-933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-933', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;BxC&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node"></a><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-def"><a name="L1381"></a><tt class="py-lineno">1381</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node">test_xpath_on_foreign_context_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-expanded"><a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt class="py-comment"># LP ticket 1354652</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Resolver</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">system_url</tt><tt class="py-op">,</tt> <tt class="py-param">public_id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt id="link-934" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-934', 'system_url', 'link-934');">system_url</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'extdoc.xml'</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-935" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-935', 'resolve_string', 'link-415');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&lt;a&gt;&lt;b&gt;B&lt;c/&gt;C&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt id="link-936" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-936', 'parser', 'link-416');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-937" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-932', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-933" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-933', 'FunctionNamespace', 'link-896');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">        <tt id="link-934" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-934', 'namespace', 'link-894');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'myext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">extfunc</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-935" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-935', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-936" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-936', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">        <tt class="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-937" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-937', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">                         <tt id="link-938" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-938', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;BxC&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node"></a><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-def"><a name="L1400"></a><tt class="py-lineno">1400</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node">test_xpath_on_foreign_context_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_xpath_on_foreign_context_node-expanded"><a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">        <tt class="py-comment"># LP ticket 1354652</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">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="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">system_url</tt><tt class="py-op">,</tt> <tt class="py-param">public_id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt id="link-939" 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-939', 'system_url', 'link-939');">system_url</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'extdoc.xml'</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</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-940" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-940', 'resolve_string', 'link-422');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&lt;a&gt;&lt;b&gt;B&lt;c/&gt;C&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">        <tt id="link-941" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-941', 'parser', 'link-423');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-942" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-937', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-938" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-942', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-943" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-938', 'XMLParser', 'link-418');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt id="link-939" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-939', 'parser', 'link-416');">parser</a></tt><tt class="py-op">.</tt><tt id="link-940" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-940', 'resolvers', 'link-420');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-943', 'XMLParser', 'link-425');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">        <tt id="link-944" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-944', 'parser', 'link-423');">parser</a></tt><tt class="py-op">.</tt><tt id="link-945" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-945', 'resolvers', 'link-427');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-946" 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-941', 'add', 'link-421');">add</a></tt><tt class="py-op">(</tt><tt id="link-942" class="py-name" targets="Class lxml.etree.Resolver=lxml.etree.Resolver-class.html"><a title="lxml.etree.Resolver" class="py-name" href="#" onclick="return doclink('link-942', 'Resolver', 'link-942');">Resolver</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-943" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-946', 'add', 'link-428');">add</a></tt><tt class="py-op">(</tt><tt id="link-947" 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-947', 'Resolver', 'link-947');">Resolver</a></tt><tt class="py-op">(</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>
+<a name="L1410"></a><tt class="py-lineno">1410</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-948" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-943', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&lt;a&gt;&lt;b/&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-944" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-948', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&lt;a&gt;&lt;b/&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">        <tt class="py-name">transform</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.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-944', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-945" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-945', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-949', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-950', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-951" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-946', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'''\</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-string">    xmlns:mypre="testns"</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="mypre"&gt;</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"><tt class="py-string">    &lt;B&gt;&lt;xsl:value-of select="mypre:myext()"/&gt;&lt;/B&gt;</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:apply-templates select="document('extdoc.xml')//b" /&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">,</tt> <tt id="link-947" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-947', 'parser', 'link-416');">parser</a></tt><tt class="py-op">=</tt><tt id="link-948" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-948', 'parser', 'link-416');">parser</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">extfunc</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">            <tt id="link-949" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-949', 'text_content', 'link-923');">text_content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ctxt</tt><tt class="py-op">.</tt><tt class="py-name">context_node</tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree._Element.xpath
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-951', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'''\</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"><tt class="py-string">    xmlns:mypre="testns"</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="mypre"&gt;</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line"><tt class="py-string">    &lt;B&gt;&lt;xsl:value-of select="mypre:myext()"/&gt;&lt;/B&gt;</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:apply-templates select="document('extdoc.xml')//b" /&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">,</tt> <tt id="link-952" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-952', 'parser', 'link-423');">parser</a></tt><tt class="py-op">=</tt><tt id="link-953" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-953', 'parser', 'link-423');">parser</a></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>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">extfunc</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">            <tt id="link-954" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-954', 'text_content', 'link-928');">text_content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ctxt</tt><tt class="py-op">.</tt><tt class="py-name">context_node</tt><tt class="py-op">.</tt><tt id="link-955" class="py-name"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-950', 'xpath', 'link-924');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'text()'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'x'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-951" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-951', 'text_content', 'link-923');">text_content</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">        <tt id="link-952" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-952', 'namespace', 'link-889');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-953" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-953', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-954', 'FunctionNamespace', 'link-891');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt id="link-955" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-955', 'namespace', 'link-889');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'myext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">extfunc</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-956', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">                         <tt id="link-957" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-957', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;B&gt;BxC&lt;/B&gt;&lt;B/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase"></a><div id="ETreeXSLTExtElementTestCase-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtElementTestCase-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for extension elements in XSLT."""</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element-def"><a name="L1420"></a><tt class="py-lineno">1420</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element-expanded"><a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-955', 'xpath', 'link-929');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'text()'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'x'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-956" class="py-name"><a title="lxml.html.HtmlMixin.text_content" class="py-name" href="#" onclick="return doclink('link-956', 'text_content', 'link-928');">text_content</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt id="link-957" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-957', 'namespace', 'link-894');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-958" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-958', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-959', 'FunctionNamespace', 'link-896');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">        <tt id="link-960" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-960', 'namespace', 'link-894');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'myext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">extfunc</tt> </tt>
+<a name="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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="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-961" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-961', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">                         <tt id="link-962" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-962', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;B&gt;BxC&lt;/B&gt;&lt;B/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line"> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase"></a><div id="ETreeXSLTExtElementTestCase-def"><a name="L1436"></a><tt class="py-lineno">1436</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtElementTestCase-expanded"><a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for extension elements in XSLT."""</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element-def"><a name="L1439"></a><tt class="py-lineno">1439</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element-expanded"><a name="L1440"></a><tt class="py-lineno">1440</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-963" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-958', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt id="link-959" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-959', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-960" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-963', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt id="link-964" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-964', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-960', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">                <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-961" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-965', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">                <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-966" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-961', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-962" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-966', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-967" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-962', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">.</tt><tt id="link-963" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-967', 'Element', 'link-967');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">.</tt><tt id="link-968" 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-963', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-968', 'text', 'link-375');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-969" 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-964', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X'</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-965', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line"> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-966', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-967" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-967', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-968', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">                          <tt id="link-969" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-969', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;b&gt;X&lt;/b&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_doc_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-def"><a name="L1445"></a><tt class="py-lineno">1445</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_doc_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-expanded"><a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-969', 'text', 'link-375');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X'</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-970', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-971', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-972" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-972', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">        <tt class="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-973" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-973', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                          <tt id="link-974" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-974', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;b&gt;X&lt;/b&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_doc_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-def"><a name="L1464"></a><tt class="py-lineno">1464</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_doc_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-expanded"><a name="L1465"></a><tt class="py-lineno">1465</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-975" 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-970', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt id="link-971" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-971', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-975', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt id="link-976" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-976', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-977" 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-972', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt id="link-973" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-973', 'tags', 'link-973');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                <tt id="link-974" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-974', 'tags', 'link-973');">tags</a></tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-975', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-977', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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 id="link-978" 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-978', 'tags', 'link-978');">tags</a></tt> <tt class="py-op">=</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>
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">                <tt id="link-979" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-979', 'tags', 'link-978');">tags</a></tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-980', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-981" 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-976', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-977', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-978" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-978', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-979" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-979', 'tags', 'link-973');">tags</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-981', 'tag', 'link-371');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-982', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-983" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-983', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-984" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-984', 'tags', 'link-978');">tags</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-def"><a name="L1488"></a><tt class="py-lineno">1488</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-expanded"><a name="L1489"></a><tt class="py-lineno">1489</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-985" 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-980', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test toast?&gt;&lt;a&gt;&lt;!--a comment--&gt;&lt;?another pi?&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt id="link-981" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-981', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-985', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test toast?&gt;&lt;a&gt;&lt;!--a comment--&gt;&lt;?another pi?&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt id="link-986" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-986', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-982', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"><tt class="py-string">    &lt;ROOT&gt;&lt;xsl:apply-templates /&gt;&lt;/ROOT&gt;</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="comment()"&gt;</tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="processing-instruction()"&gt;</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt id="link-983" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-987', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"><tt class="py-string">    &lt;ROOT&gt;&lt;xsl:apply-templates /&gt;&lt;/ROOT&gt;</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="comment()"&gt;</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="processing-instruction()"&gt;</tt> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt id="link-988" 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-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">                <tt id="link-984" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-988', 'text', 'link-375');">text</a></tt> <tt class="py-op">=</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>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">                <tt id="link-989" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-984', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-985" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-985', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-989', 'text', 'link-375');">text</a></tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-990', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-991" 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-986', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-987', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-988" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-988', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-991', 'text', 'link-375');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-992', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-993" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-993', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-994" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-989', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'toast'</tt><tt class="py-op">,</tt> <tt class="py-string">'a comment'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context"></a><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-def"><a name="L1499"></a><tt class="py-lineno">1499</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_extension_element_attribute_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-expanded"><a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-comment"># currently not supported</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-994', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'toast'</tt><tt class="py-op">,</tt> <tt class="py-string">'a comment'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context"></a><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-def"><a name="L1518"></a><tt class="py-lineno">1518</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_extension_element_attribute_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-expanded"><a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-comment"># currently not supported</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</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-995" 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-990', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a test="A"&gt;&lt;b attr="B"/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt id="link-991" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-991', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-995', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a test="A"&gt;&lt;b attr="B"/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt id="link-996" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-996', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-997" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-992', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@test"&gt;</tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@attr"&gt;</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt id="link-993" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-997', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@test"&gt;</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@attr"&gt;</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt id="link-998" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-993', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">attr_value</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">                <tt id="link-994" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-998', 'text', 'link-375');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<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 class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">attr_value</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">                <tt id="link-999" 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-994', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-995', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_value</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-996', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-997" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-997', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-998" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-999', 'text', 'link-375');">text</a></tt><tt class="py-op">.</tt><tt id="link-1000" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1000', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_value</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="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-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1001', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1002" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1002', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1003" 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-998', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'B'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_content"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-def"><a name="L1527"></a><tt class="py-lineno">1527</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_content-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_content');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-expanded"><a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1003', 'text', 'link-375');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'B'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_content"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-def"><a name="L1546"></a><tt class="py-lineno">1546</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_content-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_content');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-expanded"><a name="L1547"></a><tt class="py-lineno">1547</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-1004" 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-999', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-1000" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1000', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1004', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt id="link-1005" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1005', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" 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-1001', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1002', 'extend', 'link-1002');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1003" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1003', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1004" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1004', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1005" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1005', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">                          <tt id="link-1006" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1006', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-def"><a name="L1549"></a><tt class="py-lineno">1549</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-expanded"><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1007" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1006', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1007" 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-1007', 'extend', 'link-1007');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="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 class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line"> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1008', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1009" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1009', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1010', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">                          <tt id="link-1011" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1011', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-def"><a name="L1568"></a><tt class="py-lineno">1568</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-expanded"><a name="L1569"></a><tt class="py-lineno">1569</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-1012" 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-1007', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt id="link-1008" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1008', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1009" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1012', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">        <tt id="link-1013" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1013', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1014" 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-1009', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line"> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name" targets="Method lxml.etree.XSLTExtension.apply_templates()=lxml.etree.XSLTExtension-class.html#apply_templates"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1010', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1011" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1011', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1012" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1012', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1014', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1015" class="py-name" targets="Method lxml.etree.XSLTExtension.apply_templates()=lxml.etree.XSLTExtension-class.html#apply_templates"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1015', 'apply_templates', 'link-1015');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1016" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1016', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1017" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1017', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1013', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1018', 'Element', 'link-967');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1019" 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-1014', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1015" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1015', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1016', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1017" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1017', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1018', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                          <tt id="link-1019" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1019', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1580"></a><tt class="py-lineno">1580</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1020" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1019', 'text', 'link-375');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">                        <tt class="py-keyword">else</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">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1020" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1020', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1021', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1022" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1022', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1023', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                          <tt id="link-1024" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1024', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1599"></a><tt class="py-lineno">1599</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1600"></a><tt class="py-lineno">1600</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-1025" 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-1020', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">        <tt id="link-1021" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1021', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1025', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">        <tt id="link-1026" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1026', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1027" 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-1022', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1023', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1024" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1024', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1025" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1025', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line"> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1026', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1027" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1027', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1028', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">                          <tt id="link-1029" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1029', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1608"></a><tt class="py-lineno">1608</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1027', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</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 class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1028', 'apply_templates', 'link-1015');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1029" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1029', 'basestring', 'link-11');">basestring</a></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">output_parent</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1030', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div></div><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">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1031" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1031', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1032" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1032', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1033', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">                          <tt id="link-1034" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1034', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1627"></a><tt class="py-lineno">1627</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1628"></a><tt class="py-lineno">1628</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-1035" 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-1030', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt id="link-1031" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1031', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1035', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">        <tt id="link-1036" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1036', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1037" 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-1032', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1033', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1034" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1034', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">                            <tt class="py-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-1035', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1036" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1036', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1037', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1038', 'apply_templates', 'link-1015');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-1039" class="py-name"><a title="lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-1039', 'basestring', 'link-11');">basestring</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-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1040" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-1040', 'strip', 'link-224');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1041" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1041', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1037', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1042', 'Element', 'link-967');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1043" 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-1038', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1039', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1040" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1040', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1041" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1041', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1042', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">                          <tt id="link-1043" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1043', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1642"></a><tt class="py-lineno">1642</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1043', 'text', 'link-375');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">                        <tt class="py-keyword">else</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">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1044', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1045', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1046" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1046', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="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-1047" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1047', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">                          <tt id="link-1048" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1048', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1661"></a><tt class="py-lineno">1661</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1662"></a><tt class="py-lineno">1662</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-1049" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1044', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">        <tt id="link-1045" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1045', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1049', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt id="link-1050" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1050', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1051" 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-1046', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1047" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1047', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1048', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1049" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1049', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1050', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">                          <tt id="link-1051" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1051', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1667"></a><tt class="py-lineno">1667</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1051', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1052', 'apply_templates', 'link-1015');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1053" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1053', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1054" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1054', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt class="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-1055" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1055', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">                          <tt id="link-1056" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1056', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1686"></a><tt class="py-lineno">1686</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1687"></a><tt class="py-lineno">1687</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-1057" 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-1052', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt id="link-1053" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1053', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1054" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1057', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">        <tt id="link-1058" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1058', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1059" 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-1054', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1055', 'apply_templates', 'link-1010');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line"> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line"> </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1056', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1057" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1057', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1058" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1058', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1059', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">                          <tt id="link-1060" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1060', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1693"></a><tt class="py-lineno">1693</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1059', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</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.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1060', 'apply_templates', 'link-1015');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1061', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1062" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1062', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1063', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1064" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1064', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">                          <tt id="link-1065" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1065', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1712"></a><tt class="py-lineno">1712</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1713"></a><tt class="py-lineno">1713</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-1066" 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-1061', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt id="link-1062" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1062', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1066', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt id="link-1067" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1067', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1068" 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-1063', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1064" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1064', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1065" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1068', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
+<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</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-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1069" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1069', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1065', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1066" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1066', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1067', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1068" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1068', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1069" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1069', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1070', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">                          <tt id="link-1071" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1071', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1730"></a><tt class="py-lineno">1730</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1070', 'Element', 'link-967');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1071" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1071', 'process_children', 'link-1071');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1072" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1072', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><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 class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line"> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1073" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1073', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1074" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1074', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1075" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1075', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">                          <tt id="link-1076" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1076', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1749"></a><tt class="py-lineno">1749</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1750"></a><tt class="py-lineno">1750</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-1077" 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-1072', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">        <tt id="link-1073" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1073', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1077', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt id="link-1078" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1078', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1079" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1074', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1075" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1075', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line"> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1076" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1076', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1077" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1077', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1078', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">                          <tt id="link-1079" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1079', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1754"></a><tt class="py-lineno">1754</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1079', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1080', 'process_children', 'link-1071');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="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">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1081" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1081', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1082" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1082', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1083', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">                          <tt id="link-1084" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1084', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1773"></a><tt class="py-lineno">1773</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1774"></a><tt class="py-lineno">1774</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-1085" 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-1080', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt id="link-1081" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1081', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1082" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1085', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt id="link-1086" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1086', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1087" 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-1082', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line"> </tt>
-<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1083', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line"> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line"> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1084" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1084', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1085" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1085', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1776"></a><tt class="py-lineno">1776</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1087', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</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-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1088" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1088', 'process_children', 'link-1071');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line"> </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">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1089" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1089', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1090" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1090', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1795"></a><tt class="py-lineno">1795</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1796"></a><tt class="py-lineno">1796</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-1091" 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-1086', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt id="link-1087" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1087', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1088" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1091', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line">        <tt id="link-1092" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1092', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1093" 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-1088', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1089" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1089', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1090" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1093', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line"> </tt>
+<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="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">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1094" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1094', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1095" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1090', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1091" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1091', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1092" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1092', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1093" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1093', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1094" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1094', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1095" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1095', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1096" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1096', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">                          <tt id="link-1097" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1097', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1804"></a><tt class="py-lineno">1804</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1098" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1095', 'Element', 'link-967');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1096" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1096', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1097" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1097', 'process_children', 'link-1071');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1098" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1098', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line"> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line"> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1099" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1099', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1100" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1100', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="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-1101" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1101', '_rootstring', 'link-330');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">                          <tt id="link-1102" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1102', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1823"></a><tt class="py-lineno">1823</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1824"></a><tt class="py-lineno">1824</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-1103" 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-1098', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">        <tt id="link-1099" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1099', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1100" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1103', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt id="link-1104" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1104', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1105" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1100', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line"> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line"> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line"> </tt>
-<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1101" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1101', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1102" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1102', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">    <tt class="py-comment"># FIXME: DISABLED - implementation seems to be broken</tt> </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">    <tt class="py-comment"># if someone cares enough about this feature, I take pull requests that fix it.</tt> </tt>
-<a name="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent"></a><div id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-def"><a name="L1829"></a><tt class="py-lineno">1829</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_multiple_extension_elements_with_output_parent">_test_multiple_extension_elements_with_output_parent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-expanded"><a name="L1830"></a><tt class="py-lineno">1830</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-1103" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1105', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line"> </tt>
+<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1106" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1106', 'xslt', 'link-237');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1107" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1107', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line"> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">    <tt class="py-comment"># FIXME: DISABLED - implementation seems to be broken</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">    <tt class="py-comment"># if someone cares enough about this feature, I take pull requests that fix it.</tt> </tt>
+<a name="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent"></a><div id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-def"><a name="L1848"></a><tt class="py-lineno">1848</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_multiple_extension_elements_with_output_parent">_test_multiple_extension_elements_with_output_parent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_multiple_extension_elements_with_output_parent-expanded"><a name="L1849"></a><tt class="py-lineno">1849</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-1108" 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-1103', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line"><tt class="py-string">&lt;text&gt;</tt> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line"><tt class="py-string">  &lt;par&gt;This is &lt;format&gt;arbitrary&lt;/format&gt; text in a paragraph&lt;/par&gt;</tt> </tt>
-<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line"><tt class="py-string">&lt;/text&gt;"""</tt><tt class="py-op">)</tt> </tt>
-<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">        <tt id="link-1104" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1104', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1105" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1108', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line"><tt class="py-string">&lt;text&gt;</tt> </tt>
+<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"><tt class="py-string">  &lt;par&gt;This is &lt;format&gt;arbitrary&lt;/format&gt; text in a paragraph&lt;/par&gt;</tt> </tt>
+<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line"><tt class="py-string">&lt;/text&gt;"""</tt><tt class="py-op">)</tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt id="link-1109" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1109', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1110" 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-1105', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="my" extension-element-prefixes="my" version="1.0"&gt;</tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="par"&gt;</tt> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line"><tt class="py-string">    &lt;my:par&gt;&lt;xsl:apply-templates /&gt;&lt;/my:par&gt;</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="format"&gt;</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"><tt class="py-string">    &lt;my:format&gt;&lt;xsl:apply-templates /&gt;&lt;/my:format&gt;</tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line"><tt class="py-string">"""</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">test</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">        <tt class="py-name">calls</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line"> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">ExtMyPar</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">                <tt class="py-name">calls</tt><tt class="py-op">.</tt><tt id="link-1106" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1106', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'par'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">                <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1107" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1107', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1108" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1110', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="my" extension-element-prefixes="my" version="1.0"&gt;</tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="par"&gt;</tt> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line"><tt class="py-string">    &lt;my:par&gt;&lt;xsl:apply-templates /&gt;&lt;/my:par&gt;</tt> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="format"&gt;</tt> </tt>
+<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line"><tt class="py-string">    &lt;my:format&gt;&lt;xsl:apply-templates /&gt;&lt;/my:format&gt;</tt> </tt>
+<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line"><tt class="py-string">"""</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">test</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt class="py-name">calls</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line"> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">ExtMyPar</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">                <tt class="py-name">calls</tt><tt class="py-op">.</tt><tt id="link-1111" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1111', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'par'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">                <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1112" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1112', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1108', 'Element', 'link-962');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"p"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line">                <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-1109" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Function lxml.tests.selftest2.attrib()=lxml.tests.selftest2-module.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1113', 'Element', 'link-967');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"p"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">                <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Function lxml.tests.selftest2.attrib()=lxml.tests.selftest2-module.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><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-1109', 'attrib', 'link-1109');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">"style"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"color:red"</tt> </tt>
-<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1110" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1110', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">p</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">output_parent</tt><tt class="py-op">.</tt><tt id="link-1111" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1111', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line"> </tt>
-<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">ExtMyFormat</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">                <tt class="py-name">calls</tt><tt class="py-op">.</tt><tt id="link-1112" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1112', 'append', 'link-597');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'format'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">                <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1113', 'process_children', 'link-1066');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line">                <tt class="py-name">test</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">content</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">test</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'arbitrary'</tt><tt class="py-op">,</tt> <tt class="py-name">content</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="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">                <tt class="py-name">test</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1114', 'attrib', 'link-1114');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">"style"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"color:red"</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1115" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1115', 'process_children', 'link-1071');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
+<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1116" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1116', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line"> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">ExtMyFormat</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">                <tt class="py-name">calls</tt><tt class="py-op">.</tt><tt id="link-1117" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1117', 'append', 'link-604');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'format'</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">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1118" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1118', 'process_children', 'link-1071');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</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">test</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">content</tt><tt class="py-op">)</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">test</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'arbitrary'</tt><tt class="py-op">,</tt> <tt class="py-name">content</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="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">                <tt class="py-name">test</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1119" 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-1114', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1115" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1119', 'text', 'link-375');">text</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">output_parent</tt><tt class="py-op">.</tt><tt id="link-1120" 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-1115', 'text', 'link-372');">text</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'*-%s-*'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-</div></div><a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line"> </tt>
-<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">(</tt><tt class="py-string">"my"</tt><tt class="py-op">,</tt> <tt class="py-string">"par"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">ExtMyPar</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">"my"</tt><tt class="py-op">,</tt> <tt class="py-string">"format"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">ExtMyFormat</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">}</tt> </tt>
-<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-1116" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1120', 'text', 'link-375');">text</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'*-%s-*'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div></div><a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line"> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">(</tt><tt class="py-string">"my"</tt><tt class="py-op">,</tt> <tt class="py-string">"par"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">ExtMyPar</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">"my"</tt><tt class="py-op">,</tt> <tt class="py-string">"format"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">ExtMyFormat</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">}</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-name">transform</tt> <tt class="py-op">=</tt> <tt id="link-1121" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1116', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1117" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1117', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1118" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1118', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'par'</tt><tt class="py-op">,</tt> <tt class="py-string">'format'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">calls</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;p style="color:red"&gt;This is *-arbitrary-* text in a paragraph&lt;/p&gt;\n'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">            <tt id="link-1119" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1121', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1122" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1122', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1123" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1123', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">transform</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">        <tt 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">'par'</tt><tt class="py-op">,</tt> <tt class="py-string">'format'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">calls</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;p style="color:red"&gt;This is *-arbitrary-* text in a paragraph&lt;/p&gt;\n'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">            <tt id="link-1124" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1119', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1120" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1120', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line"> </tt>
-<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1873"></a><tt class="py-lineno">1873</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line"> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">    <tt id="link-1121" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_relaxng.RelaxNGCompactTestCase.pytestmark=lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1124', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1125" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1125', 'tostring', 'link-247');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line"> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1892"></a><tt class="py-lineno">1892</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
+<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line"> </tt>
+<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">    <tt id="link-1126" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_relaxng.RelaxNGCompactTestCase.pytestmark=lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
 lxml.tests.test_relaxng.RelaxNGCompactTestCase.pytestmark
-lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1121', 'pytestmark', 'link-1121');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1122" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1122', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1878"></a><tt class="py-lineno">1878</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1879"></a><tt class="py-lineno">1879</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-1123" 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-1123', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">        <tt id="link-1124" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1124', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1125" 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-1125', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line"> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1126" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1126', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1127" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1127', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1128" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1128', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1129" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1129', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1897"></a><tt class="py-lineno">1897</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1898"></a><tt class="py-lineno">1898</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-1130" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1126', 'pytestmark', 'link-1126');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1127" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1127', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1897"></a><tt class="py-lineno">1897</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1898"></a><tt class="py-lineno">1898</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-1128" 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-1130', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt id="link-1131" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1131', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1132" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1128', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt id="link-1129" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1129', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1130" 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-1132', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1130', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
 <a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
 <a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
 <a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
@@ -4266,35 +4251,35 @@ lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick
 <a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
 <a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
 <a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line"> </tt>
-<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1133" class="py-name"><a title="lxml.etree
+<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1131" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1133', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1134" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1134', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1135" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1135', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1131', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1132" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1132', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1133" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1133', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1136" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1136', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1134" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1134', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
 <a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
 <a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
 <a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1916"></a><tt class="py-lineno">1916</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1917"></a><tt class="py-lineno">1917</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-1137" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1916"></a><tt class="py-lineno">1916</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1917"></a><tt class="py-lineno">1917</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-1135" 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-1137', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">        <tt id="link-1138" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1138', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1139" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1135', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">        <tt id="link-1136" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1136', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1137" 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-1139', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1137', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
 <a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
 <a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
 <a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
@@ -4303,38 +4288,75 @@ lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick
 <a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
 <a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
 <a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line"> </tt>
-<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1140" class="py-name"><a title="lxml.etree
+<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1138" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1140', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1141" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1141', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1142" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1142', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1138', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1139" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1139', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1140" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1140', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="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-1143" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1143', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </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-1141" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1141', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
 <a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
 <a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
 <a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line"><tt class="py-string">'''</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">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line"> </tt>
-<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L1936"></a><tt class="py-lineno">1936</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L1937"></a><tt class="py-lineno">1937</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="L1938"></a><tt class="py-lineno">1938</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-1144" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1144', 'ETreeXSLTTestCase', 'link-1144');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</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-1145" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1145', 'ETreeEXSLTTestCase', 'link-1145');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</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-1146" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1146', 'ETreeXSLTExtFuncTestCase', 'link-1146');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</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-1147" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1147', 'ETreeXSLTExtElementTestCase', 'link-1147');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1148" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1148', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt class="py-name">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-1149" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1149', 'Py3XSLTTestCase', 'link-1149');">Py3XSLTTestCase</a></tt><tt class="py-op">)</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 class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1150" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1150', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1946"></a><tt class="py-lineno">1946</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="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1151" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1151', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line"> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</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="L1951"></a><tt class="py-lineno">1951</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="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1935"></a><tt class="py-lineno">1935</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1936"></a><tt class="py-lineno">1936</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-1142" 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-1142', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt id="link-1143" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1143', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1144" 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-1144', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line"> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1145" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1145', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1146" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1146', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1147" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1147', 'style', 'link-24');">style</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">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1148" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1148', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line"> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L1955"></a><tt class="py-lineno">1955</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L1956"></a><tt class="py-lineno">1956</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="L1957"></a><tt class="py-lineno">1957</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-1149" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1149', 'ETreeXSLTTestCase', 'link-1149');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line">    <tt 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-1150" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1150', 'ETreeEXSLTTestCase', 'link-1150');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</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 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-1151" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1151', 'ETreeXSLTExtFuncTestCase', 'link-1151');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</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">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-1152" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1152', 'ETreeXSLTExtElementTestCase', 'link-1152');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1153" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1153', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">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-1154" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1154', 'Py3XSLTTestCase', 'link-1154');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1155" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1155', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</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="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1156" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1156', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line"> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</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="L1970"></a><tt class="py-lineno">1970</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="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -4372,7 +4394,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d5c8f06..d88f888 100644 (file)
@@ -502,7 +502,8 @@ EXSLT tests
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 25bb701..0abd64f 100644 (file)
@@ -582,7 +582,8 @@ Tests for extension elements in XSLT.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index abdad68..6d37fa0 100644 (file)
@@ -406,7 +406,8 @@ Tests for XPath extension functions in XSLT.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 57c6383..4ed0620 100644 (file)
@@ -1142,7 +1142,8 @@ XSLT tests etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69cd226..419d3ba 100644 (file)
@@ -420,7 +420,8 @@ s': {}}&gt;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e6c80ed..1f6d1d0 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c08e45c..26e65a4 100644 (file)
@@ -112,7 +112,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fcc3bac..e1a5dd9 100644 (file)
@@ -363,7 +363,8 @@ contains some hooks for decoding encoded and multipart messages.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8020a93..dd23eb8 100644 (file)
@@ -158,7 +158,8 @@ namespace registry mechanism</em>    </li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:07 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 186a4b6..0fad09c 100644 (file)
@@ -1628,7 +1628,8 @@ arguments start and end are interpreted as in slice notation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 90d2045..71ba1ae 100644 (file)
@@ -657,9 +657,9 @@ hash(x)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;function _serialize_html at 0x2ab25a3c98c0&gt;,
- 'text': &lt;function _serialize_text at 0x2ab25a3c9938&gt;,
- 'xml': &lt;function _serialize_xml at 0x2ab25a3c9848&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x2ab25a3c9<code class="variable-ellipsis">...</code></code>
+        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;__builtin__.function object&gt;,
+ 'text': &lt;__builtin__.function object&gt;,
+ 'xml': &lt;__builtin__.function object&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 </table>
@@ -743,9 +743,9 @@ hash(x)
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x2ab25a3c98c0&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_text at 0x2ab25a3c9938&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_xml at 0x2ab25a3c9848&gt;<code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;__builtin__.function object&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -783,7 +783,8 @@ hash(x)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:08 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 42274be..54d6330 100644 (file)
@@ -943,7 +943,7 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"><tt class="py-comment"># @param text A string containing the QName value, in the form {uri}local,</tt> </tt>
 <a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line"><tt class="py-comment">#     or, if the tag argument is given, the URI part of a QName.</tt> </tt>
 <a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"><tt class="py-comment"># @param tag Optional tag.  If given, the first argument is interpreted as</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"><tt class="py-comment">#     an URI, and this argument is interpreted as a local name.</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"><tt class="py-comment">#     a URI, and this argument is interpreted as a local name.</tt> </tt>
 <a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line"><tt class="py-comment"># @return An opaque object, representing the QName.</tt> </tt>
 <a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line"> </tt>
 <a name="QName"></a><div id="QName-def"><a name="L580"></a><tt class="py-lineno"> 580</tt> <a class="py-toggle" href="#" id="QName-toggle" onclick="return toggle('QName');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.QName-class.html">QName</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -2295,806 +2295,821 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 <a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-528" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-528', 'hasattr', 'link-21');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</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-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">        <tt class="py-name">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-529" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-529" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-529', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt id="link-530" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">            <tt id="link-530" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-530', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-531" 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-531', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-532" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-532', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-533" class="py-name"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-533', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-534" class="py-name" targets="Class xml.etree.ElementTree._IterParseIterator=xml.etree.ElementTree._IterParseIterator-class.html"><a title="xml.etree.ElementTree._IterParseIterator" class="py-name" href="#" onclick="return doclink('link-534', '_IterParseIterator', 'link-534');">_IterParseIterator</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt id="link-535" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-534" class="py-name" targets="Class xml.etree.ElementTree._IterParseIterator=xml.etree.ElementTree._IterParseIterator-class.html"><a title="xml.etree.ElementTree._IterParseIterator" class="py-name" href="#" onclick="return doclink('link-534', '_IterParseIterator', 'link-534');">_IterParseIterator</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt id="link-535" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-535', 'parser', 'link-145');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-name">close_source</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator"></a><div id="_IterParseIterator-def"><a name="L1205"></a><tt class="py-lineno">1205</tt> <a class="py-toggle" href="#" id="_IterParseIterator-toggle" onclick="return toggle('_IterParseIterator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_IterParseIterator-expanded"><a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator.__init__"></a><div id="_IterParseIterator.__init__-def"><a name="L1207"></a><tt class="py-lineno">1207</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__init__-toggle" onclick="return toggle('_IterParseIterator.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">close_source</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__init__-expanded"><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name" targets="Variable lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-536', '_file', 'link-536');">_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt> <tt class="py-op">=</tt> <tt class="py-name">close_source</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">self</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-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">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-537', 'root', 'link-537');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">_parser</tt> <tt class="py-op">=</tt> <tt id="link-538" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-538', 'parser', 'link-145');">parser</a></tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-comment"># wire up the parser for event reporting</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt id="link-539" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-539', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-540" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-540', 'append', 'link-50');">append</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-541', 'append', 'link-50');">append</a></tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">events</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</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>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">:</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</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="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">                    <tt id="link-542" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-542', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">                    <tt id="link-543" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-543', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-544" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-544', 'append', 'link-50');">append</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">                        <tt id="link-545" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-545', 'append', 'link-50');">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 id="link-546" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-546', 'start', 'link-546');">start</a></tt><tt class="py-op">(</tt><tt id="link-547" 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-547', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">                    <tt id="link-548" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-548', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-549" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-549', 'append', 'link-50');">append</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start</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 id="link-550" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-550', 'append', 'link-50');">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 id="link-551" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-551', 'start', 'link-546');">start</a></tt><tt class="py-op">(</tt><tt id="link-552" 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-552', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">                    <tt id="link-553" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-553', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-554" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-554', 'append', 'link-50');">append</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">                            <tt class="py-param">end</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">                    <tt id="link-555" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-555', 'append', 'link-50');">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 id="link-556" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-556', 'end', 'link-556');">end</a></tt><tt class="py-op">(</tt><tt id="link-557" 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-557', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">                <tt id="link-558" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-558', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start-ns"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-559" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-559', 'append', 'link-50');">append</a></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-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">                        <tt id="link-560" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-560', 'uri', 'link-219');">uri</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-561" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-561', 'uri', 'link-219');">uri</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</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">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">                        <tt class="py-keyword">pass</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">                    <tt id="link-562" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-562', 'append', 'link-50');">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-op">(</tt><tt id="link-563" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-563', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt id="link-564" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-564', 'uri', 'link-219');">uri</a></tt> <tt class="py-keyword">or</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="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">                <tt id="link-565" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-565', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end-ns"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-566" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-566', 'append', 'link-50');">append</a></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 id="link-567" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-567', 'append', 'link-50');">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">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                <tt id="link-568" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-568', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</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">"unknown event %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator.next"></a><div id="_IterParseIterator.next-def"><a name="L1254"></a><tt class="py-lineno">1254</tt> <a class="py-toggle" href="#" id="_IterParseIterator.next-toggle" onclick="return toggle('_IterParseIterator.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator.next-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.next-expanded"><a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">            <tt class="py-keyword">try</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">item</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</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">_index</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">item</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</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">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">self</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-537');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</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">self</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-570', '_file', 'link-536');">_file</a></tt><tt class="py-op">.</tt><tt id="link-571" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">close_source</tt><tt class="py-op">:</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">            <tt class="py-name">source</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-571', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">StopIteration</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">            <tt class="py-comment"># load event buffer</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</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-op">]</tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt id="link-572" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-572', 'data', 'link-150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-573', '_file', 'link-536');">_file</a></tt><tt class="py-op">.</tt><tt id="link-574" 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-574', 'read', 'link-151');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">16384</tt><tt class="py-op">)</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-575" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-575', 'data', 'link-150');">data</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">                <tt class="py-keyword">try</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">_parser</tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-576', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-577" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-577', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-536', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> </tt>
+</div><a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator"></a><div id="_IterParseIterator-def"><a name="L1210"></a><tt class="py-lineno">1210</tt> <a class="py-toggle" href="#" id="_IterParseIterator-toggle" onclick="return toggle('_IterParseIterator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IterParseIterator-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_IterParseIterator-expanded"><a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator.__init__"></a><div id="_IterParseIterator.__init__-def"><a name="L1212"></a><tt class="py-lineno">1212</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__init__-toggle" onclick="return toggle('_IterParseIterator.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">close_source</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IterParseIterator.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__init__-expanded"><a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name" targets="Variable lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-537', '_file', 'link-537');">_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">source</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">_close_file</tt> <tt class="py-op">=</tt> <tt class="py-name">close_source</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-name">self</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-op">]</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-538" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-538', 'root', 'link-538');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-539" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-539', 'parser', 'link-145');">parser</a></tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-comment"># wire up the parser for event reporting</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">        <tt id="link-540" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-540', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">        <tt id="link-541" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-541', 'append', 'link-50');">append</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">.</tt><tt id="link-542" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-542', 'append', 'link-50');">append</a></tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">events</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</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>
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">:</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</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="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">                    <tt id="link-543" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-543', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">                    <tt id="link-544" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-544', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-545" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-545', 'append', 'link-50');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</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 id="link-546" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-546', 'append', 'link-50');">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 id="link-547" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-547', 'start', 'link-547');">start</a></tt><tt class="py-op">(</tt><tt id="link-548" 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-548', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">                    <tt id="link-549" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-549', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-550" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-550', 'append', 'link-50');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">                        <tt id="link-551" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-551', 'append', 'link-50');">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 id="link-552" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-552', 'start', 'link-547');">start</a></tt><tt class="py-op">(</tt><tt id="link-553" 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-553', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">                    <tt id="link-554" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-554', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-555" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-555', 'append', 'link-50');">append</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-param">end</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">                    <tt id="link-556" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-556', 'append', 'link-50');">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 id="link-557" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-557', 'end', 'link-557');">end</a></tt><tt class="py-op">(</tt><tt id="link-558" 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-558', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">                <tt id="link-559" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-559', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start-ns"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-560" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-560', 'append', 'link-50');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">                        <tt id="link-561" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-561', 'uri', 'link-219');">uri</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-562" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-562', 'uri', 'link-219');">uri</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</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">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">                        <tt class="py-keyword">pass</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                    <tt id="link-563" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-563', 'append', 'link-50');">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-op">(</tt><tt id="link-564" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-564', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt id="link-565" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-565', 'uri', 'link-219');">uri</a></tt> <tt class="py-keyword">or</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="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">                <tt id="link-566" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-566', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end-ns"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-567" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-567', 'append', 'link-50');">append</a></tt><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 id="link-568" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-568', 'append', 'link-50');">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">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">                <tt id="link-569" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-569', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</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">"unknown event %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator.next"></a><div id="_IterParseIterator.next-def"><a name="L1259"></a><tt class="py-lineno">1259</tt> <a class="py-toggle" href="#" id="_IterParseIterator.next-toggle" onclick="return toggle('_IterParseIterator.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IterParseIterator.next-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.next-expanded"><a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">                <tt class="py-keyword">try</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">item</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt><tt class="py-op">]</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">item</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">                    <tt class="py-keyword">pass</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</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">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-570', 'root', 'link-538');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">                <tt class="py-comment"># load event buffer</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">                <tt class="py-keyword">del</tt> <tt class="py-name">self</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-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">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">                <tt id="link-571" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-571', 'data', 'link-150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-572" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-572', '_file', 'link-537');">_file</a></tt><tt class="py-op">.</tt><tt id="link-573" 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-573', 'read', 'link-151');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">16384</tt><tt class="py-op">)</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-574" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-574', 'data', 'link-150');">data</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-575', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-576" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-576', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-578', 'close', 'link-157');">close</a></tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator.__iter__"></a><div id="_IterParseIterator.__iter__-def"><a name="L1284"></a><tt class="py-lineno">1284</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__iter__-toggle" onclick="return toggle('_IterParseIterator.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#__iter__">__iter__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__iter__-expanded"><a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
-</div></div><a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  This function can</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"><tt class="py-comment"># be used to embed "XML literals" in Python code.</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
-<a name="XML"></a><div id="XML-def"><a name="L1297"></a><tt class="py-lineno">1297</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XML">XML</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-579" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-579', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt id="link-580" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-580', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-581" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-577', 'close', 'link-157');">close</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</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">self</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-578', '_file', 'link-537');">_file</a></tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-579', 'close', 'link-157');">close</a></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-keyword">raise</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</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">self</tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-580', '_file', 'link-537');">_file</a></tt><tt class="py-op">.</tt><tt id="link-581" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-581', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">StopIteration</tt> </tt>
+</div><a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator.__iter__"></a><div id="_IterParseIterator.__iter__-def"><a name="L1295"></a><tt class="py-lineno">1295</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__iter__-toggle" onclick="return toggle('_IterParseIterator.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#__iter__">__iter__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IterParseIterator.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__iter__-expanded"><a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><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-comment">##</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  This function can</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line"><tt class="py-comment"># be used to embed "XML literals" in Python code.</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line"> </tt>
+<a name="XML"></a><div id="XML-def"><a name="L1308"></a><tt class="py-lineno">1308</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XML">XML</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-582" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-582', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt id="link-583" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-583', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-584" 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-581', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-582" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-582', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-583" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-583', 'TreeBuilder', 'link-149');">TreeBuilder</a></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 id="link-584" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-584', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-585" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-585', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-586" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-584', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-585" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-585', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-586" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-586', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">    <tt id="link-587" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-587', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-588', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-589" 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-586', 'text', 'link-7');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-587" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-587', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-589', 'text', 'link-7');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-590" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-590', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-588', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant, and also returns</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line"><tt class="py-comment"># a dictionary which maps from element id:s to elements.</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line"><tt class="py-comment"># @return A tuple containing an Element instance and a dictionary.</tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn (Element, dictionary)</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"> </tt>
-<a name="XMLID"></a><div id="XMLID-def"><a name="L1313"></a><tt class="py-lineno">1313</tt> <a class="py-toggle" href="#" id="XMLID-toggle" onclick="return toggle('XMLID');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XMLID">XMLID</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="XMLID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLID-expanded"><a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-589" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-589', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt id="link-590" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-590', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-591" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-591', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant, and also returns</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"><tt class="py-comment"># a dictionary which maps from element id:s to elements.</tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line"><tt class="py-comment"># @return A tuple containing an Element instance and a dictionary.</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn (Element, dictionary)</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line"> </tt>
+<a name="XMLID"></a><div id="XMLID-def"><a name="L1324"></a><tt class="py-lineno">1324</tt> <a class="py-toggle" href="#" id="XMLID-toggle" onclick="return toggle('XMLID');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XMLID">XMLID</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="XMLID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLID-expanded"><a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-592" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-592', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt id="link-593" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-593', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-594" 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-591', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-592" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-592', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-593" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-593', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">    <tt id="link-594" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-594', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-595', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-596" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-594', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-595" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-595', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-596" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-596', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">    <tt id="link-597" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-597', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-598', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-599" 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-596', 'text', 'link-7');">text</a></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">tree</tt> <tt class="py-op">=</tt> <tt id="link-597" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-597', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-599', 'text', 'link-7');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-600" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-600', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-601" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-598', 'close', 'link-157');">close</a></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 class="py-name">ids</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-599" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-599', 'iter', 'link-10');">iter</a></tt><tt class="py-op">(</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-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-601', 'close', 'link-157');">close</a></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 class="py-name">ids</tt> <tt class="py-op">=</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-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-602" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-602', 'iter', 'link-10');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">id</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-603" 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-600', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"id"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">            <tt class="py-name">ids</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">ids</tt> </tt>
-</div><a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  Same as {@link #XML}.</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"><tt class="py-comment"># @def fromstring(text)</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt id="link-601" 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.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-603', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"id"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">            <tt class="py-name">ids</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">ids</tt> </tt>
+</div><a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  Same as {@link #XML}.</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"><tt class="py-comment"># @def fromstring(text)</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"><tt id="link-604" 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-601', 'fromstring', 'link-601');">fromstring</a></tt> <tt class="py-op">=</tt> <tt id="link-602" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-604', 'fromstring', 'link-604');">fromstring</a></tt> <tt class="py-op">=</tt> <tt id="link-605" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><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-602', 'XML', 'link-602');">XML</a></tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a sequence of string fragments.</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"><tt class="py-comment"># @param sequence A list or other sequence containing XML data fragments.</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
-<a name="fromstringlist"></a><div id="fromstringlist-def"><a name="L1345"></a><tt class="py-lineno">1345</tt> <a class="py-toggle" href="#" id="fromstringlist-toggle" onclick="return toggle('fromstringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#fromstringlist">fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">sequence</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstringlist-expanded"><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-603" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-603', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">        <tt id="link-604" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-604', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-605" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-605', 'XML', 'link-605');">XML</a></tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a sequence of string fragments.</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"><tt class="py-comment"># @param sequence A list or other sequence containing XML data fragments.</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"> </tt>
+<a name="fromstringlist"></a><div id="fromstringlist-def"><a name="L1356"></a><tt class="py-lineno">1356</tt> <a class="py-toggle" href="#" id="fromstringlist-toggle" onclick="return toggle('fromstringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#fromstringlist">fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">sequence</tt><tt class="py-op">,</tt> <tt class="py-param">parser</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="fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstringlist-expanded"><a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-606" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-606', 'parser', 'link-145');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">        <tt id="link-607" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-607', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-608" 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-605', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-606" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-606', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-607" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-607', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-608" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-608', 'XMLParser', 'link-147');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-609" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-609', 'target', 'link-123');">target</a></tt><tt class="py-op">=</tt><tt id="link-610" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-610', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">for</tt> <tt id="link-611" 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-608', 'text', 'link-7');">text</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-609" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-609', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-610', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-611" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-611', 'text', 'link-7');">text</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">        <tt id="link-612" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-612', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-613', 'feed', 'link-154');">feed</a></tt><tt class="py-op">(</tt><tt id="link-614" 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-611', 'text', 'link-7');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-612" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-612', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-614', 'text', 'link-7');">text</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-keyword">return</tt> <tt id="link-615" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-615', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt id="link-616" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-613', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</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-comment">##</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-comment"># Generic element structure builder.  This builder converts a sequence</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-comment"># of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-comment"># #TreeBuilder.end} method calls to a well-formed element structure.</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-comment"># &lt;p&gt;</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-comment"># You can use this class to build an element structure using a custom XML</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-comment"># parser, or a parser for some other XML-like format.</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-comment"># @param element_factory Optional element factory.  This factory</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-comment">#    is called to create new Element instances, as necessary.</tt> </tt>
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-616', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><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-comment"># --------------------------------------------------------------------</tt> </tt>
 <a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder"></a><div id="TreeBuilder-def"><a name="L1365"></a><tt class="py-lineno">1365</tt> <a class="py-toggle" href="#" id="TreeBuilder-toggle" onclick="return toggle('TreeBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TreeBuilder-expanded"><a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.__init__"></a><div id="TreeBuilder.__init__-def"><a name="L1367"></a><tt class="py-lineno">1367</tt> <a class="py-toggle" href="#" id="TreeBuilder.__init__-toggle" onclick="return toggle('TreeBuilder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element_factory</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="TreeBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.__init__-expanded"><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">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># data collector</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># element stack</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># last element</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">_tail</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># true if we're after an end tag</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element_factory</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">            <tt class="py-name">element_factory</tt> <tt class="py-op">=</tt> <tt id="link-614" class="py-name"><a title="lxml.etree.Element
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-comment"># Generic element structure builder.  This builder converts a sequence</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-comment"># of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link</tt> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-comment"># #TreeBuilder.end} method calls to a well-formed element structure.</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"><tt class="py-comment"># &lt;p&gt;</tt> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line"><tt class="py-comment"># You can use this class to build an element structure using a custom XML</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line"><tt class="py-comment"># parser, or a parser for some other XML-like format.</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"><tt class="py-comment"># @param element_factory Optional element factory.  This factory</tt> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"><tt class="py-comment">#    is called to create new Element instances, as necessary.</tt> </tt>
+<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder"></a><div id="TreeBuilder-def"><a name="L1376"></a><tt class="py-lineno">1376</tt> <a class="py-toggle" href="#" id="TreeBuilder-toggle" onclick="return toggle('TreeBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TreeBuilder-expanded"><a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.__init__"></a><div id="TreeBuilder.__init__-def"><a name="L1378"></a><tt class="py-lineno">1378</tt> <a class="py-toggle" href="#" id="TreeBuilder.__init__-toggle" onclick="return toggle('TreeBuilder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element_factory</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="TreeBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.__init__-expanded"><a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># data collector</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># element stack</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># last element</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># true if we're after an end tag</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">element_factory</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt class="py-name">element_factory</tt> <tt class="py-op">=</tt> <tt id="link-617" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-614', 'Element', 'link-20');">Element</a></tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt> <tt class="py-op">=</tt> <tt class="py-name">element_factory</tt> </tt>
-</div><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">    <tt class="py-comment"># Flushes the builder buffers, and returns the toplevel document</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">    <tt class="py-comment"># element.</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">    <tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.close"></a><div id="TreeBuilder.close-def"><a name="L1383"></a><tt class="py-lineno">1383</tt> <a class="py-toggle" href="#" id="TreeBuilder.close-toggle" onclick="return toggle('TreeBuilder.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.close-expanded"><a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">        <tt class="py-keyword">assert</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">_elem</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-string">"missing end tags"</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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 class="py-string">"missing toplevel element"</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
-</div><a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder._flush"></a><div id="TreeBuilder._flush-def"><a name="L1388"></a><tt class="py-lineno">1388</tt> <a class="py-toggle" href="#" id="TreeBuilder._flush-toggle" onclick="return toggle('TreeBuilder._flush');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#_flush">_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder._flush-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder._flush-expanded"><a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">                <tt id="link-615" 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-615', 'text', 'link-7');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt><tt class="py-op">:</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-616" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-616', 'tail', 'link-26');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (tail)"</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-617" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-617', 'tail', 'link-26');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-618" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-617', 'Element', 'link-20');">Element</a></tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt> <tt class="py-op">=</tt> <tt class="py-name">element_factory</tt> </tt>
+</div><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-comment">##</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">    <tt class="py-comment"># Flushes the builder buffers, and returns the toplevel document</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">    <tt class="py-comment"># element.</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">    <tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.close"></a><div id="TreeBuilder.close-def"><a name="L1394"></a><tt class="py-lineno">1394</tt> <a class="py-toggle" href="#" id="TreeBuilder.close-toggle" onclick="return toggle('TreeBuilder.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.close-expanded"><a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">        <tt class="py-keyword">assert</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">_elem</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-string">"missing end tags"</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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 class="py-string">"missing toplevel element"</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
+</div><a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder._flush"></a><div id="TreeBuilder._flush-def"><a name="L1399"></a><tt class="py-lineno">1399</tt> <a class="py-toggle" href="#" id="TreeBuilder._flush-toggle" onclick="return toggle('TreeBuilder._flush');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#_flush">_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder._flush-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder._flush-expanded"><a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">                <tt id="link-618" 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-618', 'text', 'link-7');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</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">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-619" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-619', 'tail', 'link-26');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (tail)"</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-620" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-620', 'tail', 'link-26');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-621" 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-618', 'text', 'link-7');">text</a></tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">                <tt class="py-keyword">else</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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-619" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-621', 'text', 'link-7');">text</a></tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-622" 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-619', 'text', 'link-7');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (text)"</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-620" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-622', 'text', 'link-7');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (text)"</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-623" 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-620', 'text', 'link-7');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-621" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-623', 'text', 'link-7');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-624" 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-621', 'text', 'link-7');">text</a></tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><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-comment">##</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">    <tt class="py-comment"># Adds text to the current element.</tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">    <tt class="py-comment"># @param data A string.  This should be either an 8-bit string</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">    <tt class="py-comment">#    containing ASCII text, or a Unicode string.</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.data"></a><div id="TreeBuilder.data-def"><a name="L1406"></a><tt class="py-lineno">1406</tt> <a class="py-toggle" href="#" id="TreeBuilder.data-toggle" onclick="return toggle('TreeBuilder.data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#data">data</a><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>
-</div><div id="TreeBuilder.data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.data-expanded"><a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-622" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-622', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt id="link-623" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-623', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">    <tt class="py-comment"># Opens a new element.</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">    <tt class="py-comment"># @param attrib A dictionary containing element attributes.</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">    <tt class="py-comment"># @return The opened element.</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-624', 'text', 'link-7');">text</a></tt> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">    <tt class="py-comment"># Adds text to the current element.</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">    <tt class="py-comment"># @param data A string.  This should be either an 8-bit string</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">    <tt class="py-comment">#    containing ASCII text, or a Unicode string.</tt> </tt>
 <a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.start"></a><div id="TreeBuilder.start-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="TreeBuilder.start-toggle" onclick="return toggle('TreeBuilder.start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#start">start</a><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">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder.start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.start-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt><tt class="py-op">(</tt><tt id="link-624" 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-624', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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-625" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-625', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-626" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-626', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">elem</tt> </tt>
-</div><a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">    <tt class="py-comment"># Closes the current element.</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">    <tt class="py-comment"># @return The closed element.</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.end"></a><div id="TreeBuilder.end-def"><a name="L1433"></a><tt class="py-lineno">1433</tt> <a class="py-toggle" href="#" id="TreeBuilder.end-toggle" onclick="return toggle('TreeBuilder.end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#end">end</a><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>
-</div><div id="TreeBuilder.end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.end-expanded"><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">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-627" 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-627', 'pop', 'link-627');">pop</a></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-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-628" 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-628', 'tag', 'link-2');">tag</a></tt> <tt class="py-op">==</tt> <tt id="link-629" 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-629', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt>\ </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">               <tt class="py-string">"end tag mismatch (expected %s, got %s)"</tt> <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">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-630" 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-630', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-631" 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-631', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
-</div></div><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"><tt class="py-comment"># Element structure builder for XML source data, based on the</tt> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"><tt class="py-comment"># &lt;b&gt;expat&lt;/b&gt; parser.</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam target Target object.  If omitted, the builder uses an</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"><tt class="py-comment">#     instance of the standard {@link #TreeBuilder} class.</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam html Predefine HTML entities.  This flag is not supported</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-comment">#     by the current implementation.</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional encoding.  If given, the value overrides</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-comment">#     the encoding specified in the XML file.</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-comment"># @see #ElementTree</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-comment"># @see #TreeBuilder</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser"></a><div id="XMLParser-def"><a name="L1455"></a><tt class="py-lineno">1455</tt> <a class="py-toggle" href="#" id="XMLParser-toggle" onclick="return toggle('XMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html">XMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLParser-expanded"><a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.__init__"></a><div id="XMLParser.__init__-def"><a name="L1457"></a><tt class="py-lineno">1457</tt> <a class="py-toggle" href="#" id="XMLParser.__init__-toggle" onclick="return toggle('XMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">=</tt><tt class="py-name">None</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="XMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.__init__-expanded"><a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">            <tt class="py-keyword">from</tt> <tt id="link-632" 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-632', 'xml', 'link-632');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">pyexpat</tt> <tt class="py-keyword">as</tt> <tt class="py-name">expat</tt> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">                    <tt class="py-string">"No module named expat; use SimpleXMLTreeBuilder instead"</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt id="link-633" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-633', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">ParserCreate</tt><tt class="py-op">(</tt><tt id="link-634" class="py-name"><a title="lxml.etree.DocInfo.encoding
+<a name="TreeBuilder.data"></a><div id="TreeBuilder.data-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="TreeBuilder.data-toggle" onclick="return toggle('TreeBuilder.data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#data">data</a><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>
+</div><div id="TreeBuilder.data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.data-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-625', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt id="link-626" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-626', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">    <tt class="py-comment"># Opens a new element.</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">    <tt class="py-comment"># @param attrib A dictionary containing element attributes.</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">    <tt class="py-comment"># @return The opened element.</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.start"></a><div id="TreeBuilder.start-def"><a name="L1428"></a><tt class="py-lineno">1428</tt> <a class="py-toggle" href="#" id="TreeBuilder.start-toggle" onclick="return toggle('TreeBuilder.start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#start">start</a><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">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder.start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.start-expanded"><a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt><tt class="py-op">(</tt><tt id="link-627" 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-627', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">:</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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-628" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-628', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-629" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-629', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</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">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">elem</tt> </tt>
+</div><a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line"> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">    <tt class="py-comment"># Closes the current element.</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">    <tt class="py-comment"># @return The closed element.</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.end"></a><div id="TreeBuilder.end-def"><a name="L1444"></a><tt class="py-lineno">1444</tt> <a class="py-toggle" href="#" id="TreeBuilder.end-toggle" onclick="return toggle('TreeBuilder.end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#end">end</a><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>
+</div><div id="TreeBuilder.end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.end-expanded"><a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-630" 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-630', 'pop', 'link-630');">pop</a></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-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-631" 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-631', 'tag', 'link-2');">tag</a></tt> <tt class="py-op">==</tt> <tt id="link-632" 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-632', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt>\ </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">               <tt class="py-string">"end tag mismatch (expected %s, got %s)"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-633" 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-633', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-634" 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-634', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
+</div></div><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 class="py-comment">##</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-comment"># Element structure builder for XML source data, based on the</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"><tt class="py-comment"># &lt;b&gt;expat&lt;/b&gt; parser.</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam target Target object.  If omitted, the builder uses an</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line"><tt class="py-comment">#     instance of the standard {@link #TreeBuilder} class.</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam html Predefine HTML entities.  This flag is not supported</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"><tt class="py-comment">#     by the current implementation.</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional encoding.  If given, the value overrides</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"><tt class="py-comment">#     the encoding specified in the XML file.</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"><tt class="py-comment"># @see #ElementTree</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line"><tt class="py-comment"># @see #TreeBuilder</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser"></a><div id="XMLParser-def"><a name="L1466"></a><tt class="py-lineno">1466</tt> <a class="py-toggle" href="#" id="XMLParser-toggle" onclick="return toggle('XMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html">XMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLParser-expanded"><a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.__init__"></a><div id="XMLParser.__init__-def"><a name="L1468"></a><tt class="py-lineno">1468</tt> <a class="py-toggle" href="#" id="XMLParser.__init__-toggle" onclick="return toggle('XMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">=</tt><tt class="py-name">None</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="XMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.__init__-expanded"><a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">            <tt class="py-keyword">from</tt> <tt id="link-635" 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-635', 'xml', 'link-635');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">pyexpat</tt> <tt class="py-keyword">as</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">                    <tt class="py-string">"No module named expat; use SimpleXMLTreeBuilder instead"</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-636" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-636', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">ParserCreate</tt><tt class="py-op">(</tt><tt id="link-637" 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-634', 'encoding', 'link-195');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"}"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-635" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-635', 'target', 'link-123');">target</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">            <tt id="link-636" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-636', 'target', 'link-123');">target</a></tt> <tt class="py-op">=</tt> <tt id="link-637" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-637', 'TreeBuilder', 'link-149');">TreeBuilder</a></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-comment"># underscored names are provided for compatibility only</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</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._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-638', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-639" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-639', 'parser', 'link-145');">parser</a></tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-640" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-640', 'target', 'link-123');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_target</tt> <tt class="py-op">=</tt> <tt id="link-641" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-641', 'target', 'link-123');">target</a></tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-642" class="py-name" targets="Variable lxml.etree.ErrorDomains._names=lxml.etree.ErrorDomains-class.html#_names,Variable lxml.etree.ErrorLevels._names=lxml.etree.ErrorLevels-class.html#_names,Variable lxml.etree.ErrorTypes._names=lxml.etree.ErrorTypes-class.html#_names,Variable lxml.etree.RelaxNGErrorTypes._names=lxml.etree.RelaxNGErrorTypes-class.html#_names"><a title="lxml.etree.ErrorDomains._names
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-637', 'encoding', 'link-195');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"}"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-638" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-638', 'target', 'link-123');">target</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">            <tt id="link-639" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-639', 'target', 'link-123');">target</a></tt> <tt class="py-op">=</tt> <tt id="link-640" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-640', 'TreeBuilder', 'link-149');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt class="py-comment"># underscored names are provided for compatibility only</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-641" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-641', 'parser', 'link-145');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-642" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-642', 'parser', 'link-145');">parser</a></tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-643', 'target', 'link-123');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_target</tt> <tt class="py-op">=</tt> <tt id="link-644" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-644', 'target', 'link-123');">target</a></tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-645" class="py-name" targets="Variable lxml.etree.ErrorDomains._names=lxml.etree.ErrorDomains-class.html#_names,Variable lxml.etree.ErrorLevels._names=lxml.etree.ErrorLevels-class.html#_names,Variable lxml.etree.ErrorTypes._names=lxml.etree.ErrorTypes-class.html#_names,Variable lxml.etree.RelaxNGErrorTypes._names=lxml.etree.RelaxNGErrorTypes-class.html#_names"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
-lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-642', '_names', 'link-642');">_names</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># name memo cache</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-comment"># callbacks</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt id="link-643" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-643', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">DefaultHandlerExpand</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_default</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt id="link-644" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-644', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-645" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-645', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-646', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt class="py-comment"># optional callbacks</tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-647" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-647', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CommentHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_comment</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt id="link-648" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-648', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstructionHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pi</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-comment"># let expat do the buffering, if supported</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">buffer_text</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-comment"># use new-style attribute handling, if supported</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">            <tt id="link-649" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-649', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-keyword">try</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 id="link-650" class="py-name" targets="Variable lxml.etree.iterparse.version=lxml.etree.iterparse-class.html#version"><a title="lxml.etree.iterparse.version" class="py-name" href="#" onclick="return doclink('link-650', 'version', 'link-650');">version</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Expat %d.%d.%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> <tt class="py-comment"># unknown</tt> </tt>
-</div><a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._raiseerror"></a><div id="XMLParser._raiseerror-def"><a name="L1502"></a><tt class="py-lineno">1502</tt> <a class="py-toggle" href="#" id="XMLParser._raiseerror-toggle" onclick="return toggle('XMLParser._raiseerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_raiseerror">_raiseerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._raiseerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._raiseerror-expanded"><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt id="link-651" 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-651', 'ParseError', 'link-651');">ParseError</a></tt><tt class="py-op">(</tt><tt id="link-652" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-645', '_names', 'link-645');">_names</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># name memo cache</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt class="py-comment"># callbacks</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-646', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">DefaultHandlerExpand</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_default</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt id="link-647" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-647', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt id="link-648" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-648', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt id="link-649" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-649', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">        <tt class="py-comment"># optional callbacks</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">        <tt id="link-650" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-650', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CommentHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_comment</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt id="link-651" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-651', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstructionHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pi</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt class="py-comment"># let expat do the buffering, if supported</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">buffer_text</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-comment"># use new-style attribute handling, if supported</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">            <tt id="link-652" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-652', 'parser', 'link-145');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt> <tt class="py-op">=</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-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-653" class="py-name" targets="Variable lxml.etree.iterparse.version=lxml.etree.iterparse-class.html#version"><a title="lxml.etree.iterparse.version" class="py-name" href="#" onclick="return doclink('link-653', 'version', 'link-653');">version</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Expat %d.%d.%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> <tt class="py-comment"># unknown</tt> </tt>
+</div><a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._raiseerror"></a><div id="XMLParser._raiseerror-def"><a name="L1513"></a><tt class="py-lineno">1513</tt> <a class="py-toggle" href="#" id="XMLParser._raiseerror-toggle" onclick="return toggle('XMLParser._raiseerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_raiseerror">_raiseerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._raiseerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._raiseerror-expanded"><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt id="link-654" 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-654', 'ParseError', 'link-654');">ParseError</a></tt><tt class="py-op">(</tt><tt id="link-655" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-652', 'value', 'link-74');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt id="link-653" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-655', 'value', 'link-74');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt id="link-656" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-653', 'value', 'link-74');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">code</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-654" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-656', 'value', 'link-74');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">code</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-657" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-654', 'value', 'link-74');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt><tt class="py-op">,</tt> <tt id="link-655" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-657', 'value', 'link-74');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt><tt class="py-op">,</tt> <tt id="link-658" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-655', 'value', 'link-74');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
-</div><a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._fixtext"></a><div id="XMLParser._fixtext-def"><a name="L1508"></a><tt class="py-lineno">1508</tt> <a class="py-toggle" href="#" id="XMLParser._fixtext-toggle" onclick="return toggle('XMLParser._fixtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixtext">_fixtext</a><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>
-</div><div id="XMLParser._fixtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixtext-expanded"><a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-comment"># convert text string to ascii, if possible</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-656" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-658', 'value', 'link-74');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
+</div><a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._fixtext"></a><div id="XMLParser._fixtext-def"><a name="L1519"></a><tt class="py-lineno">1519</tt> <a class="py-toggle" href="#" id="XMLParser._fixtext-toggle" onclick="return toggle('XMLParser._fixtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixtext">_fixtext</a><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>
+</div><div id="XMLParser._fixtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixtext-expanded"><a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt class="py-comment"># convert text string to ascii, if possible</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt class="py-keyword">try</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 id="link-659" 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-656', 'text', 'link-7');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-657" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-659', 'text', 'link-7');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-660" 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-657', 'text', 'link-7');">text</a></tt> </tt>
-</div><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._fixname"></a><div id="XMLParser._fixname-def"><a name="L1515"></a><tt class="py-lineno">1515</tt> <a class="py-toggle" href="#" id="XMLParser._fixname-toggle" onclick="return toggle('XMLParser._fixname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixname">_fixname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._fixname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixname-expanded"><a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-comment"># expand qname, and convert name string to ascii, if possible</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">            <tt id="link-658" 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.text" class="py-name" href="#" onclick="return doclink('link-660', 'text', 'link-7');">text</a></tt> </tt>
+</div><a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._fixname"></a><div id="XMLParser._fixname-def"><a name="L1526"></a><tt class="py-lineno">1526</tt> <a class="py-toggle" href="#" id="XMLParser._fixname-toggle" onclick="return toggle('XMLParser._fixname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixname">_fixname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._fixname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixname-expanded"><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-comment"># expand qname, and convert name string to ascii, if possible</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">            <tt id="link-661" 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-658', 'name', 'link-658');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree.ErrorDomains._names
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-661', 'name', 'link-661');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-662" class="py-name"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
-lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-659', '_names', 'link-642');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">            <tt id="link-660" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-662', '_names', 'link-645');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</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="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">            <tt id="link-663" 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-660', 'name', 'link-658');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"}"</tt> <tt class="py-keyword">in</tt> <tt id="link-661" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-663', 'name', 'link-661');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"}"</tt> <tt class="py-keyword">in</tt> <tt id="link-664" 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-661', 'name', 'link-658');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">                <tt id="link-662" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-664', 'name', 'link-661');">name</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">                <tt id="link-665" 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-662', 'name', 'link-658');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{"</tt> <tt class="py-op">+</tt> <tt id="link-663" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-665', 'name', 'link-661');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{"</tt> <tt class="py-op">+</tt> <tt id="link-666" 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-663', 'name', 'link-658');">name</a></tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-664" class="py-name"><a title="lxml.etree.ErrorDomains._names
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-666', 'name', 'link-661');">name</a></tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</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.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
-lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-664', '_names', 'link-642');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-665" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-667', '_names', 'link-645');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-668" 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-665', 'name', 'link-658');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-666" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-668', 'name', 'link-661');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-669" 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-666', 'name', 'link-658');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-667" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-669', 'name', 'link-661');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-670" 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-667', 'name', 'link-658');">name</a></tt> </tt>
-</div><a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._start"></a><div id="XMLParser._start-def"><a name="L1526"></a><tt class="py-lineno">1526</tt> <a class="py-toggle" href="#" id="XMLParser._start-toggle" onclick="return toggle('XMLParser._start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start">_start</a><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_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start-expanded"><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-668" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-670', 'name', 'link-661');">name</a></tt> </tt>
+</div><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._start"></a><div id="XMLParser._start-def"><a name="L1537"></a><tt class="py-lineno">1537</tt> <a class="py-toggle" href="#" id="XMLParser._start-toggle" onclick="return toggle('XMLParser._start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start">_start</a><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_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start-expanded"><a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt id="link-671" 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-668', 'tag', 'link-2');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-671', 'tag', 'link-2');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-672" 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-669', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-670" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-672', 'tag', 'link-2');">tag</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-673" 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-670', 'attrib', 'link-24');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-671" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-673', 'attrib', 'link-24');">attrib</a></tt> <tt class="py-op">=</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">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-674" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-671', 'value', 'link-74');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">.</tt><tt id="link-672" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-674', 'value', 'link-74');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">.</tt><tt id="link-675" 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-672', 'items', 'link-78');">items</a></tt><tt class="py-op">(</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 id="link-673" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-675', 'items', 'link-78');">items</a></tt><tt class="py-op">(</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 id="link-676" 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-673', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt id="link-674" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-676', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt id="link-677" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-674', 'value', 'link-74');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</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-675" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-675', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-676" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-676', 'start', 'link-546');">start</a></tt><tt class="py-op">(</tt><tt id="link-677" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-677', 'value', 'link-74');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-678" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-678', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-679" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-679', 'start', 'link-547');">start</a></tt><tt class="py-op">(</tt><tt id="link-680" 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-677', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-678" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-680', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-681" 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-678', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._start_list"></a><div id="XMLParser._start_list-def"><a name="L1535"></a><tt class="py-lineno">1535</tt> <a class="py-toggle" href="#" id="XMLParser._start_list-toggle" onclick="return toggle('XMLParser._start_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start_list">_start_list</a><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_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._start_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start_list-expanded"><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-679" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-681', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._start_list"></a><div id="XMLParser._start_list-def"><a name="L1546"></a><tt class="py-lineno">1546</tt> <a class="py-toggle" href="#" id="XMLParser._start_list-toggle" onclick="return toggle('XMLParser._start_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start_list">_start_list</a><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_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._start_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start_list-expanded"><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt id="link-682" 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-679', 'tag', 'link-2');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-680" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-682', 'tag', 'link-2');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-683" 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-680', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-681" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-683', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt id="link-684" 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-681', 'attrib', 'link-24');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">:</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">            <tt class="py-keyword">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">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</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>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                <tt id="link-682" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-684', 'attrib', 'link-24');">attrib</a></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 class="py-keyword">if</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">:</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</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">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</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>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">                <tt id="link-685" 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-682', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</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 class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</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="L1543"></a><tt class="py-lineno">1543</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-683" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-683', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-684" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-684', 'start', 'link-546');">start</a></tt><tt class="py-op">(</tt><tt id="link-685" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-685', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</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 class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</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="L1554"></a><tt class="py-lineno">1554</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-686" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-686', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-687" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-687', 'start', 'link-547');">start</a></tt><tt class="py-op">(</tt><tt id="link-688" 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-685', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-686" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-688', 'tag', 'link-2');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-689" 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-686', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._data"></a><div id="XMLParser._data-def"><a name="L1545"></a><tt class="py-lineno">1545</tt> <a class="py-toggle" href="#" id="XMLParser._data-toggle" onclick="return toggle('XMLParser._data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_data">_data</a><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>
-</div><div id="XMLParser._data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._data-expanded"><a name="L1546"></a><tt class="py-lineno">1546</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-687" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-687', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-688" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-688', 'data', 'link-150');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-689" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-689', 'attrib', 'link-24');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._data"></a><div id="XMLParser._data-def"><a name="L1556"></a><tt class="py-lineno">1556</tt> <a class="py-toggle" href="#" id="XMLParser._data-toggle" onclick="return toggle('XMLParser._data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_data">_data</a><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>
+</div><div id="XMLParser._data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._data-expanded"><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-690" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-690', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-691" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-691', 'data', 'link-150');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-692" 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-689', 'text', 'link-7');">text</a></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="XMLParser._end"></a><div id="XMLParser._end-def"><a name="L1548"></a><tt class="py-lineno">1548</tt> <a class="py-toggle" href="#" id="XMLParser._end-toggle" onclick="return toggle('XMLParser._end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_end">_end</a><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>
-</div><div id="XMLParser._end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._end-expanded"><a name="L1549"></a><tt class="py-lineno">1549</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-690" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-690', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-691" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-691', 'end', 'link-556');">end</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt><tt class="py-op">(</tt><tt id="link-692" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-692', 'text', 'link-7');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._end"></a><div id="XMLParser._end-def"><a name="L1559"></a><tt class="py-lineno">1559</tt> <a class="py-toggle" href="#" id="XMLParser._end-toggle" onclick="return toggle('XMLParser._end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_end">_end</a><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>
+</div><div id="XMLParser._end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._end-expanded"><a name="L1560"></a><tt class="py-lineno">1560</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-693" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-693', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-694" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-694', 'end', 'link-557');">end</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt><tt class="py-op">(</tt><tt id="link-695" 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-692', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._comment"></a><div id="XMLParser._comment-def"><a name="L1551"></a><tt class="py-lineno">1551</tt> <a class="py-toggle" href="#" id="XMLParser._comment-toggle" onclick="return toggle('XMLParser._comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_comment">_comment</a><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>
-</div><div id="XMLParser._comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._comment-expanded"><a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">            <tt id="link-693" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-693', 'comment', 'link-693');">comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-694" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-694', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-695', 'comment', 'link-693');">comment</a></tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</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">pass</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-keyword">else</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 id="link-696" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-696', 'comment', 'link-693');">comment</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-697" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-697', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._pi"></a><div id="XMLParser._pi-def"><a name="L1559"></a><tt class="py-lineno">1559</tt> <a class="py-toggle" href="#" id="XMLParser._pi-toggle" onclick="return toggle('XMLParser._pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_pi">_pi</a><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>
-</div><div id="XMLParser._pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._pi-expanded"><a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">            <tt id="link-698" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-698', 'pi', 'link-698');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-699', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-700" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-700', 'pi', 'link-698');">pi</a></tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-701" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-701', 'pi', 'link-698');">pi</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-702" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-702', 'target', 'link-123');">target</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-703" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-703', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._default"></a><div id="XMLParser._default-def"><a name="L1567"></a><tt class="py-lineno">1567</tt> <a class="py-toggle" href="#" id="XMLParser._default-toggle" onclick="return toggle('XMLParser._default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_default">_default</a><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>
-</div><div id="XMLParser._default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._default-expanded"><a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt id="link-704" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-704', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-705" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-695', 'tag', 'link-2');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._comment"></a><div id="XMLParser._comment-def"><a name="L1562"></a><tt class="py-lineno">1562</tt> <a class="py-toggle" href="#" id="XMLParser._comment-toggle" onclick="return toggle('XMLParser._comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_comment">_comment</a><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>
+</div><div id="XMLParser._comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._comment-expanded"><a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">            <tt id="link-696" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-696', 'comment', 'link-696');">comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-697" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-697', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-698" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-698', 'comment', 'link-696');">comment</a></tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">return</tt> <tt id="link-699" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-699', 'comment', 'link-696');">comment</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-700" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-700', 'data', 'link-150');">data</a></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="XMLParser._pi"></a><div id="XMLParser._pi-def"><a name="L1570"></a><tt class="py-lineno">1570</tt> <a class="py-toggle" href="#" id="XMLParser._pi-toggle" onclick="return toggle('XMLParser._pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_pi">_pi</a><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>
+</div><div id="XMLParser._pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._pi-expanded"><a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">            <tt id="link-701" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-701', 'pi', 'link-701');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-702" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-702', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-703" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-703', 'pi', 'link-701');">pi</a></tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-704" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-704', 'pi', 'link-701');">pi</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-705" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-705', 'target', 'link-123');">target</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-706" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-706', 'data', 'link-150');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._default"></a><div id="XMLParser._default-def"><a name="L1578"></a><tt class="py-lineno">1578</tt> <a class="py-toggle" href="#" id="XMLParser._default-toggle" onclick="return toggle('XMLParser._default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_default">_default</a><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>
+</div><div id="XMLParser._default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._default-expanded"><a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt id="link-707" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-707', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-708" 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-705', 'text', 'link-7');">text</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="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-706" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-706', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&amp;"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">            <tt class="py-comment"># deal with undefined entities</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-707" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-707', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-708" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-708', 'data', 'link-150');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt><tt class="py-op">[</tt><tt id="link-709" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-708', 'text', 'link-7');">text</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="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-709" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-709', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&amp;"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">            <tt class="py-comment"># deal with undefined entities</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-710" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-710', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-711" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-711', 'data', 'link-150');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt><tt class="py-op">[</tt><tt id="link-712" 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-709', 'text', 'link-7');">text</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">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</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="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt id="link-710" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-710', 'xml', 'link-632');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">                    <tt class="py-string">"undefined entity %s: line %d, column %d"</tt> <tt class="py-op">%</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-711" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-712', 'text', 'link-7');">text</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">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt id="link-713" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-713', 'xml', 'link-635');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">                <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">                    <tt class="py-string">"undefined entity %s: line %d, column %d"</tt> <tt class="py-op">%</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-714" 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-711', 'text', 'link-7');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</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">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt><tt class="py-op">)</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-number">11</tt> <tt class="py-comment"># XML_ERROR_UNDEFINED_ENTITY</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-712" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-712', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">and</tt> <tt id="link-713" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-714', 'text', 'link-7');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</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">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt><tt class="py-op">)</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-number">11</tt> <tt class="py-comment"># XML_ERROR_UNDEFINED_ENTITY</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-715" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-715', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">and</tt> <tt id="link-716" 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-713', 'text', 'link-7');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">9</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;!DOCTYPE"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># inside a doctype declaration</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</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="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">            <tt class="py-comment"># parse doctype contents</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-714" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-714', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&gt;"</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">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt id="link-715" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-716', 'text', 'link-7');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">9</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;!DOCTYPE"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># inside a doctype declaration</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</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="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">            <tt class="py-comment"># parse doctype contents</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-717" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-717', 'prefix', 'link-222');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">            <tt id="link-718" 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-715', 'text', 'link-7');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-716" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-718', 'text', 'link-7');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-719" 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-716', 'text', 'link-7');">text</a></tt><tt class="py-op">.</tt><tt id="link-717" 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-717', 'strip', 'link-717');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-718" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-719', 'text', 'link-7');">text</a></tt><tt class="py-op">.</tt><tt id="link-720" 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-720', 'strip', 'link-720');">strip</a></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 class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-721" 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-718', 'text', 'link-7');">text</a></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">return</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-719', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt id="link-720" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-721', 'text', 'link-7');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                <tt class="py-keyword">return</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">_doctype</tt><tt class="py-op">.</tt><tt id="link-722" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-722', 'append', 'link-50');">append</a></tt><tt class="py-op">(</tt><tt id="link-723" 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-720', 'text', 'link-7');">text</a></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">n</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">_doctype</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">if</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                <tt id="link-721" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-721', 'type', 'link-434');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-722" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-722', 'type', 'link-434');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"PUBLIC"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                    <tt id="link-723" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-723', 'text', 'link-7');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">            <tt class="py-name">n</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">_doctype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">                <tt id="link-724" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-724', 'type', 'link-434');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">[</tt><tt class="py-number">1</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">if</tt> <tt id="link-725" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-725', 'type', 'link-434');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"PUBLIC"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                    <tt id="link-726" 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-723', 'name', 'link-658');">name</a></tt><tt class="py-op">,</tt> <tt id="link-724" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-724', 'type', 'link-434');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-725" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-725', 'type', 'link-434');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"SYSTEM"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                    <tt id="link-726" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-726', 'name', 'link-661');">name</a></tt><tt class="py-op">,</tt> <tt id="link-727" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-727', 'type', 'link-434');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-728" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-728', 'type', 'link-434');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"SYSTEM"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">                    <tt id="link-729" 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-726', 'name', 'link-658');">name</a></tt><tt class="py-op">,</tt> <tt id="link-727" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-727', 'type', 'link-434');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">pubid</tt><tt class="py-op">:</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">pubid</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="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-728" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-728', 'hasattr', 'link-21');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-729" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-729', 'target', 'link-123');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"doctype"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-730', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-731" 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-731', 'doctype', 'link-731');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-732" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-729', 'name', 'link-661');">name</a></tt><tt class="py-op">,</tt> <tt id="link-730" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-730', 'type', 'link-434');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">pubid</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">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">pubid</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="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-731" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-731', 'hasattr', 'link-21');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-732" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-732', 'target', 'link-123');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"doctype"</tt><tt class="py-op">)</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 id="link-733" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-733', 'target', 'link-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-734" 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-734', 'doctype', 'link-734');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-735" 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-732', 'name', 'link-658');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</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 class="py-op">)</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-733" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-733', 'doctype', 'link-731');">doctype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">:</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                    <tt class="py-comment"># warn about deprecated call</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">(</tt><tt id="link-734" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-735', 'name', 'link-661');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</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 class="py-op">)</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-736" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-736', 'doctype', 'link-734');">doctype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">:</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">                    <tt class="py-comment"># warn about deprecated call</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">(</tt><tt id="link-737" 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-734', 'name', 'link-658');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</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 class="py-op">)</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-735" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-735', 'doctype', 'link-731');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-736" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-737', 'name', 'link-661');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</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 class="py-op">)</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-738" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-738', 'doctype', 'link-734');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-739" 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-736', 'name', 'link-658');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</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 class="py-op">)</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</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 class="py-comment">##</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">    <tt class="py-comment"># (Deprecated) Handles a doctype declaration.</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">    <tt class="py-comment"># @param name Doctype name.</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">    <tt class="py-comment"># @param pubid Public identifier.</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">    <tt class="py-comment"># @param system System identifier.</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.doctype"></a><div id="XMLParser.doctype-def"><a name="L1622"></a><tt class="py-lineno">1622</tt> <a class="py-toggle" href="#" id="XMLParser.doctype-toggle" onclick="return toggle('XMLParser.doctype');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#doctype">doctype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">pubid</tt><tt class="py-op">,</tt> <tt class="py-param">system</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser.doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.doctype-expanded"><a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-docstring">"""This method of XMLParser is deprecated."""</tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">            <tt class="py-string">"This method of XMLParser is deprecated.  Define doctype() "</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">            <tt class="py-string">"method on the TreeBuilder target."</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">DeprecationWarning</tt><tt class="py-op">,</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">            <tt class="py-op">)</tt> </tt>
-</div><a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">    <tt class="py-comment"># sentinel, if doctype is redefined in a subclass</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">    <tt class="py-name">__doctype</tt> <tt class="py-op">=</tt> <tt id="link-737" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-737', 'doctype', 'link-731');">doctype</a></tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-739', 'name', 'link-661');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</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 class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><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 class="py-comment">##</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">    <tt class="py-comment"># (Deprecated) Handles a doctype declaration.</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">    <tt class="py-comment"># @param name Doctype name.</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">    <tt class="py-comment"># @param pubid Public identifier.</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">    <tt class="py-comment"># @param system System identifier.</tt> </tt>
 <a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">    <tt class="py-comment"># Feeds data to the parser.</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">    <tt class="py-comment"># @param data Encoded data.</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.feed"></a><div id="XMLParser.feed-def"><a name="L1638"></a><tt class="py-lineno">1638</tt> <a class="py-toggle" href="#" id="XMLParser.feed-toggle" onclick="return toggle('XMLParser.feed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#feed">feed</a><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>
-</div><div id="XMLParser.feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.feed-expanded"><a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt id="link-738" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-738', 'data', 'link-150');">data</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-739" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-739', 'v', 'link-309');">v</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-740" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-740', 'v', 'link-309');">v</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.doctype"></a><div id="XMLParser.doctype-def"><a name="L1633"></a><tt class="py-lineno">1633</tt> <a class="py-toggle" href="#" id="XMLParser.doctype-toggle" onclick="return toggle('XMLParser.doctype');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#doctype">doctype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">pubid</tt><tt class="py-op">,</tt> <tt class="py-param">system</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser.doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.doctype-expanded"><a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">        <tt class="py-docstring">"""This method of XMLParser is deprecated."""</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">        <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">            <tt class="py-string">"This method of XMLParser is deprecated.  Define doctype() "</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">            <tt class="py-string">"method on the TreeBuilder target."</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">DeprecationWarning</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>
+</div><a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">    <tt class="py-comment"># sentinel, if doctype is redefined in a subclass</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">    <tt class="py-name">__doctype</tt> <tt class="py-op">=</tt> <tt id="link-740" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-740', 'doctype', 'link-734');">doctype</a></tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
 <a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">    <tt class="py-comment"># Finishes feeding data to the parser.</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">    <tt class="py-comment"># Feeds data to the parser.</tt> </tt>
 <a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">    <tt class="py-comment"># @return An element structure.</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.close"></a><div id="XMLParser.close-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="XMLParser.close-toggle" onclick="return toggle('XMLParser.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.close-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</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 class="py-comment"># end of data</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-741" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-741', 'v', 'link-309');">v</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-742" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-742', 'v', 'link-309');">v</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-744" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">    <tt class="py-comment"># @param data Encoded data.</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.feed"></a><div id="XMLParser.feed-def"><a name="L1649"></a><tt class="py-lineno">1649</tt> <a class="py-toggle" href="#" id="XMLParser.feed-toggle" onclick="return toggle('XMLParser.feed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#feed">feed</a><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>
+</div><div id="XMLParser.feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.feed-expanded"><a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt id="link-741" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-741', 'data', 'link-150');">data</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-742" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-742', 'v', 'link-309');">v</a></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">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-743" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-743', 'v', 'link-309');">v</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">    <tt class="py-comment"># Finishes feeding data to the parser.</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">    <tt class="py-comment"># @return An element structure.</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.close"></a><div id="XMLParser.close-def"><a name="L1661"></a><tt class="py-lineno">1661</tt> <a class="py-toggle" href="#" id="XMLParser.close-toggle" onclick="return toggle('XMLParser.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.close-expanded"><a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</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 class="py-comment"># end of data</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-744" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-744', 'v', 'link-309');">v</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">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-745" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-745', 'v', 'link-309');">v</a></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">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-123');">target</a></tt><tt class="py-op">.</tt><tt id="link-747" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-744', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-745" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-745', 'target', 'link-123');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-comment"># get rid of circular references</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
-</div></div><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"><tt class="py-comment"># compatibility</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-name">XMLTreeBuilder</tt> <tt class="py-op">=</tt> <tt id="link-746" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-747', 'close', 'link-157');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-748" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-748', 'target', 'link-123');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-comment"># get rid of circular references</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
+</div></div><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-comment"># compatibility</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-name">XMLTreeBuilder</tt> <tt class="py-op">=</tt> <tt id="link-749" 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-746', 'XMLParser', 'link-147');">XMLParser</a></tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"><tt class="py-comment"># workaround circular import.</tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">ElementC14N</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">    <tt id="link-747" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-747', '_serialize', 'link-190');">_serialize</a></tt><tt class="py-op">[</tt><tt class="py-string">"c14n"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-749', 'XMLParser', 'link-147');">XMLParser</a></tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-comment"># workaround circular import.</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">ElementC14N</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">    <tt id="link-750" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-750', '_serialize', 'link-190');">_serialize</a></tt><tt class="py-op">[</tt><tt class="py-string">"c14n"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -3132,7 +3147,8 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:12 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 48028c4..8cf772e 100644 (file)
@@ -729,7 +729,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b35dc02..2d3b655 100644 (file)
@@ -423,7 +423,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 181e647..1d1a636 100644 (file)
@@ -192,7 +192,8 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc4f287..1e4a372 100644 (file)
@@ -324,7 +324,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7a6c63a..16e80b9 100644 (file)
@@ -309,7 +309,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b3416fb..ee115d6 100644 (file)
@@ -475,7 +475,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 12fa05d..190548f 100644 (file)
@@ -263,7 +263,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d605b56..1372041 100644 (file)
@@ -241,7 +241,8 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Mar 17 17:38:10 2016
+    Generated by Epydoc 3.0.1
+    on Thu Aug 18 19:07:54 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fbb9951..cc7b706 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -171,7 +171,7 @@ your operating system type (Linux, Windows, MacOS-X, ...).</p>
 </div>
 <div class="section" id="building-an-egg-or-wheel">
 <h1>Building an egg or wheel</h1>
-<p>This is the procedure to make an lxml egg or <a class="reference external" href="http://wheel.readthedocs.org/en/latest/">wheel</a> for your platform.
+<p>This is the procedure to make an lxml egg or <a class="reference external" href="https://wheel.readthedocs.io/en/latest/">wheel</a> for your platform.
 It assumes that you have <tt class="docutils literal">setuptools</tt> or <tt class="docutils literal">distribute</tt> installed, as well
 as the <tt class="docutils literal">wheel</tt> package.</p>
 <p>First, download the lxml-x.y.tar.gz release.  This contains the pregenerated
@@ -295,7 +295,7 @@ directory</li>
 increase the debian version number so apt/dpkg won't get confused</li>
 <li>run <tt class="docutils literal"><span class="pre">dpkg-buildpackage</span> <span class="pre">-rfakeroot</span> <span class="pre">-us</span> <span class="pre">-uc</span></tt> to build the package</li>
 </ul>
-<p>In case <tt class="docutils literal"><span class="pre">dpkg-buildpackage</span></tt> tells you that some dependecies are missing, you
+<p>In case <tt class="docutils literal"><span class="pre">dpkg-buildpackage</span></tt> tells you that some dependencies are missing, you
 can either install them manually or run <tt class="docutils literal"><span class="pre">apt-get</span> <span class="pre">build-dep</span> lxml</tt>.</p>
 <p>That will give you .deb packages in the parent directory which can be
 installed using <tt class="docutils literal">dpkg <span class="pre">-i</span></tt>.</p>
@@ -303,7 +303,7 @@ installed using <tt class="docutils literal">dpkg <span class="pre">-i</span></t
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index b258b6d..1a9eb41 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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,
@@ -82,23 +82,23 @@ API, import the <tt class="docutils literal">lxml.etree</tt> module and then cal
 <div class="syntax"><pre><span class="cm">/* My C extension */</span>
 
 <span class="cm">/* common includes */</span>
-<span class="cp">#include "Python.h"</span>
-<span class="cp">#include "stdio.h"</span>
-<span class="cp">#include "string.h"</span>
-<span class="cp">#include "stdarg.h"</span>
-<span class="cp">#include "libxml/xmlversion.h"</span>
-<span class="cp">#include "libxml/encoding.h"</span>
-<span class="cp">#include "libxml/hash.h"</span>
-<span class="cp">#include "libxml/tree.h"</span>
-<span class="cp">#include "libxml/xmlIO.h"</span>
-<span class="cp">#include "libxml/xmlsave.h"</span>
-<span class="cp">#include "libxml/globals.h"</span>
-<span class="cp">#include "libxml/xmlstring.h"</span>
+<span class="cp">#include</span> <span class="cpf">"Python.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"stdio.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"string.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"stdarg.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/xmlversion.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/encoding.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/hash.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/tree.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/xmlIO.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/xmlsave.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/globals.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"libxml/xmlstring.h"</span><span class="cp"></span>
 
 <span class="cm">/* lxml.etree specific includes */</span>
-<span class="cp">#include "lxml-version.h"</span>
-<span class="cp">#include "etree_defs.h"</span>
-<span class="cp">#include "etree.h"</span>
+<span class="cp">#include</span> <span class="cpf">"lxml-version.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"etree_defs.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">"etree.h"</span><span class="cp"></span>
 
 <span class="cm">/* setup code */</span>
 <span class="n">import_lxml__etree</span><span class="p">()</span>
@@ -110,7 +110,7 @@ includes may not be sufficient.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
diff --git a/doc/html/changes-3.5.0.beta1.html b/doc/html/changes-3.5.0.beta1.html
deleted file mode 100644 (file)
index 0dea2bb..0000000
+++ /dev/null
@@ -1,3022 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
-<title>lxml changelog</title>
-<link rel="stylesheet" href="style.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="lxml-changelog">
-<h1 class="title">lxml changelog</h1>
-
-<div class="section" id="beta-1-2015">
-<h1>3.5.0 beta 1 (2015-??)</h1>
-<div class="section" id="features-added">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">top_nsmap</tt> that
-moves definitions of the provided prefix-namespace mapping to the
-top of the tree.</li>
-<li>API functions and methods behave and look more like Python functions,
-which allows introspection on them etc.  One side effect to be aware of
-is that the functions now bind as methods when assigned to a class
-variable.  A quick fix is to wrap them in <tt class="docutils literal">staticmethod()</tt> (as for
-normal Python functions).</li>
-<li>ISO-Schematron support gained an option <tt class="docutils literal">error_finder</tt> that allows
-passing a filter function for picking validation errors from reports.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1243600">LP#1243600</a>: Elements in <tt class="docutils literal">lxml.html</tt> gained a <tt class="docutils literal">classes</tt> property
-that provides a set-like interface to the <tt class="docutils literal">class</tt> attribute.
-Original patch by masklinn.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1341964">LP#1341964</a>: The soupparser now handles DOCTYPE declarations, comments
-and processing instructions outside of the root element.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421512">LP#1421512</a>: The <tt class="docutils literal">docinfo</tt> of a tree was made editable to allow
-setting and removing the public ID and system ID of the DOCTYPE.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1442427">LP#1442427</a>: More work-arounds for quirks and bugs in pypy and pypy3.</li>
-<li><tt class="docutils literal">lxml.html.soupparser</tt> now uses BeautifulSoup version 4 instead
-of version 3 if available.</li>
-</ul>
-</div>
-<div class="section" id="bugs-fixed">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory errors that occur during tree adaptations (e.g. moving subtrees
-to foreign documents) could leave the tree in a crash prone state.</li>
-<li>Calling <tt class="docutils literal">process_children()</tt> in an XSLT extension element without
-an <tt class="docutils literal">output_parent</tt> argument failed with a <tt class="docutils literal">TypeError</tt>.
-Fix by Jens Tröger.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/159">GH#159</a>: Validity checks for names and string content were tightened
-to detect the use of illegal characters early.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421921">LP#1421921</a>: Comments/PIs before the DOCTYPE declaration were not
-serialised.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/659367">LP#659367</a>: Some HTML DOCTYPE declarations were not serialised.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238503">LP#1238503</a>: lxml.doctestcompare is now consistent with stdlib's doctest
-in how it uses <tt class="docutils literal">+</tt> and <tt class="docutils literal">-</tt> to refer to unexpected and missing output.</li>
-<li>Empty prefixes are explicitly rejected when a namespace mapping is used
-with ElementPath to avoid hiding bugs in user code.</li>
-<li>Several problems with PyPy were fixed by switching to Cython 0.23.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id1">
-<h1>3.4.4 (2015-04-25)</h1>
-<div class="section" id="id2">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>An ElementTree compatibility test added in lxml 3.4.3 that failed in
-Python 3.4+ was removed again.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id3">
-<h1>3.4.3 (2015-04-15)</h1>
-<div class="section" id="id4">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Expression cache in ElementPath was ignored.  Fix by Changaco.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1426868">LP#1426868</a>: Passing a default namespace and a prefixed namespace mapping
-as nsmap into <tt class="docutils literal">xmlfile.element()</tt> raised a <tt class="docutils literal">TypeError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421927">LP#1421927</a>: DOCTYPE system URLs were incorrectly quoted when containing
-double quotes.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1419354">LP#1419354</a>: meta-redirect URLs were incorrectly processed by
-<tt class="docutils literal">iterlinks()</tt> if preceded by whitespace.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id5">
-<h1>3.4.2 (2015-02-07)</h1>
-<div class="section" id="id6">
-<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
-of an XML document.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1369362">LP#1369362</a>: HTML cleaning failed when hitting processing instructions
-with pseudo-attributes.</li>
-<li><tt class="docutils literal">CDATA()</tt> wrapped content was rejected for tail text.</li>
-<li>CDATA sections were not serialised as tail text of the top-level element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id7">
-<h1>3.4.1 (2014-11-20)</h1>
-<div class="section" id="id8">
-<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="id9">
-<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="id10">
-<h1>3.4.0 (2014-09-10)</h1>
-<div class="section" id="id11">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
-content after each API operation (starting/ending element blocks or writes).
-A new method <tt class="docutils literal">xf.flush()</tt> can alternatively be used to explicitly flush
-the output.</li>
-<li><tt class="docutils literal">lxml.html.document_fromstring</tt> has a new option <tt class="docutils literal">ensure_head_body=True</tt>
-which will add an empty head and/or body element to the result document if
-missing.</li>
-<li><tt class="docutils literal">lxml.html.iterlinks</tt> now returns links inside meta refresh tags.</li>
-<li>New <tt class="docutils literal">XMLParser</tt> option <tt class="docutils literal">collect_ids=False</tt> to disable ID hash table
-creation.  This can substantially speed up parsing of documents with many
-different IDs that are not used.</li>
-<li>The parser uses per-document hash tables for XML IDs.  This reduces the
-load of the global parser dict and speeds up parsing for documents with
-many different IDs.</li>
-<li><tt class="docutils literal">ElementTree.getelementpath(element)</tt> returns a structural ElementPath
-expression for the given element, which can be used for lookups later.</li>
-<li><tt class="docutils literal">xmlfile()</tt> accepts a new argument <tt class="docutils literal">close=True</tt> to close file(-like)
-objects after writing to them.  Before, <tt class="docutils literal">xmlfile()</tt> only closed the file
-if it had opened it internally.</li>
-<li>Allow &quot;bytearray&quot; type for ASCII text input.</li>
-</ul>
-</div>
-<div class="section" id="id12">
-<h2>Bugs fixed</h2>
-</div>
-<div class="section" id="other-changes">
-<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.
-Previously, they could lead to an internal tree representation in a mixed
-encoding state, which lead to very late errors or even silently incorrect
-behaviour during tree traversal or serialisation.</li>
-<li>Requires Python 2.6, 2.7, 3.2 or later. No longer supports
-Python 2.4, 2.5 and 3.1, use lxml 3.3.x for those.</li>
-<li>Requires libxml2 2.7.0 or later and libxslt 1.1.23 or later,
-use lxml 3.3.x with older versions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id13">
-<h1>3.3.6 (2014-08-28)</h1>
-<div class="section" id="id14">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Prevent tree cycle creation when adding Elements as siblings.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1361948">LP#1361948</a>: crash when deallocating Element siblings without parent.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1354652">LP#1354652</a>: crash when traversing internally loaded documents in XSLT
-extension functions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id15">
-<h1>3.3.5 (2014-04-18)</h1>
-<div class="section" id="id16">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning could fail to strip javascript links that mix control
-characters into the link scheme.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id17">
-<h1>3.3.4 (2014-04-03)</h1>
-<div class="section" id="id18">
-<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="id19">
-<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="id20">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id21">
-<h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id22">
-<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="id23">
-<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
-subclassed from Python code.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id24">
-<h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id25">
-<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
-<tt class="docutils literal">set_element_class_lookup()</tt> and <tt class="docutils literal">makeelement()</tt>, were lost from
-<tt class="docutils literal">iterparse</tt> objects in 3.3.0.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1222132">LP#1222132</a>: instances of <tt class="docutils literal">XMLSchema</tt>, <tt class="docutils literal">Schematron</tt> and <tt class="docutils literal">RelaxNG</tt>
-did not clear their local <tt class="docutils literal">error_log</tt> before running a validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238500">LP#1238500</a>: lxml.doctestcompare mixed up &quot;expected&quot; and &quot;actual&quot; in
-attribute values.</li>
-<li>Some file I/O tests were failing in MS-Windows due to non-portable temp
-file usage.  Initial patch by Gabi Davar.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/910014">LP#910014</a>: duplicate IDs in a document were not reported by DTD validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185332">LP#1185332</a>: <tt class="docutils literal"><span class="pre">tostring(method=&quot;html&quot;)</span></tt> did not use HTML serialisation
-semantics for trailing tail text.  Initial patch by Sylvain Viollon.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1281139">LP#1281139</a>: <tt class="docutils literal">.attrib</tt> value of Comments lost its mutation methods
-in 3.3.0.  Even though it is empty and immutable, it should still
-provide the same interface as that returned for Elements.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id26">
-<h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id27">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id28">
-<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
-elements during tag iteration.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1273709">LP#1273709</a>: Building in PyPy failed due to missing support for
-<tt class="docutils literal">PyUnicode_Compare()</tt> and <tt class="docutils literal"><span class="pre">PyByteArray_*()</span></tt> in PyPy's C-API.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274413">LP#1274413</a>: Compilation in MSVC failed due to missing &quot;stdint.h&quot; standard
-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="id29">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id30">
-<h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id31">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id32">
-<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="id33">
-<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="id34">
-<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="id35">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Several error handling problems were fixed throughout the code base that
-could previously lead to exceptions being silently swallowed or not
-properly reported.</li>
-<li>The C-API function <tt class="docutils literal">appendChild()</tt> is now deprecated as it does not
-propagate exceptions (its return type is <tt class="docutils literal">void</tt>).  The new function
-<tt class="docutils literal">appendChildToElement()</tt> was added as a safe replacement.</li>
-<li>Passing a string into <tt class="docutils literal">fromstringlist()</tt> raises an exception instead of
-parsing the string character by character.</li>
-</ul>
-</div>
-<div class="section" id="id36">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Document cleanup code was simplified using the new GC features in
-Cython 0.20.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2014-01-12">
-<h1>3.3.0beta4 (2014-01-12)</h1>
-<div class="section" id="id37">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id38">
-<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
-objects was mutable.</li>
-<li>Element class lookup wasn't available for the new pull parsers or when using
-a custom parser target.</li>
-<li>Setting Element attributes on instantiation with both the <tt class="docutils literal">attrib</tt> argument
-and keyword arguments could modify the mapping passed as <tt class="docutils literal">attrib</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1266171">LP#1266171</a>: DTDs instantiated from internal/external subsets (i.e. through
-the docinfo property) lost their attribute declarations.</li>
-</ul>
-</div>
-<div class="section" id="id39">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
-Python 3.4.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2014-01-02">
-<h1>3.3.0beta3 (2014-01-02)</h1>
-<div class="section" id="id40">
-<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="id41">
-<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="id42">
-<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="id43">
-<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="id44">
-<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="id45">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The safety check in the read-only tree implementation (e.g. used by
-<tt class="docutils literal">PythonElementClassLookup</tt>) raises a more appropriate <tt class="docutils literal">ReferenceError</tt>
-for illegal access after tree disposal instead of an <tt class="docutils literal">AssertionError</tt>.
-This should only impact test code that specifically checks the original
-behaviour.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2013-12-12">
-<h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id46">
-<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
-<tt class="docutils literal">resolve_base_href()</tt> (lxml.html) that enables ignoring or
-discarding links that fail to parse as URLs.</li>
-<li>New parser classes <tt class="docutils literal">XMLPullParser</tt> and <tt class="docutils literal">HTMLPullParser</tt> for
-incremental parsing, as implemented for ElementTree in Python 3.4.</li>
-<li><tt class="docutils literal">iterparse()</tt> enables recovery mode by default for HTML parsing
-(<tt class="docutils literal">html=True</tt>).</li>
-</ul>
-</div>
-<div class="section" id="id47">
-<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.
-comment or PI).</li>
-<li>Error messages in the log and in exception messages that originated
-from libxml2 could accidentally be picked up from preceding warnings
-instead of the actual error.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify did not accept a dict as
-argument for adding attributes to the element it's building. This
-works as in lxml.builder now.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants, instead of running into an infinite
-loop.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-<li>lxml.html.formfill: Fix textarea form filling.
-The textarea used to be cleared before the new content was set,
-which removed the name attribute.</li>
-</ul>
-</div>
-<div class="section" id="id48">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some basic API classes use freelists internally for faster
-instantiation.  This can speed up some <tt class="docutils literal">iterparse()</tt> scenarios,
-for example.</li>
-<li><tt class="docutils literal">iterparse()</tt> was rewritten to use the new <tt class="docutils literal">*PullParser</tt>
-classes internally instead of being a parser itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id49">
-<h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id50">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id51">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
-<li>Crash in target parsing with attributes.</li>
-<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.
-comment or PI).</li>
-</ul>
-</div>
-<div class="section" id="id53">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id54">
-<h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id55">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id56">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak when creating an XPath evaluator in a thread.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-</ul>
-</div>
-<div class="section" id="id59">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id60">
-<h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id61">
-<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="id62">
-<h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id63">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id64">
-<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="id65">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Return values of user provided element class lookup methods are now
-validated against the type of the XML node they represent to prevent
-API class mismatches.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id66">
-<h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id67">
-<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
-extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
-and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
-strings from the result list.</li>
-</ul>
-</div>
-<div class="section" id="id68">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When moving Elements to another tree, the namespace cleanup mechanism
-no longer drops namespace prefixes from attributes for which it finds
-a default namespace declaration, to prevent them from appearing as
-unnamespaced attributes after serialisation.</li>
-<li>Returning non-type objects from a custom class lookup method could lead
-to a crash.</li>
-<li>Instantiating and using subtypes of Comments and ProcessingInstructions
-crashed.</li>
-</ul>
-</div>
-<div class="section" id="id69">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id70">
-<h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id71">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id72">
-<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
-parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
-in the face of uncommon HTML content like framesets or missing body tags.
-Patch by Stefan Seelmann.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
-non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
-reporting the <tt class="docutils literal">IOError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
-default parser and made subsequent attempts to parse from a URL fail.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-of overwriting the current value.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
-allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
-</ul>
-</div>
-<div class="section" id="id73">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id74">
-<h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id75">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id76">
-<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
-the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
-with a <tt class="docutils literal">TypeError</tt>.  Patch by Mike Bayer.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
-the result tree to a Unicode string.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
-by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id77">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id78">
-<h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id79">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id80">
-<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
-an AttributeError in Py3.</li>
-<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
-</ul>
-</div>
-<div class="section" id="id81">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
-from the module dict.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id82">
-<h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id83">
-<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="id84">
-<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
-a copy of the attributes as a plain Python dict.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the  <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
-always used the first namespace mapping that was provided for each
-path expression instead of using the one that was actually passed
-in for the current run.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
-without threading support.  Patch by Ulrich Seidl.</li>
-</ul>
-</div>
-<div class="section" id="id85">
-<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="id86">
-<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
-makes the API always return Unicode strings for names and text
-instead of byte strings for plain ASCII content.</li>
-<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
-<li>E factory in lxml.objectify is callable to simplify the creation of
-tags with non-identifier names without having to resort to getattr().</li>
-</ul>
-</div>
-<div class="section" id="id87">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When starting from a non-namespaced element in lxml.objectify, searching
-for a child without explicitly specifying a namespace incorrectly found
-namespaced elements with the requested local name, instead of restricting
-the search to non-namespaced children.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</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="id88">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
-removed from the module API of lxml.objectify.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
-many children.  Patch by Anders Hammarquist.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id89">
-<h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id90">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id91">
-<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="id92">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id93">
-<h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id94">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id95">
-<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
-in PyPy without proper cleanup.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</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="id96">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id97">
-<h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id98">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id99">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>End-of-file handling was incorrect in iterparse() when reading from
-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="id100">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The build no longer uses Cython by default unless the generated C files
-are missing.  To use Cython, pass the option &quot;--with-cython&quot;.  To ignore
-the fatal build error when Cython is required but not available (e.g. to
-run special setup.py commands that do not actually run a build), pass
-&quot;--without-cython&quot;.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2012-09-26">
-<h1>3.0beta1 (2012-09-26)</h1>
-<div class="section" id="id101">
-<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="id102">
-<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="id103">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha2-2012-08-23">
-<h1>3.0alpha2 (2012-08-23)</h1>
-<div class="section" id="id104">
-<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
-<tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt> to search for elements with a given local name in any
-namespace. With this addition, all combinations of wildcards now work
-as expected:
-<tt class="docutils literal">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
-and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
-but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.
-The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
-<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
-and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
-<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
-<tt class="docutils literal">iterparse()</tt> class.  Patch by Simon Sapin.</li>
-<li>C14N allows specifying the inclusive prefixes to be promoted
-to top-level during exclusive serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id105">
-<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="id106">
-<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="id107">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Initial support for building in PyPy (through cpyext).</li>
-<li>DTD objects gained an API that allows read access to their
-declarations.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
-from grep output) and for surrounding the output with a new root
-tag.</li>
-<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
-types (such as string subtypes) when building elements around them.</li>
-<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
-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="id108">
-<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
-internally, which makes them faster in many cases (especially when
-short circuiting after a single or couple of elements) and fixes
-some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>.  Note that
-this means that they no longer support arbitrary XPath expressions
-but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
-The previous implementation was also redundant with the normal
-XPath support, which can be used as a replacement.</li>
-<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
-instruction that happened to be in the wrong spot.  (Same for the
-other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
-<li>The error logging is less intrusive and avoids a global setup where
-possible.</li>
-<li>Fixed undefined names in html5lib parser.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
-<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
-another Element as parameter.</li>
-<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
-properties immutable (as in objectify, for example), inserting text
-when creating Elements through the E-Factory feature of the class
-constructor would fail with an exception, stating that the text
-cannot be modified.</li>
-</ul>
-</div>
-<div class="section" id="id109">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code base was overhauled to properly use 'const' where the API
-of libxml2 and libxslt requests it.  This also has an impact on the
-public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
-well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
-Code that uses these declarations may have to be adapted.  On the
-plus side, this fixes several C compiler warnings, also for user
-code, thus making it easier to spot real problems again.</li>
-<li>The functionality of &quot;lxml.cssselect&quot; was moved into a separate PyPI
-package called &quot;cssselect&quot;.  To continue using it, you must install
-that package separately.  The &quot;lxml.cssselect&quot; module is still
-available and provides the same interface, provided the &quot;cssselect&quot;
-package can be imported at runtime.</li>
-<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
-arguments are now sorted by (namespaced) name before being created
-to make their order predictable for serialisation and iteration.
-Note that adding or deleting attributes afterwards does not take
-that order into account, i.e. setting a new attribute appends it
-after the existing ones.</li>
-<li>Several classes that are for internal use only were removed
-from the <tt class="docutils literal">lxml.etree</tt> module dict:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
-_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
-__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
-_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
-_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
-_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
-_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
-_ParserSchemaValidationContext, _XPathContext,
-_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
-<li>Several internal classes can no longer be inherited from:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
-_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
-_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
-_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
-_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id110">
-<h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id111">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id112">
-<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="id113">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id114">
-<h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id115">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id116">
-<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="id117">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id118">
-<h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id119">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id120">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when building an nsmap (Element property) with empty
-namespace URIs.</li>
-<li>Crash due to race condition when errors (or user messages) occur
-during threaded XSLT processing.</li>
-<li>XSLT stylesheet compilation could ignore compilation errors.</li>
-</ul>
-</div>
-<div class="section" id="id121">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id122">
-<h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id123">
-<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="id124">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
-requesting start events.</li>
-<li>Fixed parsing of more selectors in cssselect.  Whitespace before
-pseudo-elements and pseudo-classes is significant as it is a
-descendant combinator.
-&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
-Patch by Simon Sapin.</li>
-<li>lxml.html.diff no longer raises an exception when hitting
-'img' tags without 'src' attribute.</li>
-</ul>
-</div>
-<div class="section" id="id125">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id126">
-<h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id127">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
-<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
-declarations (and generally clean up the namespace declarations)
-after removing the type annotations.</li>
-<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
-copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
-of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
-</ul>
-</div>
-<div class="section" id="id128">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
-fix in lxml 2.3.1).  The previous change resulted in a serious
-performance regression for the XPath based evaluation of the
-translated expression.  Note that this breaks the usage of some of
-the generated XPath expressions as XSLT location paths that
-previously worked in 2.3.1.</li>
-<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
-&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
-a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
-&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
-</ul>
-</div>
-<div class="section" id="id129">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id130">
-<h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id131">
-<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
-tags and their content (i.e. their whole subtree).</li>
-<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
-pseudo-attributes from the text content of processing instructions.</li>
-<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
-used to compile external C code against lxml.etree.  This is
-specifically required for statically linked lxml builds when code
-needs to compile against the exact same header file versions as lxml
-itself.</li>
-<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
-<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
-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="id132">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning didn't remove 'data:' links.</li>
-<li>The html5lib parser integration now uses the 'official'
-implementation in html5lib itself, which makes it work with newer
-releases of the library.</li>
-<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
-tag name when the corresponding start event inferred the same plain
-tag name to be in the default namespace.</li>
-<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
-<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use.  This
-reverts a change in lxml 2.3 where all files would be closed.  It is
-the users responsibility to properly close the file(-like) object,
-also in error cases.</li>
-<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
-<li>In lxml.cssselect, use the xpath 'A//B' (short for
-'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
-the css descendant selector ('A B').  This makes a few edge cases
-like <tt class="docutils literal">&quot;div <span class="pre">*:last-child&quot;</span></tt> consistent with the selector behavior in
-WebKit and Firefox, and makes more css expressions valid location
-paths (for use in xsl:template match).</li>
-<li>In lxml.html, non-selected <tt class="docutils literal">&lt;option&gt;</tt> tags no longer show up in the
-collected form values.</li>
-<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</tt> values to/from a multiple select form
-field properly selects them and unselects them.</li>
-</ul>
-</div>
-<div class="section" id="id133">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Static builds can specify the download directory with the
-<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id134">
-<h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id135">
-<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="id136">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When finished reading from a file-like object, the parser
-immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
-<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
-file.</li>
-<li>Work-around for libxml2 bug that can leave the HTML parser in a
-non-functional state after parsing a severly broken document (fixed
-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="id137">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some public functions in the Cython-level C-API have more explicit
-return types.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2010-09-06">
-<h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id138">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id139">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
-<tt class="docutils literal">base_url</tt> parameters.</li>
-<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
-<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
-use of os.tempnam.  It now takes an optional 'encoding' parameter.</li>
-</ul>
-</div>
-<div class="section" id="id140">
-<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="id141">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id142">
-<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="id143">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
-(following ElementTree 1.3).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2010-06-19">
-<h1>2.3alpha1 (2010-06-19)</h1>
-<div class="section" id="id144">
-<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>
-to pass a prefix-to-namespace mapping for the selector.</li>
-<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
-globally registers a namespace prefix for a namespace that newly
-created Elements in that namespace will use automatically.  Follows
-ElementTree 1.3.</li>
-<li>Support 'unicode' string name as encoding parameter in
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
-match the upcoming ElementTree 1.3 that will ship in the standard
-library of Python 3.2/2.7.  This includes extended support for
-predicates as well as namespace prefixes (as known from XPath).</li>
-<li>During regular XPath evaluation, various ESXLT functions are
-available within their namespace when using libxslt 1.1.26 or later.</li>
-<li>Support passing a readily configured logger instance into
-<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
-<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
-override the DOCTYPE (internal subset) of the document.</li>
-<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
-to append the resulting content directly to an output element.</li>
-<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
-XSLT extension element itself.</li>
-<li>ISO-Schematron support based on the de-facto Schematron reference
-'skeleton implementation'.</li>
-<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
-parameters.</li>
-<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
-overhead.</li>
-<li>Setting the value of a namespaced attribute always uses a prefixed
-namespace instead of the default namespace even if both declare the
-same namespace URI.  This avoids serialisation problems when an
-attribute from a default namespace is set on an element from a
-different namespace.</li>
-<li>XSLT extension elements: support for XSLT context nodes other than
-elements: document root, comments, processing instructions.</li>
-<li>Support for strings (in addition to Elements) in node-sets returned
-by extension functions.</li>
-<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
-the document on submit.</li>
-<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
-<li>Namespace URIs get validated against RFC 3986 at the API level
-(required by the XML namespace specification).</li>
-<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
-(compatible with ElementTree).</li>
-</ul>
-</div>
-<div class="section" id="id145">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>API is hardened against invalid proxy instances to prevent crashes
-due to incorrectly instantiated Element instances.</li>
-<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
-<li>Export ElementTree compatible XML parser class as
-<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
-<li>ObjectifiedDataElements in lxml.objectify were not hashable.  They
-now use the hash value of the underlying Python value (string,
-number, etc.) to which they compare equal.</li>
-<li>Parsing broken fragments in lxml.html could fail if the fragment
-contained an orphaned closing '&lt;/div&gt;' tag.</li>
-<li>Using XSLT extension elements around the root of the output document
-crashed.</li>
-<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr=&quot;val&quot;]</span></tt> and
-<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</span></tt> (with a space).  The latter now matches the
-attribute independent of the element.</li>
-<li>Rewriting multiple links inside of HTML text content could end up
-replacing unrelated content as replacements could impact the
-reported position of subsequent matches.  Modifications are now
-simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
-return links in reversed order if they appear inside the same text
-node.  Thus, replacements and link-internal modifications no longer
-change the position of links reported afterwards.</li>
-<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
-not represent the complete raw value (including child tags etc.). It
-now serialises the complete content on read and replaces the
-complete content by a string on write.</li>
-<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
-parsing failed.  Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
-called after parsing, regardless of the outcome.</li>
-</ul>
-</div>
-<div class="section" id="id146">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.1.2 and later.</li>
-<li>Static MS Windows builds can now download their dependencies
-themselves.</li>
-<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
-Element object.  It therefore no longer requires the garbage
-collector to clean up.</li>
-<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id147">
-<h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id148">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li>Import fix for urljoin in Python 3.1+.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id149">
-<h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id150">
-<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>
-<div class="section" id="id151">
-<h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id152">
-<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="id153">
-<h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id154">
-<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="id155">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XPath evaluation when reading smart strings from a document
-other than the original context document.</li>
-<li>Support recent versions of html5lib by not requiring its
-<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
-<li>Manually instantiating the custom element classes in
-<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
-<li>Invalid XML text characters were not rejected by the API when they
-appeared in unicode strings directly after non-ASCII characters.</li>
-<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
-<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
-<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
-<li>Crash in XSLT extension elements when the XSLT context node is not
-an element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id156">
-<h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id157">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Static build of libxml2/libxslt was broken.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id158">
-<h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id159">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id160">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
-parser.</li>
-<li>Looking up and deleting attributes without a namespace could hit a
-namespaced attribute of the same name instead.</li>
-<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
-ones) could leave a partially initialised element in the tree.</li>
-<li>Modifying trees that contain parsed entity references could result
-in an infinite loop.</li>
-<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
-attribute value was rejected as a non-unicode/non-ascii string</li>
-<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
-messages.</li>
-<li>Invalid syntax in CSS expressions could lead to an infinite loop in
-the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS special character escapes were not properly handled in
-<tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
-attribute were not handled correctly.  The HTML standard dictates
-that their value is defined by their text content.  This is now
-supported by lxml.html.</li>
-<li>XPath raised a TypeError when finding CDATA sections.  This is now
-fully supported.</li>
-<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
-namespaces when annotation is disabled.</li>
-<li>Feed parser failed to honout the 'recover' option on parse errors.</li>
-<li>Diverting the error logging to Python's logging system was broken.</li>
-</ul>
-</div>
-<div class="section" id="id161">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id162">
-<h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id163">
-<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>,
-<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
-from a subtree.</li>
-</ul>
-</div>
-<div class="section" id="id164">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Namespace cleanup on subtree insertions could result in missing
-namespace declarations (and potentially crashes) if the element
-defining a namespace was deleted and the namespace was not used by
-the top element of the inserted subtree but only in deeper subtrees.</li>
-<li>Raising an exception from a parser target callback didn't always
-terminate the parser.</li>
-<li>Only {true, false, 1, 0} are accepted as the lexical representation for
-BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
-behaviour.</li>
-</ul>
-</div>
-<div class="section" id="id165">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id166">
-<h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id167">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Injecting default attributes into a document during XML Schema
-validation (also at parse time).</li>
-<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
-restrictions imposed by libxml2 2.7.</li>
-</ul>
-</div>
-<div class="section" id="id168">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The script for statically building libxml2 and libxslt didn't work
-in Py3.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
-for parsing (which could lead to a crash before release 2.6.24).</li>
-</ul>
-</div>
-<div class="section" id="id169">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id170">
-<h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id171">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
-<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
-on serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id172">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing an XML Schema with external imports from a
-filename.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2009-02-27">
-<h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id173">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support strings and instantiable Element classes as child arguments
-to the constructor of custom Element classes.</li>
-<li>GZip compression support for serialisation to files and file-like
-objects.</li>
-</ul>
-</div>
-<div class="section" id="id174">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Deep-copying an ElementTree copied neither its sibling PIs and
-comments nor its internal/external DTD subsets.</li>
-<li>Soupparser failed on broken attributes without values.</li>
-<li>Crash in XSLT when overwriting an already defined attribute using
-<tt class="docutils literal">xsl:attribute</tt>.</li>
-<li>Crash bug in exception handling code under Python 3.  This was due
-to a problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
-<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
-was evaluated incorrectly.</li>
-</ul>
-</div>
-<div class="section" id="id175">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.0.1.</li>
-<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
-for Elements without text content.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2009-02-17">
-<h1>2.2beta3 (2009-02-17)</h1>
-<div class="section" id="id176">
-<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="id177">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in XPath evaluators.</li>
-<li>Crash when parsing indented XML in one thread and merging it with
-other documents parsed in another thread.</li>
-<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
-string failed.</li>
-<li>Fixes following changes in Python 3.0.1.</li>
-<li>Minor fixes for Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id178">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The global error log (which is copied into the exception log) is now
-local to a thread, which fixes some race conditions.</li>
-<li>More robust error handling on serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2009-01-25">
-<h1>2.2beta2 (2009-01-25)</h1>
-<div class="section" id="id179">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
-<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url(&quot;link&quot;)</span></tt> incorrectly
-(treating the quotation marks as part of the link).</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id180">
-<h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id181">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2008-12-12">
-<h1>2.2beta1 (2008-12-12)</h1>
-<div class="section" id="id182">
-<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="id183">
-<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="id184">
-<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="id185">
-<h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id186">
-<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="id187">
-<h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id188">
-<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="alpha1-2008-11-23">
-<h1>2.2alpha1 (2008-11-23)</h1>
-<div class="section" id="id189">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for XSLT result tree fragments in XPath/XSLT extension
-functions.</li>
-<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
-<li>New options for exclusive C14N and C14N without comments.</li>
-<li>Instantiating a custom Element classes creates a new Element.</li>
-</ul>
-</div>
-<div class="section" id="id190">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>XSLT didn't inherit the parse options of the input document.</li>
-<li>0-bytes could slip through the API when used inside of Unicode
-strings.</li>
-<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
-that end in a parenthesis, will be linked in their entirety (typical
-with Wikipedia links).</li>
-</ul>
-</div>
-<div class="section" id="id191">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id192">
-<h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id193">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id194">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-<li>Parser Unicode decoding errors could get swallowed by other
-exceptions.</li>
-<li>Name/import errors in some Python modules.</li>
-<li>Internal DTD subsets that did not specify a system or public ID were
-not serialised and did not appear in the docinfo property of
-ElementTrees.</li>
-<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
-<li>Test suite fixes for libxml2 2.7.</li>
-<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
-<li>Resolver.resolve_file() was broken.</li>
-<li>Overriding the parser encoding didn't work for many encodings.</li>
-</ul>
-</div>
-<div class="section" id="id195">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id196">
-<h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id197">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id198">
-<h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id199">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.etree now tries to find the absolute path name of files when
-parsing from a file-like object.  This helps custom resolvers when
-resolving relative URLs, as lixbml2 can prepend them with the path
-of the source document.</li>
-</ul>
-</div>
-<div class="section" id="id200">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-<div class="section" id="id201">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id202">
-<h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id203">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id204">
-<h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id205">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id206">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>Encoding problem when including text with ElementInclude under
-Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id207">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id208">
-<h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id209">
-<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="id210">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id211">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id212">
-<h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id213">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
-keyword option).</li>
-<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="id214">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Custom resolvers were not used for XMLSchema includes/imports and
-XInclude processing.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id215">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
-<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
-<li>Speed-up when running XSLTs on documents from other threads</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id216">
-<h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id217">
-<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="id218">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Descending dot-separated classes in CSS selectors were not resolved
-correctly.</li>
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Potential threading problem in XInclude.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-</ul>
-</div>
-<div class="section" id="id219">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2008-06-19">
-<h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id220">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-<li>Support for parsing from file-like objects that return unicode
-strings.</li>
-<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
-namespace declarations from a (sub)tree (experimental).</li>
-<li>XSLT results support the buffer protocol in Python 3.</li>
-<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
-a parsable string will return either a UTF-8 encoded byte string, a
-unicode string or a tree, based on the type of the input.
-Previously, the result was always a byte string or a tree.</li>
-<li>Support for Python 2.6 and 3.0 beta.</li>
-<li>File name handling now uses a heuristic to convert between byte
-strings (usually filenames) and unicode strings (usually URLs).</li>
-<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
-<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
-on reading under Python 2.x.</li>
-<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
-lxml.html (experimental).</li>
-<li>Most features in lxml.html work for XHTML namespaced tag names
-(experimental).</li>
-</ul>
-</div>
-<div class="section" id="id221">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-<li>A number of problems related to unicode/byte string conversion of
-filenames and error messages were fixed.</li>
-<li>Building on MacOS-X now passes the &quot;flat_namespace&quot; option to the C
-compiler, which reportedly prevents build quirks and crashes on this
-platform.</li>
-<li>Windows build was broken.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id222">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
-namespaces, etc. will result in a ValueError instead of an
-AssertionError (just like the tag well-formedness check).</li>
-<li>Up to several times faster attribute access (i.e. tree traversal) in
-lxml.objectify.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id223">
-<h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id224">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id225">
-<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>
-<li>Windows build was broken.</li>
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-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="id226">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml should now build without problems on MacOS-X.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2008-05-02">
-<h1>2.1beta2 (2008-05-02)</h1>
-<div class="section" id="id227">
-<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>
-<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
-attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
-pre-configured for the lxml.html package.</li>
-</ul>
-</div>
-<div class="section" id="id228">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Passing an nsmap when creating an Element will no longer strip
-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="id229">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>If the default namespace is redundantly defined with a prefix on the
-same Element, the prefix will now be preferred for subelements and
-attributes.  This allows users to work around a problem in libxml2
-where attributes from the default namespace could serialise without
-a prefix even when they appear on an Element with a different
-namespace (i.e. they would end up in the wrong namespace).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id230">
-<h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id231">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id232">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-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="id233">
-<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="id234">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
-<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
-sections.  Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
-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="id235">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
-<li>lxml.etree accepted non well-formed namespace prefix names.</li>
-</ul>
-</div>
-<div class="section" id="id236">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
-takes care of namespace cleanup when moving elements between
-different namespace contexts.</li>
-<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
-parser or through lxml.html now end up in a new HTML document
-(doctype HTML 4.01 Transitional) instead of a generic XML document.
-This mostly impacts the serialisation and the availability of a DTD
-context.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id237">
-<h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id238">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id239">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Hanging thread in conjunction with GTK threading.</li>
-<li>Crash bug in iterparse when moving elements into other documents.</li>
-<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</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="id240">
-<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="id241">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
-<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
-returns a dict of access configuration options.</li>
-<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
-<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
-<li>Extension elements for XSLT (experimental!)</li>
-<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
-an Element.</li>
-<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
-</ul>
-</div>
-<div class="section" id="id242">
-<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="id243">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Minor API speed-ups.</li>
-<li>The benchmark suite now uses tail text in the trees, which makes the
-absolute numbers incomparable to previous results.</li>
-<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
-used to enable syntax highlighting for the doctest examples.</li>
-</ul>
-<p>Most long-time deprecated functions and methods were removed:</p>
-<ul>
-<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
-<tt class="docutils literal">etree.use_global_python_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
-<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
-<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
-<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
-yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
-instead.</p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
-<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
-<tt class="docutils literal">objectify.set_default_parser()</tt></p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id244">
-<h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id245">
-<h2>Features added</h2>
-<ul class="simple">
-<li>soupparser.parse() allows passing keyword arguments on to
-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="id246">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
-<tt class="docutils literal">&lt;br&gt;</tt>).</li>
-<li>Handle entity replacements correctly in target parser.</li>
-<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
-<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
-which made them turn up in text content.</li>
-<li>Attribute assignment of custom PyTypes in objectify could fail to
-correctly serialise the value to a string.</li>
-</ul>
-</div>
-<div class="section" id="id247">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
-<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API.  The old module
-remains for compatibility with ElementTree's own ElementSoup module.</li>
-<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
-build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
-<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
-compiler options.  The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
-option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id248">
-<h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id249">
-<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="id250">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The prefix for objectify's pytype namespace was missing from the set
-of default prefixes.</li>
-<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
-<li>Error type names in RelaxNG were reported incorrectly.</li>
-<li>Slice deletion bug fixed in objectify.</li>
-</ul>
-</div>
-<div class="section" id="id251">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
-<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
-(<tt class="docutils literal"><span class="pre">method=&quot;xml&quot;</span></tt> for XHTML output).</li>
-<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
-<tt class="docutils literal">base_url</tt> argument.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id252">
-<h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id253">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
-<li>Loads of new docstrings reflect the signature of functions and
-methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
-</ul>
-</div>
-<div class="section" id="id254">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
-<tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
-was an unnamed input field.  Now unnamed input fields are completely
-ignored.</li>
-<li>Setting an element slice in objectify could insert slice-overlapping
-elements at the wrong position.</li>
-</ul>
-</div>
-<div class="section" id="id255">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The generated API documentation was cleaned up and disburdened from
-non-public classes etc.</li>
-<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
-<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml.  If
-you want to use it, feel free to copy it over to your own source
-base.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
-compiler options.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id256">
-<h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id257">
-<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
-serialise to unicode.  The <tt class="docutils literal">tounicode()</tt> function is now
-deprecated.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
-<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
-parser with the usual objectify setup.</li>
-<li>Plain ASCII XPath string results are no longer forced into unicode
-objects as in 2.0beta1, but are returned as plain strings as before.</li>
-<li>All XPath string results are 'smart' objects that have a
-<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
-<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
-<li>More accurate exception messages in validator creation.</li>
-<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
-<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
-selection make their Element container accessible through a
-<tt class="docutils literal">getparent()</tt> method.  As a side-effect, they are now always
-unicode objects (even ASCII strings).</li>
-<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
-copy if they were not created in that thread.</li>
-<li>Invalid entity names and character references will be rejected by
-the <tt class="docutils literal">Entity()</tt> factory.</li>
-<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
-e.g. <tt class="docutils literal">&amp;amp;</tt>.</li>
-<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
-in ET 1.3)</li>
-<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
-<li>ElementTree compatible TreeBuilder class.</li>
-<li>Use default prefixes for some common XML namespaces.</li>
-<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
-two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
-more general <tt class="docutils literal">allow_element(el)</tt>.</li>
-<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
-etree and in objectify</li>
-<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
-resolving a document as string data.</li>
-<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
-<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
-the special checking for one test.</li>
-<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
-The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
-<tt class="docutils literal">error_log</tt>.</li>
-<li>The normal parsers and the feed parser interface are now separated
-and can be used concurrently on the same parser instance.</li>
-<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
-ElementTree 1.3</li>
-<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
-parsing with the HTML parser (note that this interface may be
-subject to change)</li>
-<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
-of the parsed documents.</li>
-<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
-<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
-types in one step.  Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
-<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
-argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
-serialise as XML, HTML or plain text content.</li>
-<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
-<tt class="docutils literal">findall()</tt></li>
-<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
-<li>Setting a QName object as value of the .text property or as an attribute
-will resolve its prefix in the respective context</li>
-<li>ElementTree-like parser target interface as described in
-<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
-<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
-(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
-<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
-integration with objectify.  Provides extended type support based on
-registered PyTypes.</li>
-<li>XSLT objects now support deep copying</li>
-<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
-subelement straight with text, tail and attributes.</li>
-<li>XPath extension functions can now access the current context node
-(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
-(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
-parameter</li>
-<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
-<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
-doctests based on XML/HTML output.  Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
-<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
-<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
-selectors.</li>
-<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
-treatment.</li>
-<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
-instance and no longer global.</li>
-<li>Schematron validation (incomplete in libxml2)</li>
-<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
-conversion function to strings to support setting text values from arbitrary
-types.</li>
-<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes.  XML
-parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
-False to keep entities in the document.</li>
-<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
-<li>Error specific messages in XPath parsing and evaluation
-NOTE: for evaluation errors, you will now get an XPathEvalError instead of
-an XPathSyntaxError.  To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
-<li>The regular expression functions in XPath now support passing a node-set
-instead of a string</li>
-<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
-<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
-</ul>
-</div>
-<div class="section" id="id258">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
-<li>Some Python 2.4-isms prevented lxml from building/running under
-Python 2.3.</li>
-<li>XPath on ElementTrees could crash when selecting the virtual root
-node of the ElementTree.</li>
-<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
-<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
-<li>Minor bugs in XSLT error message formatting.</li>
-<li>Result document memory leak in target parser.</li>
-<li>Target parser failed to report comments.</li>
-<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal">&lt;object&gt;</tt>
-tags weren't recognized.  (Note: plugin-specific link parameters
-still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</tt> tag, though not
-standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
-<li>Using custom resolvers on XSLT stylesheets parsed from a string
-could request ill-formed URLs.</li>
-<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</span></tt> in your
-output, it will then be namespace-neutral (before the ellipsis was
-treated as a real namespace).</li>
-<li>AttributeError in feed parser on parse errors</li>
-<li>XML feed parser setup problem</li>
-<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
-<li>lxml failed to serialise namespace declarations of elements other than the
-root node of a tree</li>
-<li>Race condition in XSLT where the resolver context leaked between concurrent
-XSLT calls</li>
-<li>lxml.etree did not check tag/attribute names</li>
-<li>The XML parser did not report undefined entities as error</li>
-<li>The text in exceptions raised by XML parsers, validators and XPath
-evaluators now reports the first error that occurred instead of the last</li>
-<li>Passing '' as XPath namespace prefix did not raise an error</li>
-<li>Thread safety in XPath evaluators</li>
-</ul>
-</div>
-<div class="section" id="id259">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Exceptions carry only the part of the error log that is related to
-the operation that caused the error.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
-file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
-<li>The test suite now skips most doctests under Python 2.3.</li>
-<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
-realclean</tt> instead)</li>
-<li>Minor performance tweaks for Element instantiation and subelement
-creation</li>
-<li>Various places in the XPath, XSLT and iteration APIs now require
-keyword-only arguments.</li>
-<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
-match the order used in all other iteration methods.  The second
-argument ('preceding') is now a keyword-only argument.</li>
-<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
-reverted to return an iterator as it did in lxml 1.x.  The ET API
-specification allows it to return either a sequence or an iterator,
-and it traditionally returned a sequence in ET and an iterator in
-lxml.  However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
-method, which should be used in new code wherever possible.</li>
-<li>The 'pretty printed' serialisation of ElementTree objects now
-inserts newlines at the root level between processing instructions,
-comments and the root tag.</li>
-<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
-<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
-required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
-<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
-<li>The module source files were renamed to &quot;lxml.*.pyx&quot;, such as
-&quot;lxml.etree.pyx&quot;.  This was changed for consistency with the way
-Pyrex commonly handles package imports.  The main effect is that
-classes now know about their fully qualified class name, including
-the package name of their module.</li>
-<li>Keyword-only arguments in some API functions, especially in the
-parsers and serialisers.</li>
-<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
-between HTML tags and XML tags based on the parser that was used to
-parse or create them.  HTML tags no longer reject any non-ASCII
-characters in tag names but only spaces and the special characters
-<tt class="docutils literal"><span class="pre">&lt;&gt;&amp;/&quot;'</span></tt>.</li>
-<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
-(which can crash on certain XPath errors)</li>
-<li>Type annotation in objectify now preserves the already annotated type by
-default to prevent loosing type information that is already there.</li>
-<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
-an iterator (ElementTree 1.3 compatible behaviour)</li>
-<li>objectify.PyType for None is now called &quot;NoneType&quot;</li>
-<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
-original name is still available as alias</li>
-<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
-generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
-<li>Major refactoring in XPath/XSLT extension function code</li>
-<li>Network access in parsers disabled by default</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id260">
-<h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id261">
-<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="id262">
-<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>
-methods.  While this makes them take a lot longer to run, it also
-makes it easier to link a specific test to garbage collection
-problems that would otherwise appear in later tests.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id263">
-<h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id264">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id265">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.etree could crash when adding more than 10000 namespaces to a
-document</li>
-<li>lxml failed to serialise namespace declarations of elements other
-than the root node of a tree</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id266">
-<h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id267">
-<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
-<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
-creates.</li>
-<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
-and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
-subset of the document respectively.</li>
-<li>Serialising an ElementTree now includes any internal DTD subsets that are
-part of the document, as well as comments and PIs that are siblings of the
-root node.</li>
-</ul>
-</div>
-<div class="section" id="id268">
-<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="id269">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
-an Error as 1.3.3 did.  The reason is that a number of projects currently
-misuse the previous lack of tag name validation to generate namespace
-prefixes without declaring namespaces.  Apart from the danger of generating
-broken XML this way, it also breaks most of the namespace-aware tools in
-XML, including XPath, XSLT and validation.  lxml 1.3.x will continue to
-support this bug with a Warning, while lxml 2.0 will be strict about
-well-formed tag names (not only regarding ':').</li>
-<li>Serialising an Element no longer includes its comment and PI siblings (only
-ElementTree serialisation includes them).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id270">
-<h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id271">
-<h2>Features added</h2>
-<ul class="simple">
-<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
-instructions and comments while parsing XML</li>
-<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
-<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
-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="id272">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing from Python Unicode strings failed on some platforms</li>
-<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id273">
-<h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id274">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id275">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>&quot;deallocating None&quot; crash bug</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id276">
-<h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id277">
-<h2>Features added</h2>
-<ul class="simple">
-<li>objectify.DataElement now supports setting values from existing data
-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="id278">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Better way to prevent crashes in Element proxy cleanup code</li>
-<li>objectify.DataElement didn't set up None value correctly</li>
-<li>objectify.DataElement didn't check the value against the provided type hints</li>
-<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id279">
-<h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id280">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
-scheme that can access the entire tree in read-only mode to help determining
-a suitable Element class</li>
-<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
-<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
-<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
-adding processing instructions and comments around the root node</li>
-<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
-<li>Extended type annotation in objectify: cleaner annotation namespace setup
-plus new <tt class="docutils literal">deannotate()</tt> function</li>
-<li>Support for custom Element class instantiation in lxml.sax: passing a
-<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
-lookup context of that function</li>
-<li>'.' represents empty ObjectPath (identity)</li>
-<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
-<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
-keys/values/items for a libxml2 node</li>
-<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
-<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
-<li>Support for pickeling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
-<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
-<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
-a better handling of namespaces when moving elements between documents.</li>
-</ul>
-</div>
-<div class="section" id="id281">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Removing Elements from a tree could make them loose their namespace
-declarations</li>
-<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
-<li>Replacing the children slice of an Element would cut off the tails of the
-original children</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
-<li>API functions now check incoming strings for XML conformity.  Zero bytes or
-low ASCII characters are no longer accepted (AssertionError).</li>
-<li>XSLT parsing failed to pass resolver context on to imported documents</li>
-<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
-<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
-<li>More ET compatible behaviour when writing out XML declarations or not</li>
-<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
-<li>Documents lost their top-level PIs and comments on serialisation</li>
-<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
-PIs are copied.</li>
-<li>Possible memory leaks in namespace handling when moving elements between
-documents</li>
-</ul>
-</div>
-<div class="section" id="id282">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>major restructuring in the documentation</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id283">
-<h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id284">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Build fixes for MS compiler</li>
-<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element[&quot;text&quot;]</span></tt> failed</li>
-<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
-to access</li>
-<li>The pattern for attribute names in ObjectPath was too restrictive</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id285">
-<h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id286">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Rich comparison of QName objects</li>
-<li>Support for regular expressions in benchmark selection</li>
-<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
-<li>ElementInclude Python module for ElementTree compatible XInclude processing
-that honours custom resolvers registered with the source document</li>
-<li>ElementTree.parser property holds the parser used to parse the document</li>
-<li>setup.py has been refactored for greater readability and flexibility</li>
-<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
-runtime search paths has been renamed to --auto-rpath. This makes it
-possible to pass an --rpath directly to distutils; previously this was being
-shadowed.</li>
-</ul>
-</div>
-<div class="section" id="id287">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Element instantiation now uses locks to prevent race conditions with threads</li>
-<li>ElementTree.write() did not raise an exception when the file was not writable</li>
-<li>Error handling could crash under Python &lt;= 2.4.1 - fixed by disabling thread
-support in these environments</li>
-<li>Element.find*() did not accept QName objects as path</li>
-</ul>
-</div>
-<div class="section" id="id288">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>code cleanup: redundant _NodeBase super class merged into _Element class
-Note: although the impact should be zero in most cases, this change breaks
-the compatibiliy of the public C-API</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id289">
-<h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id290">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Data elements in objectify support repr(), which is now used by dump()</li>
-<li>Source distribution now ships with a patched Pyrex</li>
-<li>New C-API function makeElement() to create new elements with text,
-tail, attributes and namespaces</li>
-<li>Reuse original parser flags for XInclude</li>
-<li>Simplified support for handling XSLT processing instructions</li>
-</ul>
-</div>
-<div class="section" id="id291">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parser resources were not freed before the next parser run</li>
-<li>Open files and XML strings returned by Python resolvers were not
-closed/freed</li>
-<li>Crash in the IDDict returned by XMLDTDID</li>
-<li>Copying Comments and ProcessingInstructions failed</li>
-<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
-<li>Memory leak when garbage collecting tailed root elements</li>
-<li>HTML script/style content was not propagated to .text</li>
-<li>Show text xincluded between text nodes correctly in .text and .tail</li>
-<li>'integer * objectify.StringElement' operation was not supported</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id292">
-<h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id293">
-<h2>Features added</h2>
-<ul class="simple">
-<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
-<li>countchildren() method on objectify.ObjectifiedElement</li>
-<li>Support custom elements for tree nodes in lxml.objectify</li>
-</ul>
-</div>
-<div class="section" id="id294">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
-<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
-<li>Factories objectify.Element() and objectify.DataElement() were missing
-<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
-<li>Changing the default parser in lxml.objectify did not update the factories
-Element() and DataElement()</li>
-<li>Let lxml.objectify.Element() always generate tree elements (not data
-elements)</li>
-<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id295">
-<h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id296">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Comments and processing instructions return '&lt;!-- coment --&gt;' and
-'&lt;?pi-target content?&gt;' for repr()</li>
-<li>Parsers are now the preferred (and default) place where element class lookup
-schemes should be registered.  Namespace lookup is no longer supported by
-default.</li>
-<li>Support for Python 2.5 beta</li>
-<li>Unlock the GIL for deep copying documents and for XPath()</li>
-<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
-<li>Support for parser options in iterparse()</li>
-<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
-tuples</li>
-<li>The XPath expression &quot;/&quot; now returns an empty list instead of raising an
-exception</li>
-<li>XML-Object API on top of lxml (lxml.objectify)</li>
-<li>Customizable Element class lookup:<ul>
-<li>different pre-implemented lookup mechanisms</li>
-<li>support for externally provided lookup functions</li>
-</ul>
-</li>
-<li>Support for processing instructions (ET-like, not compatible)</li>
-<li>Public C-level API for independent extension modules</li>
-<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
-<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
-documentation for differences)</li>
-<li>Element.nsmap property returns a mapping of all namespace prefixes known at
-the Element to their namespace URI</li>
-<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
-<li>Threading support in parsers and serializers:<ul>
-<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
-<li>File operations (on file names) free the GIL</li>
-<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
-<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
-</ul>
-</li>
-<li>Element iteration over XPath axes:<ul>
-<li>Element.iterdescendants() iterates over the descendants of an element</li>
-<li>Element.iterancestors() iterates over the ancestors of an element (from
-parent to parent)</li>
-<li>Element.itersiblings() iterates over either the following or preceding
-siblings of an element</li>
-<li>Element.iterchildren() iterates over the children of an element in either
-direction</li>
-<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
-generated elements</li>
-</ul>
-</li>
-<li>Element.getnext() and Element.getprevious() return the direct siblings of an
-element</li>
-</ul>
-</div>
-<div class="section" id="id297">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>filenames with local 8-bit encoding were not supported</li>
-<li>1.1beta did not compile under Python 2.3</li>
-<li>ignore unknown 'pyval' attribute values in objectify</li>
-<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
-<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
-<li>XPathSyntaxError now inherits from XPathError</li>
-<li>Threading race conditions in RelaxNG and XMLSchema</li>
-<li>Crash when mixing elements from XSLT results into other trees, concurrent
-XSLT is only allowed when the stylesheet was parsed in the main thread</li>
-<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
-differences in the regular expression syntax)</li>
-<li>Setting element.text to '' returned None on request, not the empty string</li>
-<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
-<li>Creating documents no longer copies the parser for later URL resolving.  For
-performance reasons, only a reference is kept.  Resolver updates on the
-parser will now be reflected by documents that were parsed before the
-change.  Although this should rarely become visible, it is a behavioral
-change from 1.0.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id298">
-<h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id299">
-<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="id300">
-<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="id301">
-<h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id302">
-<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="id303">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when mixing elements from XSLT results into other trees</li>
-<li>Copying/deepcopying did not work for ElementTree objects</li>
-<li>Setting an attribute to a non-string value did not raise an exception</li>
-<li>Element.remove() deleted the tail text from the removed Element</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id304">
-<h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id305">
-<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="id306">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Rare exceptions in Python list functions were not handled</li>
-<li>Parsing accepted unicode strings with XML encoding declaration in certain
-cases</li>
-<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
-<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
-<li>XSLT and parser exception messages include the error line number</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id307">
-<h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id308">
-<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="id309">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Document deallocation could crash in certain garbage collection scenarios</li>
-<li>Extension function calls in XSLT variable declarations could break the
-stylesheet and crash on repeated calls</li>
-<li>Deep copying Elements could loose namespaces declared in parents</li>
-<li>Deep copying Elements did not copy tail</li>
-<li>Parsing file(-like) objects failed to load external entities</li>
-<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
-<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
-<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
-<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id310">
-<h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id311">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.getiterator() and the findall() methods support finding arbitrary
-elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
-<li>Another speedup in tree iteration code</li>
-<li>General speedup of Python Element object creation and deallocation</li>
-<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
-<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
-<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
-document that contains the element.</li>
-<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
-find the element in the tree structure</li>
-<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
-<li>Comment texts can be changed through the API</li>
-<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
-<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
-<li>ElementTree.write() no longer serializes in memory (reduced memory
-footprint)</li>
-<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
-<li>Support for writing the XML representation of Elements and ElementTrees to
-Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
-<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
-<li>Parsing a unicode string no longer copies the string (reduced memory
-footprint)</li>
-<li>Parsing file-like objects reads chunks rather than the whole file (reduced
-memory footprint)</li>
-<li>Parsing StringIO objects from the start avoids copying the string (reduced
-memory footprint)</li>
-<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
-information, original encoding and XML version as seen by the parser</li>
-<li>etree module can be compiled without libxslt by commenting out the line
-<tt class="docutils literal">include &quot;xslt.pxi&quot;</tt> near the end of the etree.pyx source file</li>
-<li>Better error messages in parser exceptions</li>
-<li>Error reporting also works in XSLT</li>
-<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
-resolvers are registered at parser level</li>
-<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
-enabled by default, can be switched off with 'regexp=False' keyword argument</li>
-<li>Support for exslt extensions (libexslt) and libxslt extra functions
-(node-set, document, write, output)</li>
-<li>Substantial speedup in XPath.evaluate()</li>
-<li>HTMLParser for parsing (broken) HTML</li>
-<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
-implementation of libxml2 (as opposed to ET compatible XMLID)</li>
-</ul>
-</div>
-<div class="section" id="id312">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in Element.__setitem__</li>
-<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
-<li>Memory leak in XPath extension functions</li>
-<li>Memory leak in unicode related setup code</li>
-<li>Element now raises ValueError on empty tag names</li>
-<li>Namespace fixing after moving elements between documents could fail if the
-source document was freed too early</li>
-<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -&gt; 't')
-didn't reset the namespace</li>
-<li>Unknown constants from newer libxml2 versions could raise exceptions in the
-error handlers</li>
-<li>lxml.etree compiles much faster</li>
-<li>On libxml2 &lt;= 2.6.22, parsing strings with encoding declaration could fail
-in certain cases</li>
-<li>Document reference in ElementTree objects was not updated when the root
-element was moved to a different document</li>
-<li>Running absolute XPath expressions on an Element now evaluates against the
-root tree</li>
-<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
-<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
-objects</li>
-<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
-<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
-<li>Memory leak when using iconv encoders in tostring/write</li>
-<li>Deep copying Elements and ElementTrees maintains the document information</li>
-<li>Serialization functions raise LookupError for unknown encodings</li>
-<li>Memory deallocation crash resulting from deep copying elements</li>
-<li>Some ElementTree methods could crash if the root node was not initialized
-(neither file nor element passed to the constructor)</li>
-<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
-dictionary</li>
-<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
-<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
-<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
-ElementTree root node as reference point</li>
-<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id313">
-<h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id314">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Speedup for Element.makeelement(): the new element reuses the original
-libxml2 document instead of creating a new empty one</li>
-<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
-<li>ElementTree compatible QName class</li>
-<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
-</ul>
-</div>
-<div class="section" id="id315">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
-<li>Memory leak if write_c14n fails to write the file after conversion</li>
-<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
-<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id316">
-<h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id317">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
-SaxError on mismatch</li>
-<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
-(startElement, endElement) and defaults to empty attributes (keyword
-argument)</li>
-<li>Speedup for repeatedly accessing element tag names</li>
-<li>Minor API performance improvements</li>
-</ul>
-</div>
-<div class="section" id="id318">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
-<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
-<li>lxml.tests package will no longer be installed (is still in source tar)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id319">
-<h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id320">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging API for libxml2 error messages</li>
-<li>Various performance improvements</li>
-<li>Benchmark script for lxml, ElementTree and cElementTree</li>
-<li>Support for registering extension functions through new FunctionNamespace
-class (see doc/extensions.txt)</li>
-<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
-<li>Support for variables in XPath expressions (also in XPath class)</li>
-<li>XPath class for compiled XPath expressions</li>
-<li>XMLID module level function (ElementTree compatible)</li>
-<li>XMLParser API for customized libxml2 parser configuration</li>
-<li>Support for custom Element classes through new Namespace API (see
-doc/namespace_extensions.txt)</li>
-<li>Common exception base class LxmlError for module exceptions</li>
-<li>real iterator support in iter(Element), Element.getiterator()</li>
-<li>XSLT objects are callable, result trees support str()</li>
-<li>Added MANIFEST.in for easier creation of RPM files.</li>
-<li>'getparent' method on elements allows navigation to an element's
-parent element.</li>
-<li>Python core compatible SAX tree builder and SAX event generator. See
-doc/sax.txt for more information.</li>
-</ul>
-</div>
-<div class="section" id="id321">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Segfaults and memory leaks in various API functions of Element</li>
-<li>Segfault in XSLT.tostring()</li>
-<li>ElementTree objects no longer interfere, Elements can be root of different
-ElementTrees at the same time</li>
-<li>document('') works in XSLT documents read from files (in-memory documents
-cannot support this due to libxslt deficiencies)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id322">
-<h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id323">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
-does the same thing, and does <em>not</em> create a shallow copy, as that
-makes no sense in the context of libxml2 trees. This means a
-potential incompatibility with ElementTree, but there's more chance
-that it works than if copy.copy() isn't supported at all.</li>
-<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
-supported and parsing of gzipped XML files works.</li>
-<li>implemented index() on elements, allowing one to find the index of a
-SubElement.</li>
-</ul>
-</div>
-<div class="section" id="id324">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Use xslt-config instead of xml2-config to find out libxml2
-directories to take into account a case where libxslt is installed
-in a different directory than libxslt.</li>
-<li>Eliminate crash condition in iteration when text nodes are changed.</li>
-<li>Passing 'None' to tostring() does not result in a segfault anymore,
-but an AssertionError.</li>
-<li>Some test fixes for Windows.</li>
-<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
-syntax errors. This should be less confusing.</li>
-<li>Fixed error with uncaught exception in Pyrex code.</li>
-<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
-segfault.</li>
-<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
-<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
-libxml2 version, as it should.</li>
-<li>Passing a UTF-8 encoded string to the XML() function would fail;
-fixed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id325">
-<h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id326">
-<h2>Features added</h2>
-<ul class="simple">
-<li>parameters (XPath expressions) can be passed to XSLT using keyword
-parameters.</li>
-<li>Simple XInclude support. Calling the xinclude() method on a tree
-will process any XInclude statements in the document.</li>
-<li>XMLSchema support. Use the XMLSchema class or the convenience
-xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
-<li>Added convenience xslt() method on tree. This is less efficient
-than the XSLT object, but makes it easier to write quick code.</li>
-<li>Added convenience relaxng() method on tree. This is less efficient
-than the RelaxNG object, but makes it easier to write quick code.</li>
-<li>Make it possible to use XPathEvaluator with elements as well. The
-XPathEvaluator in this case will retain the element so multiple
-XPath queries can be made against one element efficiently. This
-replaces the second argument to the .evaluate() method that existed
-previously.</li>
-<li>Allow registerNamespace() to be called on an XPathEvaluator, after
-creation, to add additional namespaces. Also allow registerNamespaces(),
-which does the same for a namespace dictionary.</li>
-<li>Add 'prefix' attribute to element to be able to read prefix information.
-This is entirely read-only.</li>
-<li>It is possible to supply an extra nsmap keyword parameter to
-the Element() and SubElement() constructors, which supplies a
-prefix to namespace URI mapping. This will create namespace
-prefix declarations on these elements and these prefixes will show up
-in XML serialization.</li>
-</ul>
-</div>
-<div class="section" id="id327">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Killed yet another memory management related bug: trees created
-using newDoc would not get a libxml2-level dictionary, which caused
-problems when deallocating these documents later if they contained a
-node that came from a document with a dictionary.</li>
-<li>Moving namespaced elements between documents was problematic as
-references to the original document would remain. This has been fixed
-by applying xmlReconciliateNs() after each move operation.</li>
-<li>Can pass None to 'dump()' without segfaults.</li>
-<li>tostring() works properly for non-root elements as well.</li>
-<li>Cleaned out the tostring() method so it should handle encoding
-correctly.</li>
-<li>Cleaned out the ElementTree.write() method so it should handle encoding
-correctly. Writing directly to a file should also be faster, as there is no
-need to go through a Python string in that case. Made sure the test cases
-test both serializing to StringIO as well as serializing to a real file.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id328">
-<h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id329">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Changed setup.py so that library_dirs is also guessed. This should
-help with compilation on the Mac OS X platform, where otherwise the
-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="id330">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Do the right thing when handling namespaced attributes.</li>
-<li>fix bug where tostring() moved nodes into new documents. tostring()
-had very nasty side-effects before this fix, sorry!</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id331">
-<h1>0.5.1 (2005-04-09)</h1>
-<ul class="simple">
-<li>Python 2.2 compatibility fixes.</li>
-<li>unicode fixes in Element() and Comment() as well as XML(); unicode
-input wasn't properly being UTF-8 encoded.</li>
-</ul>
-</div>
-<div class="section" id="id332">
-<h1>0.5 (2005-04-08)</h1>
-<p>Initial public release.</p>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2015-06-05.
-
-</div>
-</body>
-</html>
diff --git a/doc/html/changes-3.5.0.html b/doc/html/changes-3.5.0.html
deleted file mode 100644 (file)
index 7252fac..0000000
+++ /dev/null
@@ -1,3044 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
-<title>lxml changelog</title>
-<link rel="stylesheet" href="style.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="lxml-changelog">
-<h1 class="title">lxml changelog</h1>
-
-<div class="section" id="id1">
-<h1>3.5.0 (2015-11-13)</h1>
-<div class="section" id="bugs-fixed">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Unicode string results failed XPath queries in PyPy.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1497051">LP#1497051</a>: HTML target parser failed to terminate on exceptions
-and continued parsing instead.</li>
-<li>Deprecated API usage in doctestcompare.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="b1-2015-09-18">
-<h1>3.5.0b1 (2015-09-18)</h1>
-<div class="section" id="features-added">
-<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>
-that does not remove definitions of the provided prefix-namespace
-mapping from the tree.</li>
-<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">top_nsmap</tt> that
-moves definitions of the provided prefix-namespace mapping to the
-top of the tree.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1490451">LP#1490451</a>: <tt class="docutils literal">Element</tt> objects gained a <tt class="docutils literal">cssselect()</tt> method as
-known from <tt class="docutils literal">lxml.html</tt>.  Patch by Simon Sapin.</li>
-<li>API functions and methods behave and look more like Python functions,
-which allows introspection on them etc.  One side effect to be aware of
-is that the functions now bind as methods when assigned to a class
-variable.  A quick fix is to wrap them in <tt class="docutils literal">staticmethod()</tt> (as for
-normal Python functions).</li>
-<li>ISO-Schematron support gained an option <tt class="docutils literal">error_finder</tt> that allows
-passing a filter function for picking validation errors from reports.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1243600">LP#1243600</a>: Elements in <tt class="docutils literal">lxml.html</tt> gained a <tt class="docutils literal">classes</tt> property
-that provides a set-like interface to the <tt class="docutils literal">class</tt> attribute.
-Original patch by masklinn.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1341964">LP#1341964</a>: The soupparser now handles DOCTYPE declarations, comments
-and processing instructions outside of the root element.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421512">LP#1421512</a>: The <tt class="docutils literal">docinfo</tt> of a tree was made editable to allow
-setting and removing the public ID and system ID of the DOCTYPE.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1442427">LP#1442427</a>: More work-arounds for quirks and bugs in pypy and pypy3.</li>
-<li><tt class="docutils literal">lxml.html.soupparser</tt> now uses BeautifulSoup version 4 instead
-of version 3 if available.</li>
-</ul>
-</div>
-<div class="section" id="id2">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory errors that occur during tree adaptations (e.g. moving subtrees
-to foreign documents) could leave the tree in a crash prone state.</li>
-<li>Calling <tt class="docutils literal">process_children()</tt> in an XSLT extension element without
-an <tt class="docutils literal">output_parent</tt> argument failed with a <tt class="docutils literal">TypeError</tt>.
-Fix by Jens Tröger.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/162">GH#162</a>: Image data in HTML <tt class="docutils literal">data</tt> URLs is considered safe and
-no longer removed by <tt class="docutils literal">lxml.html.clean</tt> JavaScript cleaner.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/166">GH#166</a>: Static build could link libraries in wrong order.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/172">GH#172</a>: Rely a bit more on libxml2 for encoding detection rather than
-rolling our own in some cases.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/159">GH#159</a>: Validity checks for names and string content were tightened
-to detect the use of illegal characters early.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421921">LP#1421921</a>: Comments/PIs before the DOCTYPE declaration were not
-serialised.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/659367">LP#659367</a>: Some HTML DOCTYPE declarations were not serialised.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238503">LP#1238503</a>: lxml.doctestcompare is now consistent with stdlib's doctest
-in how it uses <tt class="docutils literal">+</tt> and <tt class="docutils literal">-</tt> to refer to unexpected and missing output.</li>
-<li>Empty prefixes are explicitly rejected when a namespace mapping is used
-with ElementPath to avoid hiding bugs in user code.</li>
-<li>Several problems with PyPy were fixed by switching to Cython 0.23.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id3">
-<h1>3.4.4 (2015-04-25)</h1>
-<div class="section" id="id4">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>An ElementTree compatibility test added in lxml 3.4.3 that failed in
-Python 3.4+ was removed again.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id5">
-<h1>3.4.3 (2015-04-15)</h1>
-<div class="section" id="id6">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Expression cache in ElementPath was ignored.  Fix by Changaco.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1426868">LP#1426868</a>: Passing a default namespace and a prefixed namespace mapping
-as nsmap into <tt class="docutils literal">xmlfile.element()</tt> raised a <tt class="docutils literal">TypeError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421927">LP#1421927</a>: DOCTYPE system URLs were incorrectly quoted when containing
-double quotes.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1419354">LP#1419354</a>: meta-redirect URLs were incorrectly processed by
-<tt class="docutils literal">iterlinks()</tt> if preceded by whitespace.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id7">
-<h1>3.4.2 (2015-02-07)</h1>
-<div class="section" id="id8">
-<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
-of an XML document.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1369362">LP#1369362</a>: HTML cleaning failed when hitting processing instructions
-with pseudo-attributes.</li>
-<li><tt class="docutils literal">CDATA()</tt> wrapped content was rejected for tail text.</li>
-<li>CDATA sections were not serialised as tail text of the top-level element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id9">
-<h1>3.4.1 (2014-11-20)</h1>
-<div class="section" id="id10">
-<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="id11">
-<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="id12">
-<h1>3.4.0 (2014-09-10)</h1>
-<div class="section" id="id13">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
-content after each API operation (starting/ending element blocks or writes).
-A new method <tt class="docutils literal">xf.flush()</tt> can alternatively be used to explicitly flush
-the output.</li>
-<li><tt class="docutils literal">lxml.html.document_fromstring</tt> has a new option <tt class="docutils literal">ensure_head_body=True</tt>
-which will add an empty head and/or body element to the result document if
-missing.</li>
-<li><tt class="docutils literal">lxml.html.iterlinks</tt> now returns links inside meta refresh tags.</li>
-<li>New <tt class="docutils literal">XMLParser</tt> option <tt class="docutils literal">collect_ids=False</tt> to disable ID hash table
-creation.  This can substantially speed up parsing of documents with many
-different IDs that are not used.</li>
-<li>The parser uses per-document hash tables for XML IDs.  This reduces the
-load of the global parser dict and speeds up parsing for documents with
-many different IDs.</li>
-<li><tt class="docutils literal">ElementTree.getelementpath(element)</tt> returns a structural ElementPath
-expression for the given element, which can be used for lookups later.</li>
-<li><tt class="docutils literal">xmlfile()</tt> accepts a new argument <tt class="docutils literal">close=True</tt> to close file(-like)
-objects after writing to them.  Before, <tt class="docutils literal">xmlfile()</tt> only closed the file
-if it had opened it internally.</li>
-<li>Allow &quot;bytearray&quot; type for ASCII text input.</li>
-</ul>
-</div>
-<div class="section" id="id14">
-<h2>Bugs fixed</h2>
-</div>
-<div class="section" id="other-changes">
-<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.
-Previously, they could lead to an internal tree representation in a mixed
-encoding state, which lead to very late errors or even silently incorrect
-behaviour during tree traversal or serialisation.</li>
-<li>Requires Python 2.6, 2.7, 3.2 or later. No longer supports
-Python 2.4, 2.5 and 3.1, use lxml 3.3.x for those.</li>
-<li>Requires libxml2 2.7.0 or later and libxslt 1.1.23 or later,
-use lxml 3.3.x with older versions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id15">
-<h1>3.3.6 (2014-08-28)</h1>
-<div class="section" id="id16">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Prevent tree cycle creation when adding Elements as siblings.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1361948">LP#1361948</a>: crash when deallocating Element siblings without parent.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1354652">LP#1354652</a>: crash when traversing internally loaded documents in XSLT
-extension functions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id17">
-<h1>3.3.5 (2014-04-18)</h1>
-<div class="section" id="id18">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning could fail to strip javascript links that mix control
-characters into the link scheme.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id19">
-<h1>3.3.4 (2014-04-03)</h1>
-<div class="section" id="id20">
-<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="id21">
-<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="id22">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id23">
-<h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id24">
-<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="id25">
-<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
-subclassed from Python code.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id26">
-<h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id27">
-<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
-<tt class="docutils literal">set_element_class_lookup()</tt> and <tt class="docutils literal">makeelement()</tt>, were lost from
-<tt class="docutils literal">iterparse</tt> objects in 3.3.0.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1222132">LP#1222132</a>: instances of <tt class="docutils literal">XMLSchema</tt>, <tt class="docutils literal">Schematron</tt> and <tt class="docutils literal">RelaxNG</tt>
-did not clear their local <tt class="docutils literal">error_log</tt> before running a validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238500">LP#1238500</a>: lxml.doctestcompare mixed up &quot;expected&quot; and &quot;actual&quot; in
-attribute values.</li>
-<li>Some file I/O tests were failing in MS-Windows due to non-portable temp
-file usage.  Initial patch by Gabi Davar.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/910014">LP#910014</a>: duplicate IDs in a document were not reported by DTD validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185332">LP#1185332</a>: <tt class="docutils literal"><span class="pre">tostring(method=&quot;html&quot;)</span></tt> did not use HTML serialisation
-semantics for trailing tail text.  Initial patch by Sylvain Viollon.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1281139">LP#1281139</a>: <tt class="docutils literal">.attrib</tt> value of Comments lost its mutation methods
-in 3.3.0.  Even though it is empty and immutable, it should still
-provide the same interface as that returned for Elements.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id28">
-<h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id29">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id30">
-<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
-elements during tag iteration.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1273709">LP#1273709</a>: Building in PyPy failed due to missing support for
-<tt class="docutils literal">PyUnicode_Compare()</tt> and <tt class="docutils literal"><span class="pre">PyByteArray_*()</span></tt> in PyPy's C-API.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274413">LP#1274413</a>: Compilation in MSVC failed due to missing &quot;stdint.h&quot; standard
-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="id31">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id32">
-<h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id33">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id34">
-<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="id35">
-<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="id36">
-<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="id37">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Several error handling problems were fixed throughout the code base that
-could previously lead to exceptions being silently swallowed or not
-properly reported.</li>
-<li>The C-API function <tt class="docutils literal">appendChild()</tt> is now deprecated as it does not
-propagate exceptions (its return type is <tt class="docutils literal">void</tt>).  The new function
-<tt class="docutils literal">appendChildToElement()</tt> was added as a safe replacement.</li>
-<li>Passing a string into <tt class="docutils literal">fromstringlist()</tt> raises an exception instead of
-parsing the string character by character.</li>
-</ul>
-</div>
-<div class="section" id="id38">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Document cleanup code was simplified using the new GC features in
-Cython 0.20.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2014-01-12">
-<h1>3.3.0beta4 (2014-01-12)</h1>
-<div class="section" id="id39">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id40">
-<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
-objects was mutable.</li>
-<li>Element class lookup wasn't available for the new pull parsers or when using
-a custom parser target.</li>
-<li>Setting Element attributes on instantiation with both the <tt class="docutils literal">attrib</tt> argument
-and keyword arguments could modify the mapping passed as <tt class="docutils literal">attrib</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1266171">LP#1266171</a>: DTDs instantiated from internal/external subsets (i.e. through
-the docinfo property) lost their attribute declarations.</li>
-</ul>
-</div>
-<div class="section" id="id41">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
-Python 3.4.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2014-01-02">
-<h1>3.3.0beta3 (2014-01-02)</h1>
-<div class="section" id="id42">
-<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="id43">
-<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="id44">
-<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="id45">
-<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="id46">
-<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="id47">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The safety check in the read-only tree implementation (e.g. used by
-<tt class="docutils literal">PythonElementClassLookup</tt>) raises a more appropriate <tt class="docutils literal">ReferenceError</tt>
-for illegal access after tree disposal instead of an <tt class="docutils literal">AssertionError</tt>.
-This should only impact test code that specifically checks the original
-behaviour.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2013-12-12">
-<h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id48">
-<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
-<tt class="docutils literal">resolve_base_href()</tt> (lxml.html) that enables ignoring or
-discarding links that fail to parse as URLs.</li>
-<li>New parser classes <tt class="docutils literal">XMLPullParser</tt> and <tt class="docutils literal">HTMLPullParser</tt> for
-incremental parsing, as implemented for ElementTree in Python 3.4.</li>
-<li><tt class="docutils literal">iterparse()</tt> enables recovery mode by default for HTML parsing
-(<tt class="docutils literal">html=True</tt>).</li>
-</ul>
-</div>
-<div class="section" id="id49">
-<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.
-comment or PI).</li>
-<li>Error messages in the log and in exception messages that originated
-from libxml2 could accidentally be picked up from preceding warnings
-instead of the actual error.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify did not accept a dict as
-argument for adding attributes to the element it's building. This
-works as in lxml.builder now.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants, instead of running into an infinite
-loop.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-<li>lxml.html.formfill: Fix textarea form filling.
-The textarea used to be cleared before the new content was set,
-which removed the name attribute.</li>
-</ul>
-</div>
-<div class="section" id="id50">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some basic API classes use freelists internally for faster
-instantiation.  This can speed up some <tt class="docutils literal">iterparse()</tt> scenarios,
-for example.</li>
-<li><tt class="docutils literal">iterparse()</tt> was rewritten to use the new <tt class="docutils literal">*PullParser</tt>
-classes internally instead of being a parser itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id51">
-<h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id52">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id53">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
-<li>Crash in target parsing with attributes.</li>
-<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.
-comment or PI).</li>
-</ul>
-</div>
-<div class="section" id="id55">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id56">
-<h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id57">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id58">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak when creating an XPath evaluator in a thread.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-</ul>
-</div>
-<div class="section" id="id61">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id62">
-<h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id63">
-<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="id64">
-<h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id65">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id66">
-<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="id67">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Return values of user provided element class lookup methods are now
-validated against the type of the XML node they represent to prevent
-API class mismatches.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id68">
-<h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id69">
-<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
-extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
-and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
-strings from the result list.</li>
-</ul>
-</div>
-<div class="section" id="id70">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When moving Elements to another tree, the namespace cleanup mechanism
-no longer drops namespace prefixes from attributes for which it finds
-a default namespace declaration, to prevent them from appearing as
-unnamespaced attributes after serialisation.</li>
-<li>Returning non-type objects from a custom class lookup method could lead
-to a crash.</li>
-<li>Instantiating and using subtypes of Comments and ProcessingInstructions
-crashed.</li>
-</ul>
-</div>
-<div class="section" id="id71">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id72">
-<h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id73">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id74">
-<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
-parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
-in the face of uncommon HTML content like framesets or missing body tags.
-Patch by Stefan Seelmann.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
-non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
-reporting the <tt class="docutils literal">IOError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
-default parser and made subsequent attempts to parse from a URL fail.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-of overwriting the current value.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
-allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
-</ul>
-</div>
-<div class="section" id="id75">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id76">
-<h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id77">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id78">
-<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
-the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
-with a <tt class="docutils literal">TypeError</tt>.  Patch by Mike Bayer.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
-the result tree to a Unicode string.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
-by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id79">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id80">
-<h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id81">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id82">
-<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
-an AttributeError in Py3.</li>
-<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
-</ul>
-</div>
-<div class="section" id="id83">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
-from the module dict.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id84">
-<h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id85">
-<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="id86">
-<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
-a copy of the attributes as a plain Python dict.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the  <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
-always used the first namespace mapping that was provided for each
-path expression instead of using the one that was actually passed
-in for the current run.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
-without threading support.  Patch by Ulrich Seidl.</li>
-</ul>
-</div>
-<div class="section" id="id87">
-<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="id88">
-<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
-makes the API always return Unicode strings for names and text
-instead of byte strings for plain ASCII content.</li>
-<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
-<li>E factory in lxml.objectify is callable to simplify the creation of
-tags with non-identifier names without having to resort to getattr().</li>
-</ul>
-</div>
-<div class="section" id="id89">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When starting from a non-namespaced element in lxml.objectify, searching
-for a child without explicitly specifying a namespace incorrectly found
-namespaced elements with the requested local name, instead of restricting
-the search to non-namespaced children.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</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="id90">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
-removed from the module API of lxml.objectify.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
-many children.  Patch by Anders Hammarquist.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id91">
-<h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id92">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id93">
-<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="id94">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id95">
-<h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id96">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id97">
-<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
-in PyPy without proper cleanup.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</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="id98">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id99">
-<h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id100">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id101">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>End-of-file handling was incorrect in iterparse() when reading from
-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="id102">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The build no longer uses Cython by default unless the generated C files
-are missing.  To use Cython, pass the option &quot;--with-cython&quot;.  To ignore
-the fatal build error when Cython is required but not available (e.g. to
-run special setup.py commands that do not actually run a build), pass
-&quot;--without-cython&quot;.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2012-09-26">
-<h1>3.0beta1 (2012-09-26)</h1>
-<div class="section" id="id103">
-<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="id104">
-<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="id105">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha2-2012-08-23">
-<h1>3.0alpha2 (2012-08-23)</h1>
-<div class="section" id="id106">
-<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
-<tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt> to search for elements with a given local name in any
-namespace. With this addition, all combinations of wildcards now work
-as expected:
-<tt class="docutils literal">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
-and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
-but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.
-The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
-<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
-and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
-<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
-<tt class="docutils literal">iterparse()</tt> class.  Patch by Simon Sapin.</li>
-<li>C14N allows specifying the inclusive prefixes to be promoted
-to top-level during exclusive serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id107">
-<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="id108">
-<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="id109">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Initial support for building in PyPy (through cpyext).</li>
-<li>DTD objects gained an API that allows read access to their
-declarations.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
-from grep output) and for surrounding the output with a new root
-tag.</li>
-<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
-types (such as string subtypes) when building elements around them.</li>
-<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
-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="id110">
-<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
-internally, which makes them faster in many cases (especially when
-short circuiting after a single or couple of elements) and fixes
-some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>.  Note that
-this means that they no longer support arbitrary XPath expressions
-but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
-The previous implementation was also redundant with the normal
-XPath support, which can be used as a replacement.</li>
-<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
-instruction that happened to be in the wrong spot.  (Same for the
-other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
-<li>The error logging is less intrusive and avoids a global setup where
-possible.</li>
-<li>Fixed undefined names in html5lib parser.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
-<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
-another Element as parameter.</li>
-<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
-properties immutable (as in objectify, for example), inserting text
-when creating Elements through the E-Factory feature of the class
-constructor would fail with an exception, stating that the text
-cannot be modified.</li>
-</ul>
-</div>
-<div class="section" id="id111">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code base was overhauled to properly use 'const' where the API
-of libxml2 and libxslt requests it.  This also has an impact on the
-public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
-well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
-Code that uses these declarations may have to be adapted.  On the
-plus side, this fixes several C compiler warnings, also for user
-code, thus making it easier to spot real problems again.</li>
-<li>The functionality of &quot;lxml.cssselect&quot; was moved into a separate PyPI
-package called &quot;cssselect&quot;.  To continue using it, you must install
-that package separately.  The &quot;lxml.cssselect&quot; module is still
-available and provides the same interface, provided the &quot;cssselect&quot;
-package can be imported at runtime.</li>
-<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
-arguments are now sorted by (namespaced) name before being created
-to make their order predictable for serialisation and iteration.
-Note that adding or deleting attributes afterwards does not take
-that order into account, i.e. setting a new attribute appends it
-after the existing ones.</li>
-<li>Several classes that are for internal use only were removed
-from the <tt class="docutils literal">lxml.etree</tt> module dict:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
-_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
-__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
-_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
-_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
-_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
-_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
-_ParserSchemaValidationContext, _XPathContext,
-_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
-<li>Several internal classes can no longer be inherited from:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
-_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
-_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
-_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
-_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id112">
-<h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id113">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id114">
-<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="id115">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id116">
-<h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id117">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id118">
-<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="id119">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id120">
-<h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id121">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id122">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when building an nsmap (Element property) with empty
-namespace URIs.</li>
-<li>Crash due to race condition when errors (or user messages) occur
-during threaded XSLT processing.</li>
-<li>XSLT stylesheet compilation could ignore compilation errors.</li>
-</ul>
-</div>
-<div class="section" id="id123">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id124">
-<h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id125">
-<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="id126">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
-requesting start events.</li>
-<li>Fixed parsing of more selectors in cssselect.  Whitespace before
-pseudo-elements and pseudo-classes is significant as it is a
-descendant combinator.
-&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
-Patch by Simon Sapin.</li>
-<li>lxml.html.diff no longer raises an exception when hitting
-'img' tags without 'src' attribute.</li>
-</ul>
-</div>
-<div class="section" id="id127">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id128">
-<h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id129">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
-<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
-declarations (and generally clean up the namespace declarations)
-after removing the type annotations.</li>
-<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
-copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
-of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
-</ul>
-</div>
-<div class="section" id="id130">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
-fix in lxml 2.3.1).  The previous change resulted in a serious
-performance regression for the XPath based evaluation of the
-translated expression.  Note that this breaks the usage of some of
-the generated XPath expressions as XSLT location paths that
-previously worked in 2.3.1.</li>
-<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
-&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
-a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
-&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
-</ul>
-</div>
-<div class="section" id="id131">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id132">
-<h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id133">
-<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
-tags and their content (i.e. their whole subtree).</li>
-<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
-pseudo-attributes from the text content of processing instructions.</li>
-<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
-used to compile external C code against lxml.etree.  This is
-specifically required for statically linked lxml builds when code
-needs to compile against the exact same header file versions as lxml
-itself.</li>
-<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
-<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
-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="id134">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning didn't remove 'data:' links.</li>
-<li>The html5lib parser integration now uses the 'official'
-implementation in html5lib itself, which makes it work with newer
-releases of the library.</li>
-<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
-tag name when the corresponding start event inferred the same plain
-tag name to be in the default namespace.</li>
-<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
-<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use.  This
-reverts a change in lxml 2.3 where all files would be closed.  It is
-the users responsibility to properly close the file(-like) object,
-also in error cases.</li>
-<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
-<li>In lxml.cssselect, use the xpath 'A//B' (short for
-'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
-the css descendant selector ('A B').  This makes a few edge cases
-like <tt class="docutils literal">&quot;div <span class="pre">*:last-child&quot;</span></tt> consistent with the selector behavior in
-WebKit and Firefox, and makes more css expressions valid location
-paths (for use in xsl:template match).</li>
-<li>In lxml.html, non-selected <tt class="docutils literal">&lt;option&gt;</tt> tags no longer show up in the
-collected form values.</li>
-<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</tt> values to/from a multiple select form
-field properly selects them and unselects them.</li>
-</ul>
-</div>
-<div class="section" id="id135">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Static builds can specify the download directory with the
-<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id136">
-<h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id137">
-<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="id138">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When finished reading from a file-like object, the parser
-immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
-<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
-file.</li>
-<li>Work-around for libxml2 bug that can leave the HTML parser in a
-non-functional state after parsing a severely broken document (fixed
-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="id139">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some public functions in the Cython-level C-API have more explicit
-return types.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2010-09-06">
-<h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id140">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id141">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
-<tt class="docutils literal">base_url</tt> parameters.</li>
-<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
-<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
-use of os.tempnam.  It now takes an optional 'encoding' parameter.</li>
-</ul>
-</div>
-<div class="section" id="id142">
-<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="id143">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id144">
-<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="id145">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
-(following ElementTree 1.3).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2010-06-19">
-<h1>2.3alpha1 (2010-06-19)</h1>
-<div class="section" id="id146">
-<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>
-to pass a prefix-to-namespace mapping for the selector.</li>
-<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
-globally registers a namespace prefix for a namespace that newly
-created Elements in that namespace will use automatically.  Follows
-ElementTree 1.3.</li>
-<li>Support 'unicode' string name as encoding parameter in
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
-match the upcoming ElementTree 1.3 that will ship in the standard
-library of Python 3.2/2.7.  This includes extended support for
-predicates as well as namespace prefixes (as known from XPath).</li>
-<li>During regular XPath evaluation, various ESXLT functions are
-available within their namespace when using libxslt 1.1.26 or later.</li>
-<li>Support passing a readily configured logger instance into
-<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
-<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
-override the DOCTYPE (internal subset) of the document.</li>
-<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
-to append the resulting content directly to an output element.</li>
-<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
-XSLT extension element itself.</li>
-<li>ISO-Schematron support based on the de-facto Schematron reference
-'skeleton implementation'.</li>
-<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
-parameters.</li>
-<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
-overhead.</li>
-<li>Setting the value of a namespaced attribute always uses a prefixed
-namespace instead of the default namespace even if both declare the
-same namespace URI.  This avoids serialisation problems when an
-attribute from a default namespace is set on an element from a
-different namespace.</li>
-<li>XSLT extension elements: support for XSLT context nodes other than
-elements: document root, comments, processing instructions.</li>
-<li>Support for strings (in addition to Elements) in node-sets returned
-by extension functions.</li>
-<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
-the document on submit.</li>
-<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
-<li>Namespace URIs get validated against RFC 3986 at the API level
-(required by the XML namespace specification).</li>
-<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
-(compatible with ElementTree).</li>
-</ul>
-</div>
-<div class="section" id="id147">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>API is hardened against invalid proxy instances to prevent crashes
-due to incorrectly instantiated Element instances.</li>
-<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
-<li>Export ElementTree compatible XML parser class as
-<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
-<li>ObjectifiedDataElements in lxml.objectify were not hashable.  They
-now use the hash value of the underlying Python value (string,
-number, etc.) to which they compare equal.</li>
-<li>Parsing broken fragments in lxml.html could fail if the fragment
-contained an orphaned closing '&lt;/div&gt;' tag.</li>
-<li>Using XSLT extension elements around the root of the output document
-crashed.</li>
-<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr=&quot;val&quot;]</span></tt> and
-<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</span></tt> (with a space).  The latter now matches the
-attribute independent of the element.</li>
-<li>Rewriting multiple links inside of HTML text content could end up
-replacing unrelated content as replacements could impact the
-reported position of subsequent matches.  Modifications are now
-simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
-return links in reversed order if they appear inside the same text
-node.  Thus, replacements and link-internal modifications no longer
-change the position of links reported afterwards.</li>
-<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
-not represent the complete raw value (including child tags etc.). It
-now serialises the complete content on read and replaces the
-complete content by a string on write.</li>
-<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
-parsing failed.  Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
-called after parsing, regardless of the outcome.</li>
-</ul>
-</div>
-<div class="section" id="id148">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.1.2 and later.</li>
-<li>Static MS Windows builds can now download their dependencies
-themselves.</li>
-<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
-Element object.  It therefore no longer requires the garbage
-collector to clean up.</li>
-<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id149">
-<h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id150">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li>Import fix for urljoin in Python 3.1+.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id151">
-<h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id152">
-<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>
-<div class="section" id="id153">
-<h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id154">
-<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="id155">
-<h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id156">
-<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="id157">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XPath evaluation when reading smart strings from a document
-other than the original context document.</li>
-<li>Support recent versions of html5lib by not requiring its
-<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
-<li>Manually instantiating the custom element classes in
-<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
-<li>Invalid XML text characters were not rejected by the API when they
-appeared in unicode strings directly after non-ASCII characters.</li>
-<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
-<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
-<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
-<li>Crash in XSLT extension elements when the XSLT context node is not
-an element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id158">
-<h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id159">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Static build of libxml2/libxslt was broken.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id160">
-<h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id161">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id162">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
-parser.</li>
-<li>Looking up and deleting attributes without a namespace could hit a
-namespaced attribute of the same name instead.</li>
-<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
-ones) could leave a partially initialised element in the tree.</li>
-<li>Modifying trees that contain parsed entity references could result
-in an infinite loop.</li>
-<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
-attribute value was rejected as a non-unicode/non-ascii string</li>
-<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
-messages.</li>
-<li>Invalid syntax in CSS expressions could lead to an infinite loop in
-the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS special character escapes were not properly handled in
-<tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
-attribute were not handled correctly.  The HTML standard dictates
-that their value is defined by their text content.  This is now
-supported by lxml.html.</li>
-<li>XPath raised a TypeError when finding CDATA sections.  This is now
-fully supported.</li>
-<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
-namespaces when annotation is disabled.</li>
-<li>Feed parser failed to honour the 'recover' option on parse errors.</li>
-<li>Diverting the error logging to Python's logging system was broken.</li>
-</ul>
-</div>
-<div class="section" id="id163">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id164">
-<h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id165">
-<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>,
-<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
-from a subtree.</li>
-</ul>
-</div>
-<div class="section" id="id166">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Namespace cleanup on subtree insertions could result in missing
-namespace declarations (and potentially crashes) if the element
-defining a namespace was deleted and the namespace was not used by
-the top element of the inserted subtree but only in deeper subtrees.</li>
-<li>Raising an exception from a parser target callback didn't always
-terminate the parser.</li>
-<li>Only {true, false, 1, 0} are accepted as the lexical representation for
-BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
-behaviour.</li>
-</ul>
-</div>
-<div class="section" id="id167">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id168">
-<h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id169">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Injecting default attributes into a document during XML Schema
-validation (also at parse time).</li>
-<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
-restrictions imposed by libxml2 2.7.</li>
-</ul>
-</div>
-<div class="section" id="id170">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The script for statically building libxml2 and libxslt didn't work
-in Py3.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
-for parsing (which could lead to a crash before release 2.6.24).</li>
-</ul>
-</div>
-<div class="section" id="id171">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id172">
-<h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id173">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
-<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
-on serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id174">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing an XML Schema with external imports from a
-filename.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2009-02-27">
-<h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id175">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support strings and instantiable Element classes as child arguments
-to the constructor of custom Element classes.</li>
-<li>GZip compression support for serialisation to files and file-like
-objects.</li>
-</ul>
-</div>
-<div class="section" id="id176">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Deep-copying an ElementTree copied neither its sibling PIs and
-comments nor its internal/external DTD subsets.</li>
-<li>Soupparser failed on broken attributes without values.</li>
-<li>Crash in XSLT when overwriting an already defined attribute using
-<tt class="docutils literal">xsl:attribute</tt>.</li>
-<li>Crash bug in exception handling code under Python 3.  This was due
-to a problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
-<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
-was evaluated incorrectly.</li>
-</ul>
-</div>
-<div class="section" id="id177">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.0.1.</li>
-<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
-for Elements without text content.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2009-02-17">
-<h1>2.2beta3 (2009-02-17)</h1>
-<div class="section" id="id178">
-<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="id179">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in XPath evaluators.</li>
-<li>Crash when parsing indented XML in one thread and merging it with
-other documents parsed in another thread.</li>
-<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
-string failed.</li>
-<li>Fixes following changes in Python 3.0.1.</li>
-<li>Minor fixes for Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id180">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The global error log (which is copied into the exception log) is now
-local to a thread, which fixes some race conditions.</li>
-<li>More robust error handling on serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2009-01-25">
-<h1>2.2beta2 (2009-01-25)</h1>
-<div class="section" id="id181">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
-<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url(&quot;link&quot;)</span></tt> incorrectly
-(treating the quotation marks as part of the link).</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id182">
-<h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id183">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2008-12-12">
-<h1>2.2beta1 (2008-12-12)</h1>
-<div class="section" id="id184">
-<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="id185">
-<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="id186">
-<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="id187">
-<h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id188">
-<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="id189">
-<h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id190">
-<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="alpha1-2008-11-23">
-<h1>2.2alpha1 (2008-11-23)</h1>
-<div class="section" id="id191">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for XSLT result tree fragments in XPath/XSLT extension
-functions.</li>
-<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
-<li>New options for exclusive C14N and C14N without comments.</li>
-<li>Instantiating a custom Element classes creates a new Element.</li>
-</ul>
-</div>
-<div class="section" id="id192">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>XSLT didn't inherit the parse options of the input document.</li>
-<li>0-bytes could slip through the API when used inside of Unicode
-strings.</li>
-<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
-that end in a parenthesis, will be linked in their entirety (typical
-with Wikipedia links).</li>
-</ul>
-</div>
-<div class="section" id="id193">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id194">
-<h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id195">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id196">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-<li>Parser Unicode decoding errors could get swallowed by other
-exceptions.</li>
-<li>Name/import errors in some Python modules.</li>
-<li>Internal DTD subsets that did not specify a system or public ID were
-not serialised and did not appear in the docinfo property of
-ElementTrees.</li>
-<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
-<li>Test suite fixes for libxml2 2.7.</li>
-<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
-<li>Resolver.resolve_file() was broken.</li>
-<li>Overriding the parser encoding didn't work for many encodings.</li>
-</ul>
-</div>
-<div class="section" id="id197">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id198">
-<h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id199">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id200">
-<h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id201">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.etree now tries to find the absolute path name of files when
-parsing from a file-like object.  This helps custom resolvers when
-resolving relative URLs, as lixbml2 can prepend them with the path
-of the source document.</li>
-</ul>
-</div>
-<div class="section" id="id202">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-<div class="section" id="id203">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id204">
-<h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id205">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id206">
-<h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id207">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id208">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>Encoding problem when including text with ElementInclude under
-Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id209">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id210">
-<h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id211">
-<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="id212">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id213">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id214">
-<h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id215">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
-keyword option).</li>
-<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="id216">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Custom resolvers were not used for XMLSchema includes/imports and
-XInclude processing.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id217">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
-<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
-<li>Speed-up when running XSLTs on documents from other threads</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id218">
-<h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id219">
-<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="id220">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Descending dot-separated classes in CSS selectors were not resolved
-correctly.</li>
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Potential threading problem in XInclude.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-</ul>
-</div>
-<div class="section" id="id221">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2008-06-19">
-<h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id222">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-<li>Support for parsing from file-like objects that return unicode
-strings.</li>
-<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
-namespace declarations from a (sub)tree (experimental).</li>
-<li>XSLT results support the buffer protocol in Python 3.</li>
-<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
-a parsable string will return either a UTF-8 encoded byte string, a
-unicode string or a tree, based on the type of the input.
-Previously, the result was always a byte string or a tree.</li>
-<li>Support for Python 2.6 and 3.0 beta.</li>
-<li>File name handling now uses a heuristic to convert between byte
-strings (usually filenames) and unicode strings (usually URLs).</li>
-<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
-<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
-on reading under Python 2.x.</li>
-<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
-lxml.html (experimental).</li>
-<li>Most features in lxml.html work for XHTML namespaced tag names
-(experimental).</li>
-</ul>
-</div>
-<div class="section" id="id223">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-<li>A number of problems related to unicode/byte string conversion of
-filenames and error messages were fixed.</li>
-<li>Building on MacOS-X now passes the &quot;flat_namespace&quot; option to the C
-compiler, which reportedly prevents build quirks and crashes on this
-platform.</li>
-<li>Windows build was broken.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id224">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
-namespaces, etc. will result in a ValueError instead of an
-AssertionError (just like the tag well-formedness check).</li>
-<li>Up to several times faster attribute access (i.e. tree traversal) in
-lxml.objectify.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id225">
-<h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id226">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id227">
-<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>
-<li>Windows build was broken.</li>
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-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="id228">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml should now build without problems on MacOS-X.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2008-05-02">
-<h1>2.1beta2 (2008-05-02)</h1>
-<div class="section" id="id229">
-<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>
-<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
-attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
-pre-configured for the lxml.html package.</li>
-</ul>
-</div>
-<div class="section" id="id230">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Passing an nsmap when creating an Element will no longer strip
-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="id231">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>If the default namespace is redundantly defined with a prefix on the
-same Element, the prefix will now be preferred for subelements and
-attributes.  This allows users to work around a problem in libxml2
-where attributes from the default namespace could serialise without
-a prefix even when they appear on an Element with a different
-namespace (i.e. they would end up in the wrong namespace).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id232">
-<h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id233">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id234">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-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="id235">
-<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="id236">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
-<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
-sections.  Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
-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="id237">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
-<li>lxml.etree accepted non well-formed namespace prefix names.</li>
-</ul>
-</div>
-<div class="section" id="id238">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
-takes care of namespace cleanup when moving elements between
-different namespace contexts.</li>
-<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
-parser or through lxml.html now end up in a new HTML document
-(doctype HTML 4.01 Transitional) instead of a generic XML document.
-This mostly impacts the serialisation and the availability of a DTD
-context.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id239">
-<h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id240">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id241">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Hanging thread in conjunction with GTK threading.</li>
-<li>Crash bug in iterparse when moving elements into other documents.</li>
-<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</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="id242">
-<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="id243">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
-<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
-returns a dict of access configuration options.</li>
-<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
-<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
-<li>Extension elements for XSLT (experimental!)</li>
-<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
-an Element.</li>
-<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
-</ul>
-</div>
-<div class="section" id="id244">
-<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="id245">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Minor API speed-ups.</li>
-<li>The benchmark suite now uses tail text in the trees, which makes the
-absolute numbers incomparable to previous results.</li>
-<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
-used to enable syntax highlighting for the doctest examples.</li>
-</ul>
-<p>Most long-time deprecated functions and methods were removed:</p>
-<ul>
-<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
-<tt class="docutils literal">etree.use_global_python_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
-<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
-<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
-<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
-yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
-instead.</p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
-<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
-<tt class="docutils literal">objectify.set_default_parser()</tt></p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id246">
-<h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id247">
-<h2>Features added</h2>
-<ul class="simple">
-<li>soupparser.parse() allows passing keyword arguments on to
-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="id248">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
-<tt class="docutils literal">&lt;br&gt;</tt>).</li>
-<li>Handle entity replacements correctly in target parser.</li>
-<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
-<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
-which made them turn up in text content.</li>
-<li>Attribute assignment of custom PyTypes in objectify could fail to
-correctly serialise the value to a string.</li>
-</ul>
-</div>
-<div class="section" id="id249">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
-<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API.  The old module
-remains for compatibility with ElementTree's own ElementSoup module.</li>
-<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
-build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
-<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
-compiler options.  The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
-option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id250">
-<h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id251">
-<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="id252">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The prefix for objectify's pytype namespace was missing from the set
-of default prefixes.</li>
-<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
-<li>Error type names in RelaxNG were reported incorrectly.</li>
-<li>Slice deletion bug fixed in objectify.</li>
-</ul>
-</div>
-<div class="section" id="id253">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
-<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
-(<tt class="docutils literal"><span class="pre">method=&quot;xml&quot;</span></tt> for XHTML output).</li>
-<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
-<tt class="docutils literal">base_url</tt> argument.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id254">
-<h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id255">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
-<li>Loads of new docstrings reflect the signature of functions and
-methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
-</ul>
-</div>
-<div class="section" id="id256">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
-<tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
-was an unnamed input field.  Now unnamed input fields are completely
-ignored.</li>
-<li>Setting an element slice in objectify could insert slice-overlapping
-elements at the wrong position.</li>
-</ul>
-</div>
-<div class="section" id="id257">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The generated API documentation was cleaned up and disburdened from
-non-public classes etc.</li>
-<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
-<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml.  If
-you want to use it, feel free to copy it over to your own source
-base.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
-compiler options.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id258">
-<h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id259">
-<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
-serialise to unicode.  The <tt class="docutils literal">tounicode()</tt> function is now
-deprecated.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
-<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
-parser with the usual objectify setup.</li>
-<li>Plain ASCII XPath string results are no longer forced into unicode
-objects as in 2.0beta1, but are returned as plain strings as before.</li>
-<li>All XPath string results are 'smart' objects that have a
-<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
-<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
-<li>More accurate exception messages in validator creation.</li>
-<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
-<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
-selection make their Element container accessible through a
-<tt class="docutils literal">getparent()</tt> method.  As a side-effect, they are now always
-unicode objects (even ASCII strings).</li>
-<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
-copy if they were not created in that thread.</li>
-<li>Invalid entity names and character references will be rejected by
-the <tt class="docutils literal">Entity()</tt> factory.</li>
-<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
-e.g. <tt class="docutils literal">&amp;amp;</tt>.</li>
-<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
-in ET 1.3)</li>
-<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
-<li>ElementTree compatible TreeBuilder class.</li>
-<li>Use default prefixes for some common XML namespaces.</li>
-<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
-two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
-more general <tt class="docutils literal">allow_element(el)</tt>.</li>
-<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
-etree and in objectify</li>
-<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
-resolving a document as string data.</li>
-<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
-<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
-the special checking for one test.</li>
-<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
-The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
-<tt class="docutils literal">error_log</tt>.</li>
-<li>The normal parsers and the feed parser interface are now separated
-and can be used concurrently on the same parser instance.</li>
-<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
-ElementTree 1.3</li>
-<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
-parsing with the HTML parser (note that this interface may be
-subject to change)</li>
-<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
-of the parsed documents.</li>
-<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
-<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
-types in one step.  Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
-<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
-argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
-serialise as XML, HTML or plain text content.</li>
-<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
-<tt class="docutils literal">findall()</tt></li>
-<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
-<li>Setting a QName object as value of the .text property or as an attribute
-will resolve its prefix in the respective context</li>
-<li>ElementTree-like parser target interface as described in
-<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
-<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
-(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
-<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
-integration with objectify.  Provides extended type support based on
-registered PyTypes.</li>
-<li>XSLT objects now support deep copying</li>
-<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
-subelement straight with text, tail and attributes.</li>
-<li>XPath extension functions can now access the current context node
-(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
-(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
-parameter</li>
-<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
-<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
-doctests based on XML/HTML output.  Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
-<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
-<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
-selectors.</li>
-<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
-treatment.</li>
-<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
-instance and no longer global.</li>
-<li>Schematron validation (incomplete in libxml2)</li>
-<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
-conversion function to strings to support setting text values from arbitrary
-types.</li>
-<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes.  XML
-parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
-False to keep entities in the document.</li>
-<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
-<li>Error specific messages in XPath parsing and evaluation
-NOTE: for evaluation errors, you will now get an XPathEvalError instead of
-an XPathSyntaxError.  To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
-<li>The regular expression functions in XPath now support passing a node-set
-instead of a string</li>
-<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
-<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
-</ul>
-</div>
-<div class="section" id="id260">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
-<li>Some Python 2.4-isms prevented lxml from building/running under
-Python 2.3.</li>
-<li>XPath on ElementTrees could crash when selecting the virtual root
-node of the ElementTree.</li>
-<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
-<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
-<li>Minor bugs in XSLT error message formatting.</li>
-<li>Result document memory leak in target parser.</li>
-<li>Target parser failed to report comments.</li>
-<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal">&lt;object&gt;</tt>
-tags weren't recognized.  (Note: plugin-specific link parameters
-still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</tt> tag, though not
-standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
-<li>Using custom resolvers on XSLT stylesheets parsed from a string
-could request ill-formed URLs.</li>
-<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</span></tt> in your
-output, it will then be namespace-neutral (before the ellipsis was
-treated as a real namespace).</li>
-<li>AttributeError in feed parser on parse errors</li>
-<li>XML feed parser setup problem</li>
-<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
-<li>lxml failed to serialise namespace declarations of elements other than the
-root node of a tree</li>
-<li>Race condition in XSLT where the resolver context leaked between concurrent
-XSLT calls</li>
-<li>lxml.etree did not check tag/attribute names</li>
-<li>The XML parser did not report undefined entities as error</li>
-<li>The text in exceptions raised by XML parsers, validators and XPath
-evaluators now reports the first error that occurred instead of the last</li>
-<li>Passing '' as XPath namespace prefix did not raise an error</li>
-<li>Thread safety in XPath evaluators</li>
-</ul>
-</div>
-<div class="section" id="id261">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Exceptions carry only the part of the error log that is related to
-the operation that caused the error.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
-file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
-<li>The test suite now skips most doctests under Python 2.3.</li>
-<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
-realclean</tt> instead)</li>
-<li>Minor performance tweaks for Element instantiation and subelement
-creation</li>
-<li>Various places in the XPath, XSLT and iteration APIs now require
-keyword-only arguments.</li>
-<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
-match the order used in all other iteration methods.  The second
-argument ('preceding') is now a keyword-only argument.</li>
-<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
-reverted to return an iterator as it did in lxml 1.x.  The ET API
-specification allows it to return either a sequence or an iterator,
-and it traditionally returned a sequence in ET and an iterator in
-lxml.  However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
-method, which should be used in new code wherever possible.</li>
-<li>The 'pretty printed' serialisation of ElementTree objects now
-inserts newlines at the root level between processing instructions,
-comments and the root tag.</li>
-<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
-<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
-required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
-<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
-<li>The module source files were renamed to &quot;lxml.*.pyx&quot;, such as
-&quot;lxml.etree.pyx&quot;.  This was changed for consistency with the way
-Pyrex commonly handles package imports.  The main effect is that
-classes now know about their fully qualified class name, including
-the package name of their module.</li>
-<li>Keyword-only arguments in some API functions, especially in the
-parsers and serialisers.</li>
-<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
-between HTML tags and XML tags based on the parser that was used to
-parse or create them.  HTML tags no longer reject any non-ASCII
-characters in tag names but only spaces and the special characters
-<tt class="docutils literal"><span class="pre">&lt;&gt;&amp;/&quot;'</span></tt>.</li>
-<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
-(which can crash on certain XPath errors)</li>
-<li>Type annotation in objectify now preserves the already annotated type by
-default to prevent losing type information that is already there.</li>
-<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
-an iterator (ElementTree 1.3 compatible behaviour)</li>
-<li>objectify.PyType for None is now called &quot;NoneType&quot;</li>
-<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
-original name is still available as alias</li>
-<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
-generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
-<li>Major refactoring in XPath/XSLT extension function code</li>
-<li>Network access in parsers disabled by default</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id262">
-<h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id263">
-<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="id264">
-<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>
-methods.  While this makes them take a lot longer to run, it also
-makes it easier to link a specific test to garbage collection
-problems that would otherwise appear in later tests.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id265">
-<h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id266">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id267">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.etree could crash when adding more than 10000 namespaces to a
-document</li>
-<li>lxml failed to serialise namespace declarations of elements other
-than the root node of a tree</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id268">
-<h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id269">
-<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
-<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
-creates.</li>
-<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
-and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
-subset of the document respectively.</li>
-<li>Serialising an ElementTree now includes any internal DTD subsets that are
-part of the document, as well as comments and PIs that are siblings of the
-root node.</li>
-</ul>
-</div>
-<div class="section" id="id270">
-<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="id271">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
-an Error as 1.3.3 did.  The reason is that a number of projects currently
-misuse the previous lack of tag name validation to generate namespace
-prefixes without declaring namespaces.  Apart from the danger of generating
-broken XML this way, it also breaks most of the namespace-aware tools in
-XML, including XPath, XSLT and validation.  lxml 1.3.x will continue to
-support this bug with a Warning, while lxml 2.0 will be strict about
-well-formed tag names (not only regarding ':').</li>
-<li>Serialising an Element no longer includes its comment and PI siblings (only
-ElementTree serialisation includes them).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id272">
-<h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id273">
-<h2>Features added</h2>
-<ul class="simple">
-<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
-instructions and comments while parsing XML</li>
-<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
-<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
-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="id274">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing from Python Unicode strings failed on some platforms</li>
-<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id275">
-<h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id276">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id277">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>&quot;deallocating None&quot; crash bug</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id278">
-<h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id279">
-<h2>Features added</h2>
-<ul class="simple">
-<li>objectify.DataElement now supports setting values from existing data
-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="id280">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Better way to prevent crashes in Element proxy cleanup code</li>
-<li>objectify.DataElement didn't set up None value correctly</li>
-<li>objectify.DataElement didn't check the value against the provided type hints</li>
-<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id281">
-<h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id282">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
-scheme that can access the entire tree in read-only mode to help determining
-a suitable Element class</li>
-<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
-<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
-<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
-adding processing instructions and comments around the root node</li>
-<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
-<li>Extended type annotation in objectify: cleaner annotation namespace setup
-plus new <tt class="docutils literal">deannotate()</tt> function</li>
-<li>Support for custom Element class instantiation in lxml.sax: passing a
-<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
-lookup context of that function</li>
-<li>'.' represents empty ObjectPath (identity)</li>
-<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
-<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
-keys/values/items for a libxml2 node</li>
-<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
-<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
-<li>Support for pickeling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
-<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
-<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
-a better handling of namespaces when moving elements between documents.</li>
-</ul>
-</div>
-<div class="section" id="id283">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Removing Elements from a tree could make them lose their namespace
-declarations</li>
-<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
-<li>Replacing the children slice of an Element would cut off the tails of the
-original children</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
-<li>API functions now check incoming strings for XML conformity.  Zero bytes or
-low ASCII characters are no longer accepted (AssertionError).</li>
-<li>XSLT parsing failed to pass resolver context on to imported documents</li>
-<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
-<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
-<li>More ET compatible behaviour when writing out XML declarations or not</li>
-<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
-<li>Documents lost their top-level PIs and comments on serialisation</li>
-<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
-PIs are copied.</li>
-<li>Possible memory leaks in namespace handling when moving elements between
-documents</li>
-</ul>
-</div>
-<div class="section" id="id284">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>major restructuring in the documentation</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id285">
-<h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id286">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Build fixes for MS compiler</li>
-<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element[&quot;text&quot;]</span></tt> failed</li>
-<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
-to access</li>
-<li>The pattern for attribute names in ObjectPath was too restrictive</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id287">
-<h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id288">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Rich comparison of QName objects</li>
-<li>Support for regular expressions in benchmark selection</li>
-<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
-<li>ElementInclude Python module for ElementTree compatible XInclude processing
-that honours custom resolvers registered with the source document</li>
-<li>ElementTree.parser property holds the parser used to parse the document</li>
-<li>setup.py has been refactored for greater readability and flexibility</li>
-<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
-runtime search paths has been renamed to --auto-rpath. This makes it
-possible to pass an --rpath directly to distutils; previously this was being
-shadowed.</li>
-</ul>
-</div>
-<div class="section" id="id289">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Element instantiation now uses locks to prevent race conditions with threads</li>
-<li>ElementTree.write() did not raise an exception when the file was not writable</li>
-<li>Error handling could crash under Python &lt;= 2.4.1 - fixed by disabling thread
-support in these environments</li>
-<li>Element.find*() did not accept QName objects as path</li>
-</ul>
-</div>
-<div class="section" id="id290">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>code cleanup: redundant _NodeBase super class merged into _Element class
-Note: although the impact should be zero in most cases, this change breaks
-the compatibility of the public C-API</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id291">
-<h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id292">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Data elements in objectify support repr(), which is now used by dump()</li>
-<li>Source distribution now ships with a patched Pyrex</li>
-<li>New C-API function makeElement() to create new elements with text,
-tail, attributes and namespaces</li>
-<li>Reuse original parser flags for XInclude</li>
-<li>Simplified support for handling XSLT processing instructions</li>
-</ul>
-</div>
-<div class="section" id="id293">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parser resources were not freed before the next parser run</li>
-<li>Open files and XML strings returned by Python resolvers were not
-closed/freed</li>
-<li>Crash in the IDDict returned by XMLDTDID</li>
-<li>Copying Comments and ProcessingInstructions failed</li>
-<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
-<li>Memory leak when garbage collecting tailed root elements</li>
-<li>HTML script/style content was not propagated to .text</li>
-<li>Show text xincluded between text nodes correctly in .text and .tail</li>
-<li>'integer * objectify.StringElement' operation was not supported</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id294">
-<h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id295">
-<h2>Features added</h2>
-<ul class="simple">
-<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
-<li>countchildren() method on objectify.ObjectifiedElement</li>
-<li>Support custom elements for tree nodes in lxml.objectify</li>
-</ul>
-</div>
-<div class="section" id="id296">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
-<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
-<li>Factories objectify.Element() and objectify.DataElement() were missing
-<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
-<li>Changing the default parser in lxml.objectify did not update the factories
-Element() and DataElement()</li>
-<li>Let lxml.objectify.Element() always generate tree elements (not data
-elements)</li>
-<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id297">
-<h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id298">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Comments and processing instructions return '&lt;!-- comment --&gt;' and
-'&lt;?pi-target content?&gt;' for repr()</li>
-<li>Parsers are now the preferred (and default) place where element class lookup
-schemes should be registered.  Namespace lookup is no longer supported by
-default.</li>
-<li>Support for Python 2.5 beta</li>
-<li>Unlock the GIL for deep copying documents and for XPath()</li>
-<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
-<li>Support for parser options in iterparse()</li>
-<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
-tuples</li>
-<li>The XPath expression &quot;/&quot; now returns an empty list instead of raising an
-exception</li>
-<li>XML-Object API on top of lxml (lxml.objectify)</li>
-<li>Customizable Element class lookup:<ul>
-<li>different pre-implemented lookup mechanisms</li>
-<li>support for externally provided lookup functions</li>
-</ul>
-</li>
-<li>Support for processing instructions (ET-like, not compatible)</li>
-<li>Public C-level API for independent extension modules</li>
-<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
-<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
-documentation for differences)</li>
-<li>Element.nsmap property returns a mapping of all namespace prefixes known at
-the Element to their namespace URI</li>
-<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
-<li>Threading support in parsers and serializers:<ul>
-<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
-<li>File operations (on file names) free the GIL</li>
-<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
-<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
-</ul>
-</li>
-<li>Element iteration over XPath axes:<ul>
-<li>Element.iterdescendants() iterates over the descendants of an element</li>
-<li>Element.iterancestors() iterates over the ancestors of an element (from
-parent to parent)</li>
-<li>Element.itersiblings() iterates over either the following or preceding
-siblings of an element</li>
-<li>Element.iterchildren() iterates over the children of an element in either
-direction</li>
-<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
-generated elements</li>
-</ul>
-</li>
-<li>Element.getnext() and Element.getprevious() return the direct siblings of an
-element</li>
-</ul>
-</div>
-<div class="section" id="id299">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>filenames with local 8-bit encoding were not supported</li>
-<li>1.1beta did not compile under Python 2.3</li>
-<li>ignore unknown 'pyval' attribute values in objectify</li>
-<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
-<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
-<li>XPathSyntaxError now inherits from XPathError</li>
-<li>Threading race conditions in RelaxNG and XMLSchema</li>
-<li>Crash when mixing elements from XSLT results into other trees, concurrent
-XSLT is only allowed when the stylesheet was parsed in the main thread</li>
-<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
-differences in the regular expression syntax)</li>
-<li>Setting element.text to '' returned None on request, not the empty string</li>
-<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
-<li>Creating documents no longer copies the parser for later URL resolving.  For
-performance reasons, only a reference is kept.  Resolver updates on the
-parser will now be reflected by documents that were parsed before the
-change.  Although this should rarely become visible, it is a behavioral
-change from 1.0.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id300">
-<h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id301">
-<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="id302">
-<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="id303">
-<h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id304">
-<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="id305">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when mixing elements from XSLT results into other trees</li>
-<li>Copying/deepcopying did not work for ElementTree objects</li>
-<li>Setting an attribute to a non-string value did not raise an exception</li>
-<li>Element.remove() deleted the tail text from the removed Element</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id306">
-<h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id307">
-<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="id308">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Rare exceptions in Python list functions were not handled</li>
-<li>Parsing accepted unicode strings with XML encoding declaration in certain
-cases</li>
-<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
-<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
-<li>XSLT and parser exception messages include the error line number</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id309">
-<h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id310">
-<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="id311">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Document deallocation could crash in certain garbage collection scenarios</li>
-<li>Extension function calls in XSLT variable declarations could break the
-stylesheet and crash on repeated calls</li>
-<li>Deep copying Elements could lose namespaces declared in parents</li>
-<li>Deep copying Elements did not copy tail</li>
-<li>Parsing file(-like) objects failed to load external entities</li>
-<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
-<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
-<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
-<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id312">
-<h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id313">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.getiterator() and the findall() methods support finding arbitrary
-elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
-<li>Another speedup in tree iteration code</li>
-<li>General speedup of Python Element object creation and deallocation</li>
-<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
-<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
-<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
-document that contains the element.</li>
-<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
-find the element in the tree structure</li>
-<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
-<li>Comment texts can be changed through the API</li>
-<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
-<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
-<li>ElementTree.write() no longer serializes in memory (reduced memory
-footprint)</li>
-<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
-<li>Support for writing the XML representation of Elements and ElementTrees to
-Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
-<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
-<li>Parsing a unicode string no longer copies the string (reduced memory
-footprint)</li>
-<li>Parsing file-like objects reads chunks rather than the whole file (reduced
-memory footprint)</li>
-<li>Parsing StringIO objects from the start avoids copying the string (reduced
-memory footprint)</li>
-<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
-information, original encoding and XML version as seen by the parser</li>
-<li>etree module can be compiled without libxslt by commenting out the line
-<tt class="docutils literal">include &quot;xslt.pxi&quot;</tt> near the end of the etree.pyx source file</li>
-<li>Better error messages in parser exceptions</li>
-<li>Error reporting also works in XSLT</li>
-<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
-resolvers are registered at parser level</li>
-<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
-enabled by default, can be switched off with 'regexp=False' keyword argument</li>
-<li>Support for exslt extensions (libexslt) and libxslt extra functions
-(node-set, document, write, output)</li>
-<li>Substantial speedup in XPath.evaluate()</li>
-<li>HTMLParser for parsing (broken) HTML</li>
-<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
-implementation of libxml2 (as opposed to ET compatible XMLID)</li>
-</ul>
-</div>
-<div class="section" id="id314">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in Element.__setitem__</li>
-<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
-<li>Memory leak in XPath extension functions</li>
-<li>Memory leak in unicode related setup code</li>
-<li>Element now raises ValueError on empty tag names</li>
-<li>Namespace fixing after moving elements between documents could fail if the
-source document was freed too early</li>
-<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -&gt; 't')
-didn't reset the namespace</li>
-<li>Unknown constants from newer libxml2 versions could raise exceptions in the
-error handlers</li>
-<li>lxml.etree compiles much faster</li>
-<li>On libxml2 &lt;= 2.6.22, parsing strings with encoding declaration could fail
-in certain cases</li>
-<li>Document reference in ElementTree objects was not updated when the root
-element was moved to a different document</li>
-<li>Running absolute XPath expressions on an Element now evaluates against the
-root tree</li>
-<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
-<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
-objects</li>
-<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
-<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
-<li>Memory leak when using iconv encoders in tostring/write</li>
-<li>Deep copying Elements and ElementTrees maintains the document information</li>
-<li>Serialization functions raise LookupError for unknown encodings</li>
-<li>Memory deallocation crash resulting from deep copying elements</li>
-<li>Some ElementTree methods could crash if the root node was not initialized
-(neither file nor element passed to the constructor)</li>
-<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
-dictionary</li>
-<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
-<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
-<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
-ElementTree root node as reference point</li>
-<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id315">
-<h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id316">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Speedup for Element.makeelement(): the new element reuses the original
-libxml2 document instead of creating a new empty one</li>
-<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
-<li>ElementTree compatible QName class</li>
-<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
-</ul>
-</div>
-<div class="section" id="id317">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
-<li>Memory leak if write_c14n fails to write the file after conversion</li>
-<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
-<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id318">
-<h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id319">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
-SaxError on mismatch</li>
-<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
-(startElement, endElement) and defaults to empty attributes (keyword
-argument)</li>
-<li>Speedup for repeatedly accessing element tag names</li>
-<li>Minor API performance improvements</li>
-</ul>
-</div>
-<div class="section" id="id320">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
-<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
-<li>lxml.tests package will no longer be installed (is still in source tar)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id321">
-<h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id322">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging API for libxml2 error messages</li>
-<li>Various performance improvements</li>
-<li>Benchmark script for lxml, ElementTree and cElementTree</li>
-<li>Support for registering extension functions through new FunctionNamespace
-class (see doc/extensions.txt)</li>
-<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
-<li>Support for variables in XPath expressions (also in XPath class)</li>
-<li>XPath class for compiled XPath expressions</li>
-<li>XMLID module level function (ElementTree compatible)</li>
-<li>XMLParser API for customized libxml2 parser configuration</li>
-<li>Support for custom Element classes through new Namespace API (see
-doc/namespace_extensions.txt)</li>
-<li>Common exception base class LxmlError for module exceptions</li>
-<li>real iterator support in iter(Element), Element.getiterator()</li>
-<li>XSLT objects are callable, result trees support str()</li>
-<li>Added MANIFEST.in for easier creation of RPM files.</li>
-<li>'getparent' method on elements allows navigation to an element's
-parent element.</li>
-<li>Python core compatible SAX tree builder and SAX event generator. See
-doc/sax.txt for more information.</li>
-</ul>
-</div>
-<div class="section" id="id323">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Segfaults and memory leaks in various API functions of Element</li>
-<li>Segfault in XSLT.tostring()</li>
-<li>ElementTree objects no longer interfere, Elements can be root of different
-ElementTrees at the same time</li>
-<li>document('') works in XSLT documents read from files (in-memory documents
-cannot support this due to libxslt deficiencies)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id324">
-<h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id325">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
-does the same thing, and does <em>not</em> create a shallow copy, as that
-makes no sense in the context of libxml2 trees. This means a
-potential incompatibility with ElementTree, but there's more chance
-that it works than if copy.copy() isn't supported at all.</li>
-<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
-supported and parsing of gzipped XML files works.</li>
-<li>implemented index() on elements, allowing one to find the index of a
-SubElement.</li>
-</ul>
-</div>
-<div class="section" id="id326">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Use xslt-config instead of xml2-config to find out libxml2
-directories to take into account a case where libxslt is installed
-in a different directory than libxslt.</li>
-<li>Eliminate crash condition in iteration when text nodes are changed.</li>
-<li>Passing 'None' to tostring() does not result in a segfault anymore,
-but an AssertionError.</li>
-<li>Some test fixes for Windows.</li>
-<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
-syntax errors. This should be less confusing.</li>
-<li>Fixed error with uncaught exception in Pyrex code.</li>
-<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
-segfault.</li>
-<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
-<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
-libxml2 version, as it should.</li>
-<li>Passing a UTF-8 encoded string to the XML() function would fail;
-fixed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id327">
-<h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id328">
-<h2>Features added</h2>
-<ul class="simple">
-<li>parameters (XPath expressions) can be passed to XSLT using keyword
-parameters.</li>
-<li>Simple XInclude support. Calling the xinclude() method on a tree
-will process any XInclude statements in the document.</li>
-<li>XMLSchema support. Use the XMLSchema class or the convenience
-xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
-<li>Added convenience xslt() method on tree. This is less efficient
-than the XSLT object, but makes it easier to write quick code.</li>
-<li>Added convenience relaxng() method on tree. This is less efficient
-than the RelaxNG object, but makes it easier to write quick code.</li>
-<li>Make it possible to use XPathEvaluator with elements as well. The
-XPathEvaluator in this case will retain the element so multiple
-XPath queries can be made against one element efficiently. This
-replaces the second argument to the .evaluate() method that existed
-previously.</li>
-<li>Allow registerNamespace() to be called on an XPathEvaluator, after
-creation, to add additional namespaces. Also allow registerNamespaces(),
-which does the same for a namespace dictionary.</li>
-<li>Add 'prefix' attribute to element to be able to read prefix information.
-This is entirely read-only.</li>
-<li>It is possible to supply an extra nsmap keyword parameter to
-the Element() and SubElement() constructors, which supplies a
-prefix to namespace URI mapping. This will create namespace
-prefix declarations on these elements and these prefixes will show up
-in XML serialization.</li>
-</ul>
-</div>
-<div class="section" id="id329">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Killed yet another memory management related bug: trees created
-using newDoc would not get a libxml2-level dictionary, which caused
-problems when deallocating these documents later if they contained a
-node that came from a document with a dictionary.</li>
-<li>Moving namespaced elements between documents was problematic as
-references to the original document would remain. This has been fixed
-by applying xmlReconciliateNs() after each move operation.</li>
-<li>Can pass None to 'dump()' without segfaults.</li>
-<li>tostring() works properly for non-root elements as well.</li>
-<li>Cleaned out the tostring() method so it should handle encoding
-correctly.</li>
-<li>Cleaned out the ElementTree.write() method so it should handle encoding
-correctly. Writing directly to a file should also be faster, as there is no
-need to go through a Python string in that case. Made sure the test cases
-test both serializing to StringIO as well as serializing to a real file.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id330">
-<h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id331">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Changed setup.py so that library_dirs is also guessed. This should
-help with compilation on the Mac OS X platform, where otherwise the
-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="id332">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Do the right thing when handling namespaced attributes.</li>
-<li>fix bug where tostring() moved nodes into new documents. tostring()
-had very nasty side-effects before this fix, sorry!</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id333">
-<h1>0.5.1 (2005-04-09)</h1>
-<ul class="simple">
-<li>Python 2.2 compatibility fixes.</li>
-<li>unicode fixes in Element() and Comment() as well as XML(); unicode
-input wasn't properly being UTF-8 encoded.</li>
-</ul>
-</div>
-<div class="section" id="id334">
-<h1>0.5 (2005-04-08)</h1>
-<p>Initial public release.</p>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2015-11-13.
-
-</div>
-</body>
-</html>
diff --git a/doc/html/changes-3.5.dev.html b/doc/html/changes-3.5.dev.html
deleted file mode 100644 (file)
index e58cd4c..0000000
+++ /dev/null
@@ -1,3004 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
-<title>lxml changelog</title>
-<link rel="stylesheet" href="style.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="lxml-changelog">
-<h1 class="title">lxml changelog</h1>
-
-<div class="section" id="latest-changes">
-<h1>Latest changes</h1>
-<div class="section" id="features-added">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">top_nsmap</tt> that
-moves definitions of the provided prefix-namespace mapping to the
-top of the tree.</li>
-<li>API functions and methods behave and look more like Python functions,
-which allows introspection on them etc.  One side effect to be aware of
-is that the functions now bind as methods when assigned to a class
-variable.  A quick fix is to wrap them in <tt class="docutils literal">staticmethod()</tt> (as for
-normal Python functions).</li>
-<li>ISO-Schematron support gained an option <tt class="docutils literal">error_finder</tt> that allows
-passing a filter function for picking validation errors from reports.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1243600">LP#1243600</a>: Elements in <tt class="docutils literal">lxml.html</tt> gained a <tt class="docutils literal">classes</tt> property
-that provides a set-like interface to the <tt class="docutils literal">class</tt> attribute.
-Original patch by masklinn.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1341964">LP#1341964</a>: The soupparser now handles DOCTYPE declarations, comments
-and processing instructions outside of the root element.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421512">LP#1421512</a>: The <tt class="docutils literal">docinfo</tt> of a tree was made editable to allow
-setting and removing the public ID and system ID of the DOCTYPE.
-Patch by Olli Pottonen.</li>
-</ul>
-</div>
-<div class="section" id="bugs-fixed">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory errors that occur during tree adaptations (e.g. moving subtrees
-to foreign documents) could leave the tree in a crash prone state.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/159">GH#159</a>: Validity checks for names and string content were tightened
-to detect the use of illegal characters early.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421921">LP#1421921</a>: Comments/PIs before the DOCTYPE declaration were not
-serialised.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/659367">LP#659367</a>: Some HTML DOCTYPE declarations were not serialised.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238503">LP#1238503</a>: lxml.doctestcompare is now consistent with stdlib's doctest
-in how it uses <tt class="docutils literal">+</tt> and <tt class="docutils literal">-</tt> to refer to unexpected and missing output.</li>
-<li>Empty prefixes are explicitly rejected when a namespace mapping is used
-with ElementPath to avoid hiding bugs in user code.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id1">
-<h1>3.4.3 (?)</h1>
-<div class="section" id="id2">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1426868">LP#1426868</a>: Passing a default namespace and a prefixed namespace mapping
-as nsmap into <tt class="docutils literal">xmlfile.element()</tt> raised a <tt class="docutils literal">TypeError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421927">LP#1421927</a>: DOCTYPE system URLs were incorrectly quoted when containing
-double quotes.  Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1419354">LP#1419354</a>: meta-redirect URLs were incorrectly processed by
-<tt class="docutils literal">iterlinks()</tt> if preceded by whitespace.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id3">
-<h1>3.4.2 (2015-02-07)</h1>
-<div class="section" id="id4">
-<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
-of an XML document.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1369362">LP#1369362</a>: HTML cleaning failed when hitting processing instructions
-with pseudo-attributes.</li>
-<li><tt class="docutils literal">CDATA()</tt> wrapped content was rejected for tail text.</li>
-<li>CDATA sections were not serialised as tail text of the top-level element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id5">
-<h1>3.4.1 (2014-11-20)</h1>
-<div class="section" id="id6">
-<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="id7">
-<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="id8">
-<h1>3.4.0 (2014-09-10)</h1>
-<div class="section" id="id9">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
-content after each API operation (starting/ending element blocks or writes).
-A new method <tt class="docutils literal">xf.flush()</tt> can alternatively be used to explicitly flush
-the output.</li>
-<li><tt class="docutils literal">lxml.html.document_fromstring</tt> has a new option <tt class="docutils literal">ensure_head_body=True</tt>
-which will add an empty head and/or body element to the result document if
-missing.</li>
-<li><tt class="docutils literal">lxml.html.iterlinks</tt> now returns links inside meta refresh tags.</li>
-<li>New <tt class="docutils literal">XMLParser</tt> option <tt class="docutils literal">collect_ids=False</tt> to disable ID hash table
-creation.  This can substantially speed up parsing of documents with many
-different IDs that are not used.</li>
-<li>The parser uses per-document hash tables for XML IDs.  This reduces the
-load of the global parser dict and speeds up parsing for documents with
-many different IDs.</li>
-<li><tt class="docutils literal">ElementTree.getelementpath(element)</tt> returns a structural ElementPath
-expression for the given element, which can be used for lookups later.</li>
-<li><tt class="docutils literal">xmlfile()</tt> accepts a new argument <tt class="docutils literal">close=True</tt> to close file(-like)
-objects after writing to them.  Before, <tt class="docutils literal">xmlfile()</tt> only closed the file
-if it had opened it internally.</li>
-<li>Allow &quot;bytearray&quot; type for ASCII text input.</li>
-</ul>
-</div>
-<div class="section" id="id10">
-<h2>Bugs fixed</h2>
-</div>
-<div class="section" id="other-changes">
-<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.
-Previously, they could lead to an internal tree representation in a mixed
-encoding state, which lead to very late errors or even silently incorrect
-behaviour during tree traversal or serialisation.</li>
-<li>Requires Python 2.6, 2.7, 3.2 or later. No longer supports
-Python 2.4, 2.5 and 3.1, use lxml 3.3.x for those.</li>
-<li>Requires libxml2 2.7.0 or later and libxslt 1.1.23 or later,
-use lxml 3.3.x with older versions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id11">
-<h1>3.3.6 (2014-08-28)</h1>
-<div class="section" id="id12">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Prevent tree cycle creation when adding Elements as siblings.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1361948">LP#1361948</a>: crash when deallocating Element siblings without parent.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1354652">LP#1354652</a>: crash when traversing internally loaded documents in XSLT
-extension functions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id13">
-<h1>3.3.5 (2014-04-18)</h1>
-<div class="section" id="id14">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning could fail to strip javascript links that mix control
-characters into the link scheme.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id15">
-<h1>3.3.4 (2014-04-03)</h1>
-<div class="section" id="id16">
-<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="id17">
-<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="id18">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id19">
-<h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id20">
-<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="id21">
-<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
-subclassed from Python code.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id22">
-<h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id23">
-<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
-<tt class="docutils literal">set_element_class_lookup()</tt> and <tt class="docutils literal">makeelement()</tt>, were lost from
-<tt class="docutils literal">iterparse</tt> objects in 3.3.0.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1222132">LP#1222132</a>: instances of <tt class="docutils literal">XMLSchema</tt>, <tt class="docutils literal">Schematron</tt> and <tt class="docutils literal">RelaxNG</tt>
-did not clear their local <tt class="docutils literal">error_log</tt> before running a validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238500">LP#1238500</a>: lxml.doctestcompare mixed up &quot;expected&quot; and &quot;actual&quot; in
-attribute values.</li>
-<li>Some file I/O tests were failing in MS-Windows due to non-portable temp
-file usage.  Initial patch by Gabi Davar.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/910014">LP#910014</a>: duplicate IDs in a document were not reported by DTD validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185332">LP#1185332</a>: <tt class="docutils literal"><span class="pre">tostring(method=&quot;html&quot;)</span></tt> did not use HTML serialisation
-semantics for trailing tail text.  Initial patch by Sylvain Viollon.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1281139">LP#1281139</a>: <tt class="docutils literal">.attrib</tt> value of Comments lost its mutation methods
-in 3.3.0.  Even though it is empty and immutable, it should still
-provide the same interface as that returned for Elements.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id24">
-<h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id25">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id26">
-<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
-elements during tag iteration.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1273709">LP#1273709</a>: Building in PyPy failed due to missing support for
-<tt class="docutils literal">PyUnicode_Compare()</tt> and <tt class="docutils literal"><span class="pre">PyByteArray_*()</span></tt> in PyPy's C-API.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274413">LP#1274413</a>: Compilation in MSVC failed due to missing &quot;stdint.h&quot; standard
-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="id27">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id28">
-<h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id29">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id30">
-<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="id31">
-<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="id32">
-<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="id33">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Several error handling problems were fixed throughout the code base that
-could previously lead to exceptions being silently swallowed or not
-properly reported.</li>
-<li>The C-API function <tt class="docutils literal">appendChild()</tt> is now deprecated as it does not
-propagate exceptions (its return type is <tt class="docutils literal">void</tt>).  The new function
-<tt class="docutils literal">appendChildToElement()</tt> was added as a safe replacement.</li>
-<li>Passing a string into <tt class="docutils literal">fromstringlist()</tt> raises an exception instead of
-parsing the string character by character.</li>
-</ul>
-</div>
-<div class="section" id="id34">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Document cleanup code was simplified using the new GC features in
-Cython 0.20.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2014-01-12">
-<h1>3.3.0beta4 (2014-01-12)</h1>
-<div class="section" id="id35">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id36">
-<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
-objects was mutable.</li>
-<li>Element class lookup wasn't available for the new pull parsers or when using
-a custom parser target.</li>
-<li>Setting Element attributes on instantiation with both the <tt class="docutils literal">attrib</tt> argument
-and keyword arguments could modify the mapping passed as <tt class="docutils literal">attrib</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1266171">LP#1266171</a>: DTDs instantiated from internal/external subsets (i.e. through
-the docinfo property) lost their attribute declarations.</li>
-</ul>
-</div>
-<div class="section" id="id37">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
-Python 3.4.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2014-01-02">
-<h1>3.3.0beta3 (2014-01-02)</h1>
-<div class="section" id="id38">
-<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="id39">
-<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="id40">
-<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="id41">
-<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="id42">
-<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="id43">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The safety check in the read-only tree implementation (e.g. used by
-<tt class="docutils literal">PythonElementClassLookup</tt>) raises a more appropriate <tt class="docutils literal">ReferenceError</tt>
-for illegal access after tree disposal instead of an <tt class="docutils literal">AssertionError</tt>.
-This should only impact test code that specifically checks the original
-behaviour.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2013-12-12">
-<h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id44">
-<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
-<tt class="docutils literal">resolve_base_href()</tt> (lxml.html) that enables ignoring or
-discarding links that fail to parse as URLs.</li>
-<li>New parser classes <tt class="docutils literal">XMLPullParser</tt> and <tt class="docutils literal">HTMLPullParser</tt> for
-incremental parsing, as implemented for ElementTree in Python 3.4.</li>
-<li><tt class="docutils literal">iterparse()</tt> enables recovery mode by default for HTML parsing
-(<tt class="docutils literal">html=True</tt>).</li>
-</ul>
-</div>
-<div class="section" id="id45">
-<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.
-comment or PI).</li>
-<li>Error messages in the log and in exception messages that originated
-from libxml2 could accidentally be picked up from preceding warnings
-instead of the actual error.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify did not accept a dict as
-argument for adding attributes to the element it's building. This
-works as in lxml.builder now.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants, instead of running into an infinite
-loop.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-<li>lxml.html.formfill: Fix textarea form filling.
-The textarea used to be cleared before the new content was set,
-which removed the name attribute.</li>
-</ul>
-</div>
-<div class="section" id="id46">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some basic API classes use freelists internally for faster
-instantiation.  This can speed up some <tt class="docutils literal">iterparse()</tt> scenarios,
-for example.</li>
-<li><tt class="docutils literal">iterparse()</tt> was rewritten to use the new <tt class="docutils literal">*PullParser</tt>
-classes internally instead of being a parser itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id47">
-<h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id48">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id49">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
-<li>Crash in target parsing with attributes.</li>
-<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.
-comment or PI).</li>
-</ul>
-</div>
-<div class="section" id="id51">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id52">
-<h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id53">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id54">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak when creating an XPath evaluator in a thread.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-</ul>
-</div>
-<div class="section" id="id57">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id58">
-<h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id59">
-<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="id60">
-<h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id61">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id62">
-<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="id63">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Return values of user provided element class lookup methods are now
-validated against the type of the XML node they represent to prevent
-API class mismatches.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id64">
-<h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id65">
-<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
-extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
-and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
-strings from the result list.</li>
-</ul>
-</div>
-<div class="section" id="id66">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When moving Elements to another tree, the namespace cleanup mechanism
-no longer drops namespace prefixes from attributes for which it finds
-a default namespace declaration, to prevent them from appearing as
-unnamespaced attributes after serialisation.</li>
-<li>Returning non-type objects from a custom class lookup method could lead
-to a crash.</li>
-<li>Instantiating and using subtypes of Comments and ProcessingInstructions
-crashed.</li>
-</ul>
-</div>
-<div class="section" id="id67">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id68">
-<h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id69">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id70">
-<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
-parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
-in the face of uncommon HTML content like framesets or missing body tags.
-Patch by Stefan Seelmann.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
-non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
-reporting the <tt class="docutils literal">IOError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
-default parser and made subsequent attempts to parse from a URL fail.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-of overwriting the current value.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
-allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
-</ul>
-</div>
-<div class="section" id="id71">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id72">
-<h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id73">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id74">
-<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
-the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
-with a <tt class="docutils literal">TypeError</tt>.  Patch by Mike Bayer.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
-the result tree to a Unicode string.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
-by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id75">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id76">
-<h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id77">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id78">
-<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
-an AttributeError in Py3.</li>
-<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
-</ul>
-</div>
-<div class="section" id="id79">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
-from the module dict.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id80">
-<h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id81">
-<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="id82">
-<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
-a copy of the attributes as a plain Python dict.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the  <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
-always used the first namespace mapping that was provided for each
-path expression instead of using the one that was actually passed
-in for the current run.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
-without threading support.  Patch by Ulrich Seidl.</li>
-</ul>
-</div>
-<div class="section" id="id83">
-<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="id84">
-<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
-makes the API always return Unicode strings for names and text
-instead of byte strings for plain ASCII content.</li>
-<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
-<li>E factory in lxml.objectify is callable to simplify the creation of
-tags with non-identifier names without having to resort to getattr().</li>
-</ul>
-</div>
-<div class="section" id="id85">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When starting from a non-namespaced element in lxml.objectify, searching
-for a child without explicitly specifying a namespace incorrectly found
-namespaced elements with the requested local name, instead of restricting
-the search to non-namespaced children.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</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="id86">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
-removed from the module API of lxml.objectify.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
-many children.  Patch by Anders Hammarquist.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id87">
-<h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id88">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id89">
-<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="id90">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id91">
-<h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id92">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id93">
-<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
-in PyPy without proper cleanup.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</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="id94">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id95">
-<h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id96">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id97">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>End-of-file handling was incorrect in iterparse() when reading from
-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="id98">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The build no longer uses Cython by default unless the generated C files
-are missing.  To use Cython, pass the option &quot;--with-cython&quot;.  To ignore
-the fatal build error when Cython is required but not available (e.g. to
-run special setup.py commands that do not actually run a build), pass
-&quot;--without-cython&quot;.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2012-09-26">
-<h1>3.0beta1 (2012-09-26)</h1>
-<div class="section" id="id99">
-<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="id100">
-<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="id101">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha2-2012-08-23">
-<h1>3.0alpha2 (2012-08-23)</h1>
-<div class="section" id="id102">
-<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
-<tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt> to search for elements with a given local name in any
-namespace. With this addition, all combinations of wildcards now work
-as expected:
-<tt class="docutils literal">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
-and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
-but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.
-The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
-<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
-and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
-<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
-<tt class="docutils literal">iterparse()</tt> class.  Patch by Simon Sapin.</li>
-<li>C14N allows specifying the inclusive prefixes to be promoted
-to top-level during exclusive serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id103">
-<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="id104">
-<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="id105">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Initial support for building in PyPy (through cpyext).</li>
-<li>DTD objects gained an API that allows read access to their
-declarations.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
-from grep output) and for surrounding the output with a new root
-tag.</li>
-<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
-types (such as string subtypes) when building elements around them.</li>
-<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
-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="id106">
-<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
-internally, which makes them faster in many cases (especially when
-short circuiting after a single or couple of elements) and fixes
-some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>.  Note that
-this means that they no longer support arbitrary XPath expressions
-but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
-The previous implementation was also redundant with the normal
-XPath support, which can be used as a replacement.</li>
-<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
-instruction that happened to be in the wrong spot.  (Same for the
-other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
-<li>The error logging is less intrusive and avoids a global setup where
-possible.</li>
-<li>Fixed undefined names in html5lib parser.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
-<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
-another Element as parameter.</li>
-<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
-properties immutable (as in objectify, for example), inserting text
-when creating Elements through the E-Factory feature of the class
-constructor would fail with an exception, stating that the text
-cannot be modified.</li>
-</ul>
-</div>
-<div class="section" id="id107">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code base was overhauled to properly use 'const' where the API
-of libxml2 and libxslt requests it.  This also has an impact on the
-public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
-well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
-Code that uses these declarations may have to be adapted.  On the
-plus side, this fixes several C compiler warnings, also for user
-code, thus making it easier to spot real problems again.</li>
-<li>The functionality of &quot;lxml.cssselect&quot; was moved into a separate PyPI
-package called &quot;cssselect&quot;.  To continue using it, you must install
-that package separately.  The &quot;lxml.cssselect&quot; module is still
-available and provides the same interface, provided the &quot;cssselect&quot;
-package can be imported at runtime.</li>
-<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
-arguments are now sorted by (namespaced) name before being created
-to make their order predictable for serialisation and iteration.
-Note that adding or deleting attributes afterwards does not take
-that order into account, i.e. setting a new attribute appends it
-after the existing ones.</li>
-<li>Several classes that are for internal use only were removed
-from the <tt class="docutils literal">lxml.etree</tt> module dict:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
-_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
-__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
-_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
-_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
-_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
-_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
-_ParserSchemaValidationContext, _XPathContext,
-_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
-<li>Several internal classes can no longer be inherited from:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
-_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
-_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
-_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
-_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id108">
-<h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id109">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id110">
-<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="id111">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id112">
-<h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id113">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id114">
-<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="id115">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id116">
-<h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id117">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id118">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when building an nsmap (Element property) with empty
-namespace URIs.</li>
-<li>Crash due to race condition when errors (or user messages) occur
-during threaded XSLT processing.</li>
-<li>XSLT stylesheet compilation could ignore compilation errors.</li>
-</ul>
-</div>
-<div class="section" id="id119">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id120">
-<h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id121">
-<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="id122">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
-requesting start events.</li>
-<li>Fixed parsing of more selectors in cssselect.  Whitespace before
-pseudo-elements and pseudo-classes is significant as it is a
-descendant combinator.
-&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
-Patch by Simon Sapin.</li>
-<li>lxml.html.diff no longer raises an exception when hitting
-'img' tags without 'src' attribute.</li>
-</ul>
-</div>
-<div class="section" id="id123">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id124">
-<h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id125">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
-<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
-declarations (and generally clean up the namespace declarations)
-after removing the type annotations.</li>
-<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
-copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
-of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
-</ul>
-</div>
-<div class="section" id="id126">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
-fix in lxml 2.3.1).  The previous change resulted in a serious
-performance regression for the XPath based evaluation of the
-translated expression.  Note that this breaks the usage of some of
-the generated XPath expressions as XSLT location paths that
-previously worked in 2.3.1.</li>
-<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
-&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
-a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
-&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
-</ul>
-</div>
-<div class="section" id="id127">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id128">
-<h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id129">
-<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
-tags and their content (i.e. their whole subtree).</li>
-<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
-pseudo-attributes from the text content of processing instructions.</li>
-<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
-used to compile external C code against lxml.etree.  This is
-specifically required for statically linked lxml builds when code
-needs to compile against the exact same header file versions as lxml
-itself.</li>
-<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
-<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
-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="id130">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning didn't remove 'data:' links.</li>
-<li>The html5lib parser integration now uses the 'official'
-implementation in html5lib itself, which makes it work with newer
-releases of the library.</li>
-<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
-tag name when the corresponding start event inferred the same plain
-tag name to be in the default namespace.</li>
-<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
-<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use.  This
-reverts a change in lxml 2.3 where all files would be closed.  It is
-the users responsibility to properly close the file(-like) object,
-also in error cases.</li>
-<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
-<li>In lxml.cssselect, use the xpath 'A//B' (short for
-'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
-the css descendant selector ('A B').  This makes a few edge cases
-like <tt class="docutils literal">&quot;div <span class="pre">*:last-child&quot;</span></tt> consistent with the selector behavior in
-WebKit and Firefox, and makes more css expressions valid location
-paths (for use in xsl:template match).</li>
-<li>In lxml.html, non-selected <tt class="docutils literal">&lt;option&gt;</tt> tags no longer show up in the
-collected form values.</li>
-<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</tt> values to/from a multiple select form
-field properly selects them and unselects them.</li>
-</ul>
-</div>
-<div class="section" id="id131">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Static builds can specify the download directory with the
-<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id132">
-<h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id133">
-<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="id134">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When finished reading from a file-like object, the parser
-immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
-<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
-file.</li>
-<li>Work-around for libxml2 bug that can leave the HTML parser in a
-non-functional state after parsing a severly broken document (fixed
-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="id135">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some public functions in the Cython-level C-API have more explicit
-return types.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2010-09-06">
-<h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id136">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id137">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
-<tt class="docutils literal">base_url</tt> parameters.</li>
-<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
-<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
-use of os.tempnam.  It now takes an optional 'encoding' parameter.</li>
-</ul>
-</div>
-<div class="section" id="id138">
-<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="id139">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id140">
-<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="id141">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
-(following ElementTree 1.3).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2010-06-19">
-<h1>2.3alpha1 (2010-06-19)</h1>
-<div class="section" id="id142">
-<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>
-to pass a prefix-to-namespace mapping for the selector.</li>
-<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
-globally registers a namespace prefix for a namespace that newly
-created Elements in that namespace will use automatically.  Follows
-ElementTree 1.3.</li>
-<li>Support 'unicode' string name as encoding parameter in
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
-match the upcoming ElementTree 1.3 that will ship in the standard
-library of Python 3.2/2.7.  This includes extended support for
-predicates as well as namespace prefixes (as known from XPath).</li>
-<li>During regular XPath evaluation, various ESXLT functions are
-available within their namespace when using libxslt 1.1.26 or later.</li>
-<li>Support passing a readily configured logger instance into
-<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
-<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
-override the DOCTYPE (internal subset) of the document.</li>
-<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
-to append the resulting content directly to an output element.</li>
-<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
-XSLT extension element itself.</li>
-<li>ISO-Schematron support based on the de-facto Schematron reference
-'skeleton implementation'.</li>
-<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
-parameters.</li>
-<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
-overhead.</li>
-<li>Setting the value of a namespaced attribute always uses a prefixed
-namespace instead of the default namespace even if both declare the
-same namespace URI.  This avoids serialisation problems when an
-attribute from a default namespace is set on an element from a
-different namespace.</li>
-<li>XSLT extension elements: support for XSLT context nodes other than
-elements: document root, comments, processing instructions.</li>
-<li>Support for strings (in addition to Elements) in node-sets returned
-by extension functions.</li>
-<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
-the document on submit.</li>
-<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
-<li>Namespace URIs get validated against RFC 3986 at the API level
-(required by the XML namespace specification).</li>
-<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
-(compatible with ElementTree).</li>
-</ul>
-</div>
-<div class="section" id="id143">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>API is hardened against invalid proxy instances to prevent crashes
-due to incorrectly instantiated Element instances.</li>
-<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
-<li>Export ElementTree compatible XML parser class as
-<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
-<li>ObjectifiedDataElements in lxml.objectify were not hashable.  They
-now use the hash value of the underlying Python value (string,
-number, etc.) to which they compare equal.</li>
-<li>Parsing broken fragments in lxml.html could fail if the fragment
-contained an orphaned closing '&lt;/div&gt;' tag.</li>
-<li>Using XSLT extension elements around the root of the output document
-crashed.</li>
-<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr=&quot;val&quot;]</span></tt> and
-<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</span></tt> (with a space).  The latter now matches the
-attribute independent of the element.</li>
-<li>Rewriting multiple links inside of HTML text content could end up
-replacing unrelated content as replacements could impact the
-reported position of subsequent matches.  Modifications are now
-simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
-return links in reversed order if they appear inside the same text
-node.  Thus, replacements and link-internal modifications no longer
-change the position of links reported afterwards.</li>
-<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
-not represent the complete raw value (including child tags etc.). It
-now serialises the complete content on read and replaces the
-complete content by a string on write.</li>
-<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
-parsing failed.  Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
-called after parsing, regardless of the outcome.</li>
-</ul>
-</div>
-<div class="section" id="id144">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.1.2 and later.</li>
-<li>Static MS Windows builds can now download their dependencies
-themselves.</li>
-<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
-Element object.  It therefore no longer requires the garbage
-collector to clean up.</li>
-<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id145">
-<h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id146">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li>Import fix for urljoin in Python 3.1+.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id147">
-<h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id148">
-<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>
-<div class="section" id="id149">
-<h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id150">
-<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="id151">
-<h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id152">
-<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="id153">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XPath evaluation when reading smart strings from a document
-other than the original context document.</li>
-<li>Support recent versions of html5lib by not requiring its
-<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
-<li>Manually instantiating the custom element classes in
-<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
-<li>Invalid XML text characters were not rejected by the API when they
-appeared in unicode strings directly after non-ASCII characters.</li>
-<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
-<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
-<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
-<li>Crash in XSLT extension elements when the XSLT context node is not
-an element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id154">
-<h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id155">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Static build of libxml2/libxslt was broken.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id156">
-<h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id157">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id158">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
-parser.</li>
-<li>Looking up and deleting attributes without a namespace could hit a
-namespaced attribute of the same name instead.</li>
-<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
-ones) could leave a partially initialised element in the tree.</li>
-<li>Modifying trees that contain parsed entity references could result
-in an infinite loop.</li>
-<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
-attribute value was rejected as a non-unicode/non-ascii string</li>
-<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
-messages.</li>
-<li>Invalid syntax in CSS expressions could lead to an infinite loop in
-the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS special character escapes were not properly handled in
-<tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
-attribute were not handled correctly.  The HTML standard dictates
-that their value is defined by their text content.  This is now
-supported by lxml.html.</li>
-<li>XPath raised a TypeError when finding CDATA sections.  This is now
-fully supported.</li>
-<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
-namespaces when annotation is disabled.</li>
-<li>Feed parser failed to honout the 'recover' option on parse errors.</li>
-<li>Diverting the error logging to Python's logging system was broken.</li>
-</ul>
-</div>
-<div class="section" id="id159">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id160">
-<h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id161">
-<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>,
-<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
-from a subtree.</li>
-</ul>
-</div>
-<div class="section" id="id162">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Namespace cleanup on subtree insertions could result in missing
-namespace declarations (and potentially crashes) if the element
-defining a namespace was deleted and the namespace was not used by
-the top element of the inserted subtree but only in deeper subtrees.</li>
-<li>Raising an exception from a parser target callback didn't always
-terminate the parser.</li>
-<li>Only {true, false, 1, 0} are accepted as the lexical representation for
-BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
-behaviour.</li>
-</ul>
-</div>
-<div class="section" id="id163">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id164">
-<h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id165">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Injecting default attributes into a document during XML Schema
-validation (also at parse time).</li>
-<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
-restrictions imposed by libxml2 2.7.</li>
-</ul>
-</div>
-<div class="section" id="id166">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The script for statically building libxml2 and libxslt didn't work
-in Py3.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
-for parsing (which could lead to a crash before release 2.6.24).</li>
-</ul>
-</div>
-<div class="section" id="id167">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id168">
-<h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id169">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
-<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
-on serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id170">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing an XML Schema with external imports from a
-filename.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2009-02-27">
-<h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id171">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support strings and instantiable Element classes as child arguments
-to the constructor of custom Element classes.</li>
-<li>GZip compression support for serialisation to files and file-like
-objects.</li>
-</ul>
-</div>
-<div class="section" id="id172">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Deep-copying an ElementTree copied neither its sibling PIs and
-comments nor its internal/external DTD subsets.</li>
-<li>Soupparser failed on broken attributes without values.</li>
-<li>Crash in XSLT when overwriting an already defined attribute using
-<tt class="docutils literal">xsl:attribute</tt>.</li>
-<li>Crash bug in exception handling code under Python 3.  This was due
-to a problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
-<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
-was evaluated incorrectly.</li>
-</ul>
-</div>
-<div class="section" id="id173">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.0.1.</li>
-<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
-for Elements without text content.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2009-02-17">
-<h1>2.2beta3 (2009-02-17)</h1>
-<div class="section" id="id174">
-<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="id175">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in XPath evaluators.</li>
-<li>Crash when parsing indented XML in one thread and merging it with
-other documents parsed in another thread.</li>
-<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
-string failed.</li>
-<li>Fixes following changes in Python 3.0.1.</li>
-<li>Minor fixes for Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id176">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The global error log (which is copied into the exception log) is now
-local to a thread, which fixes some race conditions.</li>
-<li>More robust error handling on serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2009-01-25">
-<h1>2.2beta2 (2009-01-25)</h1>
-<div class="section" id="id177">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
-<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url(&quot;link&quot;)</span></tt> incorrectly
-(treating the quotation marks as part of the link).</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id178">
-<h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id179">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2008-12-12">
-<h1>2.2beta1 (2008-12-12)</h1>
-<div class="section" id="id180">
-<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="id181">
-<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="id182">
-<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="id183">
-<h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id184">
-<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="id185">
-<h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id186">
-<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="alpha1-2008-11-23">
-<h1>2.2alpha1 (2008-11-23)</h1>
-<div class="section" id="id187">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for XSLT result tree fragments in XPath/XSLT extension
-functions.</li>
-<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
-<li>New options for exclusive C14N and C14N without comments.</li>
-<li>Instantiating a custom Element classes creates a new Element.</li>
-</ul>
-</div>
-<div class="section" id="id188">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>XSLT didn't inherit the parse options of the input document.</li>
-<li>0-bytes could slip through the API when used inside of Unicode
-strings.</li>
-<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
-that end in a parenthesis, will be linked in their entirety (typical
-with Wikipedia links).</li>
-</ul>
-</div>
-<div class="section" id="id189">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id190">
-<h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id191">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id192">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-<li>Parser Unicode decoding errors could get swallowed by other
-exceptions.</li>
-<li>Name/import errors in some Python modules.</li>
-<li>Internal DTD subsets that did not specify a system or public ID were
-not serialised and did not appear in the docinfo property of
-ElementTrees.</li>
-<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
-<li>Test suite fixes for libxml2 2.7.</li>
-<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
-<li>Resolver.resolve_file() was broken.</li>
-<li>Overriding the parser encoding didn't work for many encodings.</li>
-</ul>
-</div>
-<div class="section" id="id193">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id194">
-<h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id195">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id196">
-<h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id197">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.etree now tries to find the absolute path name of files when
-parsing from a file-like object.  This helps custom resolvers when
-resolving relative URLs, as lixbml2 can prepend them with the path
-of the source document.</li>
-</ul>
-</div>
-<div class="section" id="id198">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-<div class="section" id="id199">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id200">
-<h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id201">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id202">
-<h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id203">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id204">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>Encoding problem when including text with ElementInclude under
-Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id205">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id206">
-<h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id207">
-<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="id208">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id209">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id210">
-<h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id211">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
-keyword option).</li>
-<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="id212">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Custom resolvers were not used for XMLSchema includes/imports and
-XInclude processing.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id213">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
-<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
-<li>Speed-up when running XSLTs on documents from other threads</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id214">
-<h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id215">
-<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="id216">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Descending dot-separated classes in CSS selectors were not resolved
-correctly.</li>
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Potential threading problem in XInclude.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-</ul>
-</div>
-<div class="section" id="id217">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2008-06-19">
-<h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id218">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-<li>Support for parsing from file-like objects that return unicode
-strings.</li>
-<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
-namespace declarations from a (sub)tree (experimental).</li>
-<li>XSLT results support the buffer protocol in Python 3.</li>
-<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
-a parsable string will return either a UTF-8 encoded byte string, a
-unicode string or a tree, based on the type of the input.
-Previously, the result was always a byte string or a tree.</li>
-<li>Support for Python 2.6 and 3.0 beta.</li>
-<li>File name handling now uses a heuristic to convert between byte
-strings (usually filenames) and unicode strings (usually URLs).</li>
-<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
-<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
-on reading under Python 2.x.</li>
-<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
-lxml.html (experimental).</li>
-<li>Most features in lxml.html work for XHTML namespaced tag names
-(experimental).</li>
-</ul>
-</div>
-<div class="section" id="id219">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-<li>A number of problems related to unicode/byte string conversion of
-filenames and error messages were fixed.</li>
-<li>Building on MacOS-X now passes the &quot;flat_namespace&quot; option to the C
-compiler, which reportedly prevents build quirks and crashes on this
-platform.</li>
-<li>Windows build was broken.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id220">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
-namespaces, etc. will result in a ValueError instead of an
-AssertionError (just like the tag well-formedness check).</li>
-<li>Up to several times faster attribute access (i.e. tree traversal) in
-lxml.objectify.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id221">
-<h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id222">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id223">
-<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>
-<li>Windows build was broken.</li>
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-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="id224">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml should now build without problems on MacOS-X.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2008-05-02">
-<h1>2.1beta2 (2008-05-02)</h1>
-<div class="section" id="id225">
-<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>
-<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
-attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
-pre-configured for the lxml.html package.</li>
-</ul>
-</div>
-<div class="section" id="id226">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Passing an nsmap when creating an Element will no longer strip
-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="id227">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>If the default namespace is redundantly defined with a prefix on the
-same Element, the prefix will now be preferred for subelements and
-attributes.  This allows users to work around a problem in libxml2
-where attributes from the default namespace could serialise without
-a prefix even when they appear on an Element with a different
-namespace (i.e. they would end up in the wrong namespace).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id228">
-<h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id229">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id230">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-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="id231">
-<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="id232">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
-<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
-sections.  Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
-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="id233">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
-<li>lxml.etree accepted non well-formed namespace prefix names.</li>
-</ul>
-</div>
-<div class="section" id="id234">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
-takes care of namespace cleanup when moving elements between
-different namespace contexts.</li>
-<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
-parser or through lxml.html now end up in a new HTML document
-(doctype HTML 4.01 Transitional) instead of a generic XML document.
-This mostly impacts the serialisation and the availability of a DTD
-context.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id235">
-<h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id236">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id237">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Hanging thread in conjunction with GTK threading.</li>
-<li>Crash bug in iterparse when moving elements into other documents.</li>
-<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</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="id238">
-<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="id239">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
-<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
-returns a dict of access configuration options.</li>
-<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
-<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
-<li>Extension elements for XSLT (experimental!)</li>
-<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
-an Element.</li>
-<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
-</ul>
-</div>
-<div class="section" id="id240">
-<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="id241">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Minor API speed-ups.</li>
-<li>The benchmark suite now uses tail text in the trees, which makes the
-absolute numbers incomparable to previous results.</li>
-<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
-used to enable syntax highlighting for the doctest examples.</li>
-</ul>
-<p>Most long-time deprecated functions and methods were removed:</p>
-<ul>
-<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
-<tt class="docutils literal">etree.use_global_python_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
-<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
-<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
-<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
-yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
-instead.</p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
-<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
-<tt class="docutils literal">objectify.set_default_parser()</tt></p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id242">
-<h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id243">
-<h2>Features added</h2>
-<ul class="simple">
-<li>soupparser.parse() allows passing keyword arguments on to
-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="id244">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
-<tt class="docutils literal">&lt;br&gt;</tt>).</li>
-<li>Handle entity replacements correctly in target parser.</li>
-<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
-<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
-which made them turn up in text content.</li>
-<li>Attribute assignment of custom PyTypes in objectify could fail to
-correctly serialise the value to a string.</li>
-</ul>
-</div>
-<div class="section" id="id245">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
-<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API.  The old module
-remains for compatibility with ElementTree's own ElementSoup module.</li>
-<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
-build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
-<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
-compiler options.  The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
-option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id246">
-<h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id247">
-<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="id248">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The prefix for objectify's pytype namespace was missing from the set
-of default prefixes.</li>
-<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
-<li>Error type names in RelaxNG were reported incorrectly.</li>
-<li>Slice deletion bug fixed in objectify.</li>
-</ul>
-</div>
-<div class="section" id="id249">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
-<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
-(<tt class="docutils literal"><span class="pre">method=&quot;xml&quot;</span></tt> for XHTML output).</li>
-<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
-<tt class="docutils literal">base_url</tt> argument.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id250">
-<h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id251">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
-<li>Loads of new docstrings reflect the signature of functions and
-methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
-</ul>
-</div>
-<div class="section" id="id252">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
-<tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
-was an unnamed input field.  Now unnamed input fields are completely
-ignored.</li>
-<li>Setting an element slice in objectify could insert slice-overlapping
-elements at the wrong position.</li>
-</ul>
-</div>
-<div class="section" id="id253">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The generated API documentation was cleaned up and disburdened from
-non-public classes etc.</li>
-<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
-<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml.  If
-you want to use it, feel free to copy it over to your own source
-base.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
-compiler options.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id254">
-<h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id255">
-<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
-serialise to unicode.  The <tt class="docutils literal">tounicode()</tt> function is now
-deprecated.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
-<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
-parser with the usual objectify setup.</li>
-<li>Plain ASCII XPath string results are no longer forced into unicode
-objects as in 2.0beta1, but are returned as plain strings as before.</li>
-<li>All XPath string results are 'smart' objects that have a
-<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
-<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
-<li>More accurate exception messages in validator creation.</li>
-<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
-<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
-selection make their Element container accessible through a
-<tt class="docutils literal">getparent()</tt> method.  As a side-effect, they are now always
-unicode objects (even ASCII strings).</li>
-<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
-copy if they were not created in that thread.</li>
-<li>Invalid entity names and character references will be rejected by
-the <tt class="docutils literal">Entity()</tt> factory.</li>
-<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
-e.g. <tt class="docutils literal">&amp;amp;</tt>.</li>
-<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
-in ET 1.3)</li>
-<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
-<li>ElementTree compatible TreeBuilder class.</li>
-<li>Use default prefixes for some common XML namespaces.</li>
-<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
-two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
-more general <tt class="docutils literal">allow_element(el)</tt>.</li>
-<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
-etree and in objectify</li>
-<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
-resolving a document as string data.</li>
-<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
-<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
-the special checking for one test.</li>
-<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
-The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
-<tt class="docutils literal">error_log</tt>.</li>
-<li>The normal parsers and the feed parser interface are now separated
-and can be used concurrently on the same parser instance.</li>
-<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
-ElementTree 1.3</li>
-<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
-parsing with the HTML parser (note that this interface may be
-subject to change)</li>
-<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
-of the parsed documents.</li>
-<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
-<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
-types in one step.  Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
-<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
-argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
-serialise as XML, HTML or plain text content.</li>
-<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
-<tt class="docutils literal">findall()</tt></li>
-<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
-<li>Setting a QName object as value of the .text property or as an attribute
-will resolve its prefix in the respective context</li>
-<li>ElementTree-like parser target interface as described in
-<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
-<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
-(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
-<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
-integration with objectify.  Provides extended type support based on
-registered PyTypes.</li>
-<li>XSLT objects now support deep copying</li>
-<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
-subelement straight with text, tail and attributes.</li>
-<li>XPath extension functions can now access the current context node
-(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
-(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
-parameter</li>
-<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
-<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
-doctests based on XML/HTML output.  Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
-<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
-<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
-selectors.</li>
-<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
-treatment.</li>
-<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
-instance and no longer global.</li>
-<li>Schematron validation (incomplete in libxml2)</li>
-<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
-conversion function to strings to support setting text values from arbitrary
-types.</li>
-<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes.  XML
-parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
-False to keep entities in the document.</li>
-<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
-<li>Error specific messages in XPath parsing and evaluation
-NOTE: for evaluation errors, you will now get an XPathEvalError instead of
-an XPathSyntaxError.  To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
-<li>The regular expression functions in XPath now support passing a node-set
-instead of a string</li>
-<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
-<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
-</ul>
-</div>
-<div class="section" id="id256">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
-<li>Some Python 2.4-isms prevented lxml from building/running under
-Python 2.3.</li>
-<li>XPath on ElementTrees could crash when selecting the virtual root
-node of the ElementTree.</li>
-<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
-<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
-<li>Minor bugs in XSLT error message formatting.</li>
-<li>Result document memory leak in target parser.</li>
-<li>Target parser failed to report comments.</li>
-<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal">&lt;object&gt;</tt>
-tags weren't recognized.  (Note: plugin-specific link parameters
-still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</tt> tag, though not
-standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
-<li>Using custom resolvers on XSLT stylesheets parsed from a string
-could request ill-formed URLs.</li>
-<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</span></tt> in your
-output, it will then be namespace-neutral (before the ellipsis was
-treated as a real namespace).</li>
-<li>AttributeError in feed parser on parse errors</li>
-<li>XML feed parser setup problem</li>
-<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
-<li>lxml failed to serialise namespace declarations of elements other than the
-root node of a tree</li>
-<li>Race condition in XSLT where the resolver context leaked between concurrent
-XSLT calls</li>
-<li>lxml.etree did not check tag/attribute names</li>
-<li>The XML parser did not report undefined entities as error</li>
-<li>The text in exceptions raised by XML parsers, validators and XPath
-evaluators now reports the first error that occurred instead of the last</li>
-<li>Passing '' as XPath namespace prefix did not raise an error</li>
-<li>Thread safety in XPath evaluators</li>
-</ul>
-</div>
-<div class="section" id="id257">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Exceptions carry only the part of the error log that is related to
-the operation that caused the error.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
-file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
-<li>The test suite now skips most doctests under Python 2.3.</li>
-<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
-realclean</tt> instead)</li>
-<li>Minor performance tweaks for Element instantiation and subelement
-creation</li>
-<li>Various places in the XPath, XSLT and iteration APIs now require
-keyword-only arguments.</li>
-<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
-match the order used in all other iteration methods.  The second
-argument ('preceding') is now a keyword-only argument.</li>
-<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
-reverted to return an iterator as it did in lxml 1.x.  The ET API
-specification allows it to return either a sequence or an iterator,
-and it traditionally returned a sequence in ET and an iterator in
-lxml.  However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
-method, which should be used in new code wherever possible.</li>
-<li>The 'pretty printed' serialisation of ElementTree objects now
-inserts newlines at the root level between processing instructions,
-comments and the root tag.</li>
-<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
-<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
-required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
-<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
-<li>The module source files were renamed to &quot;lxml.*.pyx&quot;, such as
-&quot;lxml.etree.pyx&quot;.  This was changed for consistency with the way
-Pyrex commonly handles package imports.  The main effect is that
-classes now know about their fully qualified class name, including
-the package name of their module.</li>
-<li>Keyword-only arguments in some API functions, especially in the
-parsers and serialisers.</li>
-<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
-between HTML tags and XML tags based on the parser that was used to
-parse or create them.  HTML tags no longer reject any non-ASCII
-characters in tag names but only spaces and the special characters
-<tt class="docutils literal"><span class="pre">&lt;&gt;&amp;/&quot;'</span></tt>.</li>
-<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
-(which can crash on certain XPath errors)</li>
-<li>Type annotation in objectify now preserves the already annotated type by
-default to prevent loosing type information that is already there.</li>
-<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
-an iterator (ElementTree 1.3 compatible behaviour)</li>
-<li>objectify.PyType for None is now called &quot;NoneType&quot;</li>
-<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
-original name is still available as alias</li>
-<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
-generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
-<li>Major refactoring in XPath/XSLT extension function code</li>
-<li>Network access in parsers disabled by default</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id258">
-<h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id259">
-<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="id260">
-<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>
-methods.  While this makes them take a lot longer to run, it also
-makes it easier to link a specific test to garbage collection
-problems that would otherwise appear in later tests.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id261">
-<h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id262">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id263">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.etree could crash when adding more than 10000 namespaces to a
-document</li>
-<li>lxml failed to serialise namespace declarations of elements other
-than the root node of a tree</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id264">
-<h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id265">
-<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
-<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
-creates.</li>
-<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
-and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
-subset of the document respectively.</li>
-<li>Serialising an ElementTree now includes any internal DTD subsets that are
-part of the document, as well as comments and PIs that are siblings of the
-root node.</li>
-</ul>
-</div>
-<div class="section" id="id266">
-<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="id267">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
-an Error as 1.3.3 did.  The reason is that a number of projects currently
-misuse the previous lack of tag name validation to generate namespace
-prefixes without declaring namespaces.  Apart from the danger of generating
-broken XML this way, it also breaks most of the namespace-aware tools in
-XML, including XPath, XSLT and validation.  lxml 1.3.x will continue to
-support this bug with a Warning, while lxml 2.0 will be strict about
-well-formed tag names (not only regarding ':').</li>
-<li>Serialising an Element no longer includes its comment and PI siblings (only
-ElementTree serialisation includes them).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id268">
-<h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id269">
-<h2>Features added</h2>
-<ul class="simple">
-<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
-instructions and comments while parsing XML</li>
-<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
-<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
-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="id270">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing from Python Unicode strings failed on some platforms</li>
-<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id271">
-<h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id272">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id273">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>&quot;deallocating None&quot; crash bug</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id274">
-<h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id275">
-<h2>Features added</h2>
-<ul class="simple">
-<li>objectify.DataElement now supports setting values from existing data
-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="id276">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Better way to prevent crashes in Element proxy cleanup code</li>
-<li>objectify.DataElement didn't set up None value correctly</li>
-<li>objectify.DataElement didn't check the value against the provided type hints</li>
-<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id277">
-<h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id278">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
-scheme that can access the entire tree in read-only mode to help determining
-a suitable Element class</li>
-<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
-<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
-<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
-adding processing instructions and comments around the root node</li>
-<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
-<li>Extended type annotation in objectify: cleaner annotation namespace setup
-plus new <tt class="docutils literal">deannotate()</tt> function</li>
-<li>Support for custom Element class instantiation in lxml.sax: passing a
-<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
-lookup context of that function</li>
-<li>'.' represents empty ObjectPath (identity)</li>
-<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
-<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
-keys/values/items for a libxml2 node</li>
-<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
-<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
-<li>Support for pickeling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
-<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
-<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
-a better handling of namespaces when moving elements between documents.</li>
-</ul>
-</div>
-<div class="section" id="id279">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Removing Elements from a tree could make them loose their namespace
-declarations</li>
-<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
-<li>Replacing the children slice of an Element would cut off the tails of the
-original children</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
-<li>API functions now check incoming strings for XML conformity.  Zero bytes or
-low ASCII characters are no longer accepted (AssertionError).</li>
-<li>XSLT parsing failed to pass resolver context on to imported documents</li>
-<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
-<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
-<li>More ET compatible behaviour when writing out XML declarations or not</li>
-<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
-<li>Documents lost their top-level PIs and comments on serialisation</li>
-<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
-PIs are copied.</li>
-<li>Possible memory leaks in namespace handling when moving elements between
-documents</li>
-</ul>
-</div>
-<div class="section" id="id280">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>major restructuring in the documentation</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id281">
-<h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id282">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Build fixes for MS compiler</li>
-<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element[&quot;text&quot;]</span></tt> failed</li>
-<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
-to access</li>
-<li>The pattern for attribute names in ObjectPath was too restrictive</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id283">
-<h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id284">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Rich comparison of QName objects</li>
-<li>Support for regular expressions in benchmark selection</li>
-<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
-<li>ElementInclude Python module for ElementTree compatible XInclude processing
-that honours custom resolvers registered with the source document</li>
-<li>ElementTree.parser property holds the parser used to parse the document</li>
-<li>setup.py has been refactored for greater readability and flexibility</li>
-<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
-runtime search paths has been renamed to --auto-rpath. This makes it
-possible to pass an --rpath directly to distutils; previously this was being
-shadowed.</li>
-</ul>
-</div>
-<div class="section" id="id285">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Element instantiation now uses locks to prevent race conditions with threads</li>
-<li>ElementTree.write() did not raise an exception when the file was not writable</li>
-<li>Error handling could crash under Python &lt;= 2.4.1 - fixed by disabling thread
-support in these environments</li>
-<li>Element.find*() did not accept QName objects as path</li>
-</ul>
-</div>
-<div class="section" id="id286">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>code cleanup: redundant _NodeBase super class merged into _Element class
-Note: although the impact should be zero in most cases, this change breaks
-the compatibiliy of the public C-API</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id287">
-<h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id288">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Data elements in objectify support repr(), which is now used by dump()</li>
-<li>Source distribution now ships with a patched Pyrex</li>
-<li>New C-API function makeElement() to create new elements with text,
-tail, attributes and namespaces</li>
-<li>Reuse original parser flags for XInclude</li>
-<li>Simplified support for handling XSLT processing instructions</li>
-</ul>
-</div>
-<div class="section" id="id289">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parser resources were not freed before the next parser run</li>
-<li>Open files and XML strings returned by Python resolvers were not
-closed/freed</li>
-<li>Crash in the IDDict returned by XMLDTDID</li>
-<li>Copying Comments and ProcessingInstructions failed</li>
-<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
-<li>Memory leak when garbage collecting tailed root elements</li>
-<li>HTML script/style content was not propagated to .text</li>
-<li>Show text xincluded between text nodes correctly in .text and .tail</li>
-<li>'integer * objectify.StringElement' operation was not supported</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id290">
-<h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id291">
-<h2>Features added</h2>
-<ul class="simple">
-<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
-<li>countchildren() method on objectify.ObjectifiedElement</li>
-<li>Support custom elements for tree nodes in lxml.objectify</li>
-</ul>
-</div>
-<div class="section" id="id292">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
-<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
-<li>Factories objectify.Element() and objectify.DataElement() were missing
-<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
-<li>Changing the default parser in lxml.objectify did not update the factories
-Element() and DataElement()</li>
-<li>Let lxml.objectify.Element() always generate tree elements (not data
-elements)</li>
-<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id293">
-<h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id294">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Comments and processing instructions return '&lt;!-- coment --&gt;' and
-'&lt;?pi-target content?&gt;' for repr()</li>
-<li>Parsers are now the preferred (and default) place where element class lookup
-schemes should be registered.  Namespace lookup is no longer supported by
-default.</li>
-<li>Support for Python 2.5 beta</li>
-<li>Unlock the GIL for deep copying documents and for XPath()</li>
-<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
-<li>Support for parser options in iterparse()</li>
-<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
-tuples</li>
-<li>The XPath expression &quot;/&quot; now returns an empty list instead of raising an
-exception</li>
-<li>XML-Object API on top of lxml (lxml.objectify)</li>
-<li>Customizable Element class lookup:<ul>
-<li>different pre-implemented lookup mechanisms</li>
-<li>support for externally provided lookup functions</li>
-</ul>
-</li>
-<li>Support for processing instructions (ET-like, not compatible)</li>
-<li>Public C-level API for independent extension modules</li>
-<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
-<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
-documentation for differences)</li>
-<li>Element.nsmap property returns a mapping of all namespace prefixes known at
-the Element to their namespace URI</li>
-<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
-<li>Threading support in parsers and serializers:<ul>
-<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
-<li>File operations (on file names) free the GIL</li>
-<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
-<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
-</ul>
-</li>
-<li>Element iteration over XPath axes:<ul>
-<li>Element.iterdescendants() iterates over the descendants of an element</li>
-<li>Element.iterancestors() iterates over the ancestors of an element (from
-parent to parent)</li>
-<li>Element.itersiblings() iterates over either the following or preceding
-siblings of an element</li>
-<li>Element.iterchildren() iterates over the children of an element in either
-direction</li>
-<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
-generated elements</li>
-</ul>
-</li>
-<li>Element.getnext() and Element.getprevious() return the direct siblings of an
-element</li>
-</ul>
-</div>
-<div class="section" id="id295">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>filenames with local 8-bit encoding were not supported</li>
-<li>1.1beta did not compile under Python 2.3</li>
-<li>ignore unknown 'pyval' attribute values in objectify</li>
-<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
-<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
-<li>XPathSyntaxError now inherits from XPathError</li>
-<li>Threading race conditions in RelaxNG and XMLSchema</li>
-<li>Crash when mixing elements from XSLT results into other trees, concurrent
-XSLT is only allowed when the stylesheet was parsed in the main thread</li>
-<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
-differences in the regular expression syntax)</li>
-<li>Setting element.text to '' returned None on request, not the empty string</li>
-<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
-<li>Creating documents no longer copies the parser for later URL resolving.  For
-performance reasons, only a reference is kept.  Resolver updates on the
-parser will now be reflected by documents that were parsed before the
-change.  Although this should rarely become visible, it is a behavioral
-change from 1.0.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id296">
-<h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id297">
-<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="id298">
-<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="id299">
-<h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id300">
-<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="id301">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when mixing elements from XSLT results into other trees</li>
-<li>Copying/deepcopying did not work for ElementTree objects</li>
-<li>Setting an attribute to a non-string value did not raise an exception</li>
-<li>Element.remove() deleted the tail text from the removed Element</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id302">
-<h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id303">
-<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="id304">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Rare exceptions in Python list functions were not handled</li>
-<li>Parsing accepted unicode strings with XML encoding declaration in certain
-cases</li>
-<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
-<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
-<li>XSLT and parser exception messages include the error line number</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id305">
-<h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id306">
-<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="id307">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Document deallocation could crash in certain garbage collection scenarios</li>
-<li>Extension function calls in XSLT variable declarations could break the
-stylesheet and crash on repeated calls</li>
-<li>Deep copying Elements could loose namespaces declared in parents</li>
-<li>Deep copying Elements did not copy tail</li>
-<li>Parsing file(-like) objects failed to load external entities</li>
-<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
-<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
-<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
-<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id308">
-<h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id309">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.getiterator() and the findall() methods support finding arbitrary
-elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
-<li>Another speedup in tree iteration code</li>
-<li>General speedup of Python Element object creation and deallocation</li>
-<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
-<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
-<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
-document that contains the element.</li>
-<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
-find the element in the tree structure</li>
-<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
-<li>Comment texts can be changed through the API</li>
-<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
-<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
-<li>ElementTree.write() no longer serializes in memory (reduced memory
-footprint)</li>
-<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
-<li>Support for writing the XML representation of Elements and ElementTrees to
-Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
-<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
-<li>Parsing a unicode string no longer copies the string (reduced memory
-footprint)</li>
-<li>Parsing file-like objects reads chunks rather than the whole file (reduced
-memory footprint)</li>
-<li>Parsing StringIO objects from the start avoids copying the string (reduced
-memory footprint)</li>
-<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
-information, original encoding and XML version as seen by the parser</li>
-<li>etree module can be compiled without libxslt by commenting out the line
-<tt class="docutils literal">include &quot;xslt.pxi&quot;</tt> near the end of the etree.pyx source file</li>
-<li>Better error messages in parser exceptions</li>
-<li>Error reporting also works in XSLT</li>
-<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
-resolvers are registered at parser level</li>
-<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
-enabled by default, can be switched off with 'regexp=False' keyword argument</li>
-<li>Support for exslt extensions (libexslt) and libxslt extra functions
-(node-set, document, write, output)</li>
-<li>Substantial speedup in XPath.evaluate()</li>
-<li>HTMLParser for parsing (broken) HTML</li>
-<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
-implementation of libxml2 (as opposed to ET compatible XMLID)</li>
-</ul>
-</div>
-<div class="section" id="id310">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in Element.__setitem__</li>
-<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
-<li>Memory leak in XPath extension functions</li>
-<li>Memory leak in unicode related setup code</li>
-<li>Element now raises ValueError on empty tag names</li>
-<li>Namespace fixing after moving elements between documents could fail if the
-source document was freed too early</li>
-<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -&gt; 't')
-didn't reset the namespace</li>
-<li>Unknown constants from newer libxml2 versions could raise exceptions in the
-error handlers</li>
-<li>lxml.etree compiles much faster</li>
-<li>On libxml2 &lt;= 2.6.22, parsing strings with encoding declaration could fail
-in certain cases</li>
-<li>Document reference in ElementTree objects was not updated when the root
-element was moved to a different document</li>
-<li>Running absolute XPath expressions on an Element now evaluates against the
-root tree</li>
-<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
-<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
-objects</li>
-<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
-<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
-<li>Memory leak when using iconv encoders in tostring/write</li>
-<li>Deep copying Elements and ElementTrees maintains the document information</li>
-<li>Serialization functions raise LookupError for unknown encodings</li>
-<li>Memory deallocation crash resulting from deep copying elements</li>
-<li>Some ElementTree methods could crash if the root node was not initialized
-(neither file nor element passed to the constructor)</li>
-<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
-dictionary</li>
-<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
-<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
-<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
-ElementTree root node as reference point</li>
-<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id311">
-<h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id312">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Speedup for Element.makeelement(): the new element reuses the original
-libxml2 document instead of creating a new empty one</li>
-<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
-<li>ElementTree compatible QName class</li>
-<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
-</ul>
-</div>
-<div class="section" id="id313">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
-<li>Memory leak if write_c14n fails to write the file after conversion</li>
-<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
-<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id314">
-<h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id315">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
-SaxError on mismatch</li>
-<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
-(startElement, endElement) and defaults to empty attributes (keyword
-argument)</li>
-<li>Speedup for repeatedly accessing element tag names</li>
-<li>Minor API performance improvements</li>
-</ul>
-</div>
-<div class="section" id="id316">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
-<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
-<li>lxml.tests package will no longer be installed (is still in source tar)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id317">
-<h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id318">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging API for libxml2 error messages</li>
-<li>Various performance improvements</li>
-<li>Benchmark script for lxml, ElementTree and cElementTree</li>
-<li>Support for registering extension functions through new FunctionNamespace
-class (see doc/extensions.txt)</li>
-<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
-<li>Support for variables in XPath expressions (also in XPath class)</li>
-<li>XPath class for compiled XPath expressions</li>
-<li>XMLID module level function (ElementTree compatible)</li>
-<li>XMLParser API for customized libxml2 parser configuration</li>
-<li>Support for custom Element classes through new Namespace API (see
-doc/namespace_extensions.txt)</li>
-<li>Common exception base class LxmlError for module exceptions</li>
-<li>real iterator support in iter(Element), Element.getiterator()</li>
-<li>XSLT objects are callable, result trees support str()</li>
-<li>Added MANIFEST.in for easier creation of RPM files.</li>
-<li>'getparent' method on elements allows navigation to an element's
-parent element.</li>
-<li>Python core compatible SAX tree builder and SAX event generator. See
-doc/sax.txt for more information.</li>
-</ul>
-</div>
-<div class="section" id="id319">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Segfaults and memory leaks in various API functions of Element</li>
-<li>Segfault in XSLT.tostring()</li>
-<li>ElementTree objects no longer interfere, Elements can be root of different
-ElementTrees at the same time</li>
-<li>document('') works in XSLT documents read from files (in-memory documents
-cannot support this due to libxslt deficiencies)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id320">
-<h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id321">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
-does the same thing, and does <em>not</em> create a shallow copy, as that
-makes no sense in the context of libxml2 trees. This means a
-potential incompatibility with ElementTree, but there's more chance
-that it works than if copy.copy() isn't supported at all.</li>
-<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
-supported and parsing of gzipped XML files works.</li>
-<li>implemented index() on elements, allowing one to find the index of a
-SubElement.</li>
-</ul>
-</div>
-<div class="section" id="id322">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Use xslt-config instead of xml2-config to find out libxml2
-directories to take into account a case where libxslt is installed
-in a different directory than libxslt.</li>
-<li>Eliminate crash condition in iteration when text nodes are changed.</li>
-<li>Passing 'None' to tostring() does not result in a segfault anymore,
-but an AssertionError.</li>
-<li>Some test fixes for Windows.</li>
-<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
-syntax errors. This should be less confusing.</li>
-<li>Fixed error with uncaught exception in Pyrex code.</li>
-<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
-segfault.</li>
-<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
-<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
-libxml2 version, as it should.</li>
-<li>Passing a UTF-8 encoded string to the XML() function would fail;
-fixed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id323">
-<h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id324">
-<h2>Features added</h2>
-<ul class="simple">
-<li>parameters (XPath expressions) can be passed to XSLT using keyword
-parameters.</li>
-<li>Simple XInclude support. Calling the xinclude() method on a tree
-will process any XInclude statements in the document.</li>
-<li>XMLSchema support. Use the XMLSchema class or the convenience
-xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
-<li>Added convenience xslt() method on tree. This is less efficient
-than the XSLT object, but makes it easier to write quick code.</li>
-<li>Added convenience relaxng() method on tree. This is less efficient
-than the RelaxNG object, but makes it easier to write quick code.</li>
-<li>Make it possible to use XPathEvaluator with elements as well. The
-XPathEvaluator in this case will retain the element so multiple
-XPath queries can be made against one element efficiently. This
-replaces the second argument to the .evaluate() method that existed
-previously.</li>
-<li>Allow registerNamespace() to be called on an XPathEvaluator, after
-creation, to add additional namespaces. Also allow registerNamespaces(),
-which does the same for a namespace dictionary.</li>
-<li>Add 'prefix' attribute to element to be able to read prefix information.
-This is entirely read-only.</li>
-<li>It is possible to supply an extra nsmap keyword parameter to
-the Element() and SubElement() constructors, which supplies a
-prefix to namespace URI mapping. This will create namespace
-prefix declarations on these elements and these prefixes will show up
-in XML serialization.</li>
-</ul>
-</div>
-<div class="section" id="id325">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Killed yet another memory management related bug: trees created
-using newDoc would not get a libxml2-level dictionary, which caused
-problems when deallocating these documents later if they contained a
-node that came from a document with a dictionary.</li>
-<li>Moving namespaced elements between documents was problematic as
-references to the original document would remain. This has been fixed
-by applying xmlReconciliateNs() after each move operation.</li>
-<li>Can pass None to 'dump()' without segfaults.</li>
-<li>tostring() works properly for non-root elements as well.</li>
-<li>Cleaned out the tostring() method so it should handle encoding
-correctly.</li>
-<li>Cleaned out the ElementTree.write() method so it should handle encoding
-correctly. Writing directly to a file should also be faster, as there is no
-need to go through a Python string in that case. Made sure the test cases
-test both serializing to StringIO as well as serializing to a real file.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id326">
-<h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id327">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Changed setup.py so that library_dirs is also guessed. This should
-help with compilation on the Mac OS X platform, where otherwise the
-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="id328">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Do the right thing when handling namespaced attributes.</li>
-<li>fix bug where tostring() moved nodes into new documents. tostring()
-had very nasty side-effects before this fix, sorry!</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id329">
-<h1>0.5.1 (2005-04-09)</h1>
-<ul class="simple">
-<li>Python 2.2 compatibility fixes.</li>
-<li>unicode fixes in Element() and Comment() as well as XML(); unicode
-input wasn't properly being UTF-8 encoded.</li>
-</ul>
-</div>
-<div class="section" id="id330">
-<h1>0.5 (2005-04-08)</h1>
-<p>Initial public release.</p>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2015-04-10.
-
-</div>
-</body>
-</html>
similarity index 98%
rename from doc/html/changes-3.6.0.html
rename to doc/html/changes-3.6.3.html
index 4ac4ca4..5d3501f 100644 (file)
 <h1 class="title">lxml changelog</h1>
 
 <div class="section" id="id1">
-<h1>3.6.0 (2016-03-17)</h1>
+<h1>3.6.3 (2016-08-18)</h1>
+<ul class="simple">
+<li>release without source changes to provide cleanly built Linux wheels</li>
+</ul>
+</div>
+<div class="section" id="id2">
+<h1>3.6.2 (2016-08-18)</h1>
+<ul class="simple">
+<li>release without source changes to provide cleanly built Linux wheels</li>
+</ul>
+</div>
+<div class="section" id="id3">
+<h1>3.6.1 (2016-07-24)</h1>
 <div class="section" id="features-added">
 <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>
+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="bugs-fixed">
+<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).
+Patch by Tomas Divis.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/198">GH#198</a>, <a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1568167">LP#1568167</a>: Try to provide base URL from <tt class="docutils literal">Resolver.resolve_string()</tt>.
+Patch by Michael van Tellingen.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/191">GH#191</a>: More accurate float serialisation in <tt class="docutils literal">objectify.FloatElement</tt>.
+Patch by Holger Joukl.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: Repair XSLT error logging. Patch by Marcus Brinkmann.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id4">
+<h1>3.6.0 (2016-03-17)</h1>
+<div class="section" id="id5">
+<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.
 Patch by Armin Rigo.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/181">GH#181</a>: Direct support for <cite>.rnc</cite> files in <cite>RelaxNG()</cite> if <cite>rnc2rng</cite>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/181">GH#181</a>: Direct support for <tt class="docutils literal">.rnc</tt> files in <cite>RelaxNG()</cite> if <tt class="docutils literal">rnc2rng</tt>
 is installed.  Patch by Dirkjan Ochtman.</li>
 </ul>
 </div>
-<div class="section" id="bugs-fixed">
+<div class="section" id="id6">
 <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
 the external libs.  Patch by Youhei Sakurai.</li>
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/186">GH#186</a>: Soupparser failed to process entities in Python 3.x.
 Patch by Duncan Morris.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/185">GH#185</a>: Rare encoding related <cite>TypeError</cite> on import was fixed.
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/185">GH#185</a>: Rare encoding related <tt class="docutils literal">TypeError</tt> on import was fixed.
 Patch by Petr Demin.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id2">
+<div class="section" id="id7">
 <h1>3.5.0 (2015-11-13)</h1>
-<div class="section" id="id3">
+<div class="section" id="id8">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Unicode string results failed XPath queries in PyPy.</li>
@@ -48,7 +83,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="id4">
+<div class="section" id="id9">
 <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>
@@ -80,7 +115,7 @@ Patch by Olli Pottonen.</li>
 of version 3 if available.</li>
 </ul>
 </div>
-<div class="section" id="id5">
+<div class="section" id="id10">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory errors that occur during tree adaptations (e.g. moving subtrees
@@ -107,9 +142,9 @@ with ElementPath to avoid hiding bugs in user code.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id6">
+<div class="section" id="id11">
 <h1>3.4.4 (2015-04-25)</h1>
-<div class="section" id="id7">
+<div class="section" id="id12">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>An ElementTree compatibility test added in lxml 3.4.3 that failed in
@@ -117,9 +152,9 @@ Python 3.4+ was removed again.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id8">
+<div class="section" id="id13">
 <h1>3.4.3 (2015-04-15)</h1>
-<div class="section" id="id9">
+<div class="section" id="id14">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Expression cache in ElementPath was ignored.  Fix by Changaco.</li>
@@ -132,9 +167,9 @@ double quotes.  Patch by Olli Pottonen.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id10">
+<div class="section" id="id15">
 <h1>3.4.2 (2015-02-07)</h1>
-<div class="section" id="id11">
+<div class="section" id="id16">
 <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
@@ -146,25 +181,25 @@ with pseudo-attributes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id12">
+<div class="section" id="id17">
 <h1>3.4.1 (2014-11-20)</h1>
-<div class="section" id="id13">
+<div class="section" id="id18">
 <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="id14">
+<div class="section" id="id19">
 <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="id15">
+<div class="section" id="id20">
 <h1>3.4.0 (2014-09-10)</h1>
-<div class="section" id="id16">
+<div class="section" id="id21">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
@@ -189,7 +224,7 @@ if it had opened it internally.</li>
 <li>Allow &quot;bytearray&quot; type for ASCII text input.</li>
 </ul>
 </div>
-<div class="section" id="id17">
+<div class="section" id="id22">
 <h2>Bugs fixed</h2>
 </div>
 <div class="section" id="other-changes">
@@ -206,9 +241,9 @@ use lxml 3.3.x with older versions.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id18">
+<div class="section" id="id23">
 <h1>3.3.6 (2014-08-28)</h1>
-<div class="section" id="id19">
+<div class="section" id="id24">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Prevent tree cycle creation when adding Elements as siblings.</li>
@@ -218,9 +253,9 @@ extension functions.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id20">
+<div class="section" id="id25">
 <h1>3.3.5 (2014-04-18)</h1>
-<div class="section" id="id21">
+<div class="section" id="id26">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>HTML cleaning could fail to strip javascript links that mix control
@@ -228,34 +263,34 @@ characters into the link scheme.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id22">
+<div class="section" id="id27">
 <h1>3.3.4 (2014-04-03)</h1>
-<div class="section" id="id23">
+<div class="section" id="id28">
 <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="id24">
+<div class="section" id="id29">
 <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="id25">
+<div class="section" id="id30">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id26">
+<div class="section" id="id31">
 <h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id27">
+<div class="section" id="id32">
 <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="id28">
+<div class="section" id="id33">
 <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
@@ -263,9 +298,9 @@ subclassed from Python code.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id29">
+<div class="section" id="id34">
 <h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id30">
+<div class="section" id="id35">
 <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
@@ -286,12 +321,12 @@ provide the same interface as that returned for Elements.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id31">
+<div class="section" id="id36">
 <h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id32">
+<div class="section" id="id37">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id33">
+<div class="section" id="id38">
 <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
@@ -303,36 +338,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="id34">
+<div class="section" id="id39">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id35">
+<div class="section" id="id40">
 <h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id36">
+<div class="section" id="id41">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id37">
+<div class="section" id="id42">
 <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="id38">
+<div class="section" id="id43">
 <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="id39">
+<div class="section" id="id44">
 <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="id40">
+<div class="section" id="id45">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Several error handling problems were fixed throughout the code base that
@@ -345,7 +380,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="id41">
+<div class="section" id="id46">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Document cleanup code was simplified using the new GC features in
@@ -355,10 +390,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="id42">
+<div class="section" id="id47">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id43">
+<div class="section" id="id48">
 <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
@@ -371,7 +406,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="id44">
+<div class="section" id="id49">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
@@ -381,39 +416,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="id45">
+<div class="section" id="id50">
 <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="id46">
+<div class="section" id="id51">
 <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="id47">
+<div class="section" id="id52">
 <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="id48">
+<div class="section" id="id53">
 <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="id49">
+<div class="section" id="id54">
 <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="id50">
+<div class="section" id="id55">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The safety check in the read-only tree implementation (e.g. used by
@@ -426,7 +461,7 @@ behaviour.</li>
 </div>
 <div class="section" id="beta1-2013-12-12">
 <h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id51">
+<div class="section" id="id56">
 <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
@@ -438,7 +473,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="id52">
+<div class="section" id="id57">
 <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.
@@ -460,7 +495,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="id53">
+<div class="section" id="id58">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Some basic API classes use freelists internally for faster
@@ -471,12 +506,12 @@ classes internally instead of being a parser itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id54">
+<div class="section" id="id59">
 <h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id55">
+<div class="section" id="id60">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id56">
+<div class="section" id="id61">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
@@ -485,16 +520,16 @@ classes internally instead of being a parser itself.</li>
 comment or PI).</li>
 </ul>
 </div>
-<div class="section" id="id58">
+<div class="section" id="id63">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id59">
+<div class="section" id="id64">
 <h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id60">
+<div class="section" id="id65">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id61">
+<div class="section" id="id66">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak when creating an XPath evaluator in a thread.</li>
@@ -505,32 +540,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="id64">
+<div class="section" id="id69">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id65">
+<div class="section" id="id70">
 <h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id66">
+<div class="section" id="id71">
 <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="id67">
+<div class="section" id="id72">
 <h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id68">
+<div class="section" id="id73">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id69">
+<div class="section" id="id74">
 <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="id70">
+<div class="section" id="id75">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Return values of user provided element class lookup methods are now
@@ -539,9 +574,9 @@ API class mismatches.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id71">
+<div class="section" id="id76">
 <h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id72">
+<div class="section" id="id77">
 <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
@@ -550,7 +585,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="id73">
+<div class="section" id="id78">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When moving Elements to another tree, the namespace cleanup mechanism
@@ -563,16 +598,16 @@ to a crash.</li>
 crashed.</li>
 </ul>
 </div>
-<div class="section" id="id74">
+<div class="section" id="id79">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id75">
+<div class="section" id="id80">
 <h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id76">
+<div class="section" id="id81">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id77">
+<div class="section" id="id82">
 <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
@@ -591,16 +626,16 @@ of overwriting the current value.</li>
 allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
 </ul>
 </div>
-<div class="section" id="id78">
+<div class="section" id="id83">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id79">
+<div class="section" id="id84">
 <h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id80">
+<div class="section" id="id85">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id81">
+<div class="section" id="id86">
 <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
@@ -612,16 +647,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="id82">
+<div class="section" id="id87">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id83">
+<div class="section" id="id88">
 <h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id84">
+<div class="section" id="id89">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id85">
+<div class="section" id="id90">
 <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
@@ -629,7 +664,7 @@ an AttributeError in Py3.</li>
 <li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
 </ul>
 </div>
-<div class="section" id="id86">
+<div class="section" id="id91">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
@@ -637,16 +672,16 @@ from the module dict.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id87">
+<div class="section" id="id92">
 <h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id88">
+<div class="section" id="id93">
 <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="id89">
+<div class="section" id="id94">
 <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
@@ -659,13 +694,13 @@ in for the current run.</li>
 without threading support.  Patch by Ulrich Seidl.</li>
 </ul>
 </div>
-<div class="section" id="id90">
+<div class="section" id="id95">
 <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="id91">
+<div class="section" id="id96">
 <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
@@ -676,7 +711,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="id92">
+<div class="section" id="id97">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When starting from a non-namespaced element in lxml.objectify, searching
@@ -688,7 +723,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="id93">
+<div class="section" id="id98">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
@@ -698,27 +733,27 @@ many children.  Patch by Anders Hammarquist.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id94">
+<div class="section" id="id99">
 <h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id95">
+<div class="section" id="id100">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id96">
+<div class="section" id="id101">
 <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="id97">
+<div class="section" id="id102">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id98">
+<div class="section" id="id103">
 <h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id99">
+<div class="section" id="id104">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id100">
+<div class="section" id="id105">
 <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
@@ -727,16 +762,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="id101">
+<div class="section" id="id106">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id102">
+<div class="section" id="id107">
 <h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id103">
+<div class="section" id="id108">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id104">
+<div class="section" id="id109">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>End-of-file handling was incorrect in iterparse() when reading from
@@ -744,7 +779,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="id105">
+<div class="section" id="id110">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The build no longer uses Cython by default unless the generated C files
@@ -757,21 +792,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="id106">
+<div class="section" id="id111">
 <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="id107">
+<div class="section" id="id112">
 <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="id108">
+<div class="section" id="id113">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
@@ -780,7 +815,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="id109">
+<div class="section" id="id114">
 <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
@@ -799,20 +834,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="id110">
+<div class="section" id="id115">
 <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="id111">
+<div class="section" id="id116">
 <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="id112">
+<div class="section" id="id117">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Initial support for building in PyPy (through cpyext).</li>
@@ -828,7 +863,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="id113">
+<div class="section" id="id118">
 <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
@@ -855,7 +890,7 @@ constructor would fail with an exception, stating that the text
 cannot be modified.</li>
 </ul>
 </div>
-<div class="section" id="id114">
+<div class="section" id="id119">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The code base was overhauled to properly use 'const' where the API
@@ -904,44 +939,44 @@ _XSLTResultTree, _XSLTProcessingInstruction</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id115">
+<div class="section" id="id120">
 <h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id116">
+<div class="section" id="id121">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id117">
+<div class="section" id="id122">
 <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="id118">
+<div class="section" id="id123">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id119">
+<div class="section" id="id124">
 <h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id120">
+<div class="section" id="id125">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id121">
+<div class="section" id="id126">
 <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="id122">
+<div class="section" id="id127">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id123">
+<div class="section" id="id128">
 <h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id124">
+<div class="section" id="id129">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id125">
+<div class="section" id="id130">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when building an nsmap (Element property) with empty
@@ -951,20 +986,20 @@ during threaded XSLT processing.</li>
 <li>XSLT stylesheet compilation could ignore compilation errors.</li>
 </ul>
 </div>
-<div class="section" id="id126">
+<div class="section" id="id131">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id127">
+<div class="section" id="id132">
 <h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id128">
+<div class="section" id="id133">
 <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="id129">
+<div class="section" id="id134">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
@@ -978,13 +1013,13 @@ Patch by Simon Sapin.</li>
 'img' tags without 'src' attribute.</li>
 </ul>
 </div>
-<div class="section" id="id130">
+<div class="section" id="id135">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id131">
+<div class="section" id="id136">
 <h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id132">
+<div class="section" id="id137">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
@@ -996,7 +1031,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="id133">
+<div class="section" id="id138">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
@@ -1011,13 +1046,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="id134">
+<div class="section" id="id139">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id135">
+<div class="section" id="id140">
 <h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id136">
+<div class="section" id="id141">
 <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
@@ -1035,7 +1070,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="id137">
+<div class="section" id="id142">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>HTML cleaning didn't remove 'data:' links.</li>
@@ -1063,7 +1098,7 @@ collected form values.</li>
 field properly selects them and unselects them.</li>
 </ul>
 </div>
-<div class="section" id="id138">
+<div class="section" id="id143">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Static builds can specify the download directory with the
@@ -1071,16 +1106,16 @@ field properly selects them and unselects them.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id139">
+<div class="section" id="id144">
 <h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id140">
+<div class="section" id="id145">
 <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="id141">
+<div class="section" id="id146">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When finished reading from a file-like object, the parser
@@ -1093,7 +1128,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="id142">
+<div class="section" id="id147">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Some public functions in the Cython-level C-API have more explicit
@@ -1103,10 +1138,10 @@ return types.</li>
 </div>
 <div class="section" id="beta1-2010-09-06">
 <h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id143">
+<div class="section" id="id148">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id144">
+<div class="section" id="id149">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in newer libxml2 versions when moving elements between
@@ -1118,23 +1153,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="id145">
+<div class="section" id="id150">
 <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="id146">
+<div class="section" id="id151">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id147">
+<div class="section" id="id152">
 <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="id148">
+<div class="section" id="id153">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
@@ -1144,7 +1179,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="id149">
+<div class="section" id="id154">
 <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>
@@ -1195,7 +1230,7 @@ the document on submit.</li>
 (compatible with ElementTree).</li>
 </ul>
 </div>
-<div class="section" id="id150">
+<div class="section" id="id155">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>API is hardened against invalid proxy instances to prevent crashes
@@ -1229,7 +1264,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="id151">
+<div class="section" id="id156">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Official support for Python 3.1.2 and later.</li>
@@ -1242,9 +1277,9 @@ collector to clean up.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id152">
+<div class="section" id="id157">
 <h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id153">
+<div class="section" id="id158">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in newer libxml2 versions when moving elements between
@@ -1253,9 +1288,9 @@ documents that had attributes on replaced XInclude nodes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id154">
+<div class="section" id="id159">
 <h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id155">
+<div class="section" id="id160">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XSLT when generating text-only result documents with a
@@ -1263,25 +1298,25 @@ stylesheet created in a different thread.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id156">
+<div class="section" id="id161">
 <h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id157">
+<div class="section" id="id162">
 <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="id158">
+<div class="section" id="id163">
 <h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id159">
+<div class="section" id="id164">
 <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="id160">
+<div class="section" id="id165">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XPath evaluation when reading smart strings from a document
@@ -1300,21 +1335,21 @@ an element.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id161">
+<div class="section" id="id166">
 <h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id162">
+<div class="section" id="id167">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Static build of libxml2/libxslt was broken.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id163">
+<div class="section" id="id168">
 <h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id164">
+<div class="section" id="id169">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id165">
+<div class="section" id="id170">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
@@ -1347,13 +1382,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="id166">
+<div class="section" id="id171">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id167">
+<div class="section" id="id172">
 <h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id168">
+<div class="section" id="id173">
 <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>,
@@ -1361,7 +1396,7 @@ namespaces when annotation is disabled.</li>
 from a subtree.</li>
 </ul>
 </div>
-<div class="section" id="id169">
+<div class="section" id="id174">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Namespace cleanup on subtree insertions could result in missing
@@ -1375,13 +1410,13 @@ BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
 behaviour.</li>
 </ul>
 </div>
-<div class="section" id="id170">
+<div class="section" id="id175">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id171">
+<div class="section" id="id176">
 <h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id172">
+<div class="section" id="id177">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Injecting default attributes into a document during XML Schema
@@ -1390,7 +1425,7 @@ validation (also at parse time).</li>
 restrictions imposed by libxml2 2.7.</li>
 </ul>
 </div>
-<div class="section" id="id173">
+<div class="section" id="id178">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The script for statically building libxml2 and libxslt didn't work
@@ -1399,13 +1434,13 @@ in Py3.</li>
 for parsing (which could lead to a crash before release 2.6.24).</li>
 </ul>
 </div>
-<div class="section" id="id174">
+<div class="section" id="id179">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id175">
+<div class="section" id="id180">
 <h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id176">
+<div class="section" id="id181">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
@@ -1413,7 +1448,7 @@ for parsing (which could lead to a crash before release 2.6.24).</li>
 on serialisation.</li>
 </ul>
 </div>
-<div class="section" id="id177">
+<div class="section" id="id182">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing an XML Schema with external imports from a
@@ -1423,7 +1458,7 @@ filename.</li>
 </div>
 <div class="section" id="beta4-2009-02-27">
 <h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id178">
+<div class="section" id="id183">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support strings and instantiable Element classes as child arguments
@@ -1432,7 +1467,7 @@ to the constructor of custom Element classes.</li>
 objects.</li>
 </ul>
 </div>
-<div class="section" id="id179">
+<div class="section" id="id184">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Deep-copying an ElementTree copied neither its sibling PIs and
@@ -1447,7 +1482,7 @@ to a problem in Cython, not lxml itself.</li>
 was evaluated incorrectly.</li>
 </ul>
 </div>
-<div class="section" id="id180">
+<div class="section" id="id185">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Official support for Python 3.0.1.</li>
@@ -1458,14 +1493,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="id181">
+<div class="section" id="id186">
 <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="id182">
+<div class="section" id="id187">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak in XPath evaluators.</li>
@@ -1477,7 +1512,7 @@ string failed.</li>
 <li>Minor fixes for Python 3.</li>
 </ul>
 </div>
-<div class="section" id="id183">
+<div class="section" id="id188">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The global error log (which is copied into the exception log) is now
@@ -1488,7 +1523,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="id184">
+<div class="section" id="id189">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Potential memory leak on exception handling.  This was due to a
@@ -1500,9 +1535,9 @@ problem in Cython, not lxml itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id185">
+<div class="section" id="id190">
 <h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id186">
+<div class="section" id="id191">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Potential memory leak on exception handling.  This was due to a
@@ -1513,39 +1548,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="id187">
+<div class="section" id="id192">
 <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="id188">
+<div class="section" id="id193">
 <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="id189">
+<div class="section" id="id194">
 <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="id190">
+<div class="section" id="id195">
 <h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id191">
+<div class="section" id="id196">
 <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="id192">
+<div class="section" id="id197">
 <h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id193">
+<div class="section" id="id198">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when using an XPath evaluator in multiple threads.</li>
@@ -1554,7 +1589,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="id194">
+<div class="section" id="id199">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for XSLT result tree fragments in XPath/XSLT extension
@@ -1564,7 +1599,7 @@ functions.</li>
 <li>Instantiating a custom Element classes creates a new Element.</li>
 </ul>
 </div>
-<div class="section" id="id195">
+<div class="section" id="id200">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>XSLT didn't inherit the parse options of the input document.</li>
@@ -1575,16 +1610,16 @@ that end in a parenthesis, will be linked in their entirety (typical
 with Wikipedia links).</li>
 </ul>
 </div>
-<div class="section" id="id196">
+<div class="section" id="id201">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id197">
+<div class="section" id="id202">
 <h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id198">
+<div class="section" id="id203">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id199">
+<div class="section" id="id204">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Ref-count leaks when lxml enters a try-except statement while an
@@ -1603,13 +1638,13 @@ ElementTrees.</li>
 <li>Overriding the parser encoding didn't work for many encodings.</li>
 </ul>
 </div>
-<div class="section" id="id200">
+<div class="section" id="id205">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id201">
+<div class="section" id="id206">
 <h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id202">
+<div class="section" id="id207">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Ref-count leaks when lxml enters a try-except statement while an
@@ -1618,9 +1653,9 @@ Cython, not lxml itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id203">
+<div class="section" id="id208">
 <h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id204">
+<div class="section" id="id209">
 <h2>Features added</h2>
 <ul class="simple">
 <li>lxml.etree now tries to find the absolute path name of files when
@@ -1629,7 +1664,7 @@ resolving relative URLs, as lixbml2 can prepend them with the path
 of the source document.</li>
 </ul>
 </div>
-<div class="section" id="id205">
+<div class="section" id="id210">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory problem when passing documents between threads.</li>
@@ -1637,13 +1672,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="id206">
+<div class="section" id="id211">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id207">
+<div class="section" id="id212">
 <h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id208">
+<div class="section" id="id213">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory problem when passing documents between threads.</li>
@@ -1652,12 +1687,12 @@ exception instead of calling <tt class="docutils literal">.close()</tt> on the t
 </ul>
 </div>
 </div>
-<div class="section" id="id209">
+<div class="section" id="id214">
 <h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id210">
+<div class="section" id="id215">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id211">
+<div class="section" id="id216">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing XSLT stylesheets in a thread and using them in
@@ -1666,20 +1701,20 @@ another.</li>
 Python 3.</li>
 </ul>
 </div>
-<div class="section" id="id212">
+<div class="section" id="id217">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id213">
+<div class="section" id="id218">
 <h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id214">
+<div class="section" id="id219">
 <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="id215">
+<div class="section" id="id220">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing XSLT stylesheets in a thread and using them in
@@ -1688,13 +1723,13 @@ another.</li>
 with parameters.</li>
 </ul>
 </div>
-<div class="section" id="id216">
+<div class="section" id="id221">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id217">
+<div class="section" id="id222">
 <h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id218">
+<div class="section" id="id223">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
@@ -1703,7 +1738,7 @@ keyword option).</li>
 with whitespace in URL attributes.</li>
 </ul>
 </div>
-<div class="section" id="id219">
+<div class="section" id="id224">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Custom resolvers were not used for XMLSchema includes/imports and
@@ -1712,7 +1747,7 @@ XInclude processing.</li>
 with parameters.</li>
 </ul>
 </div>
-<div class="section" id="id220">
+<div class="section" id="id225">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
@@ -1721,15 +1756,15 @@ with parameters.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id221">
+<div class="section" id="id226">
 <h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id222">
+<div class="section" id="id227">
 <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="id223">
+<div class="section" id="id228">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Descending dot-separated classes in CSS selectors were not resolved
@@ -1740,7 +1775,7 @@ correctly.</li>
 the super class is not called from Python subclasses.</li>
 </ul>
 </div>
-<div class="section" id="id224">
+<div class="section" id="id229">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Non-ASCII characters in attribute values are no longer escaped on
@@ -1750,7 +1785,7 @@ serialisation.</li>
 </div>
 <div class="section" id="beta3-2008-06-19">
 <h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id225">
+<div class="section" id="id230">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
@@ -1776,7 +1811,7 @@ lxml.html (experimental).</li>
 (experimental).</li>
 </ul>
 </div>
-<div class="section" id="id226">
+<div class="section" id="id231">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
@@ -1791,7 +1826,7 @@ platform.</li>
 <li>Rare crash when serialising to a file object with certain encodings.</li>
 </ul>
 </div>
-<div class="section" id="id227">
+<div class="section" id="id232">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Non-ASCII characters in attribute values are no longer escaped on
@@ -1804,12 +1839,12 @@ lxml.objectify.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id228">
+<div class="section" id="id233">
 <h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id229">
+<div class="section" id="id234">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id230">
+<div class="section" id="id235">
 <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>
@@ -1820,7 +1855,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="id231">
+<div class="section" id="id236">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>lxml should now build without problems on MacOS-X.</li>
@@ -1829,7 +1864,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="id232">
+<div class="section" id="id237">
 <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>
@@ -1838,7 +1873,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="id233">
+<div class="section" id="id238">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Moving a subtree from a document created in one thread into a
@@ -1849,7 +1884,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="id234">
+<div class="section" id="id239">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>If the default namespace is redundantly defined with a prefix on the
@@ -1861,12 +1896,12 @@ namespace (i.e. they would end up in the wrong namespace).</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id235">
+<div class="section" id="id240">
 <h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id236">
+<div class="section" id="id241">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id237">
+<div class="section" id="id242">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Resolving to a filename in custom resolvers didn't work.</li>
@@ -1875,13 +1910,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="id238">
+<div class="section" id="id243">
 <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="id239">
+<div class="section" id="id244">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
@@ -1891,7 +1926,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="id240">
+<div class="section" id="id245">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Resolving to a filename in custom resolvers didn't work.</li>
@@ -1901,7 +1936,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="id241">
+<div class="section" id="id246">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
@@ -1915,12 +1950,12 @@ context.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id242">
+<div class="section" id="id247">
 <h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id243">
+<div class="section" id="id248">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id244">
+<div class="section" id="id249">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Hanging thread in conjunction with GTK threading.</li>
@@ -1929,13 +1964,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="id245">
+<div class="section" id="id250">
 <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="id246">
+<div class="section" id="id251">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
@@ -1949,14 +1984,14 @@ an Element.</li>
 <li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
 </ul>
 </div>
-<div class="section" id="id247">
+<div class="section" id="id252">
 <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="id248">
+<div class="section" id="id253">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Minor API speed-ups.</li>
@@ -2000,9 +2035,9 @@ instead.</p>
 </ul>
 </div>
 </div>
-<div class="section" id="id249">
+<div class="section" id="id254">
 <h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id250">
+<div class="section" id="id255">
 <h2>Features added</h2>
 <ul class="simple">
 <li>soupparser.parse() allows passing keyword arguments on to
@@ -2010,7 +2045,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="id251">
+<div class="section" id="id256">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
@@ -2023,7 +2058,7 @@ which made them turn up in text content.</li>
 correctly serialise the value to a string.</li>
 </ul>
 </div>
-<div class="section" id="id252">
+<div class="section" id="id257">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
@@ -2039,16 +2074,16 @@ option.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id253">
+<div class="section" id="id258">
 <h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id254">
+<div class="section" id="id259">
 <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="id255">
+<div class="section" id="id260">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The prefix for objectify's pytype namespace was missing from the set
@@ -2058,7 +2093,7 @@ of default prefixes.</li>
 <li>Slice deletion bug fixed in objectify.</li>
 </ul>
 </div>
-<div class="section" id="id256">
+<div class="section" id="id261">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
@@ -2069,9 +2104,9 @@ of default prefixes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id257">
+<div class="section" id="id262">
 <h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id258">
+<div class="section" id="id263">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
@@ -2079,7 +2114,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="id259">
+<div class="section" id="id264">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
@@ -2091,7 +2126,7 @@ ignored.</li>
 elements at the wrong position.</li>
 </ul>
 </div>
-<div class="section" id="id260">
+<div class="section" id="id265">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The generated API documentation was cleaned up and disburdened from
@@ -2106,9 +2141,9 @@ compiler options.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id261">
+<div class="section" id="id266">
 <h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id262">
+<div class="section" id="id267">
 <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
@@ -2213,7 +2248,7 @@ instead of a string</li>
 <li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
 </ul>
 </div>
-<div class="section" id="id263">
+<div class="section" id="id268">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
@@ -2250,7 +2285,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="id264">
+<div class="section" id="id269">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Exceptions carry only the part of the error log that is related to
@@ -2308,16 +2343,16 @@ generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id265">
+<div class="section" id="id270">
 <h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id266">
+<div class="section" id="id271">
 <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="id267">
+<div class="section" id="id272">
 <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>
@@ -2327,12 +2362,12 @@ problems that would otherwise appear in later tests.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id268">
+<div class="section" id="id273">
 <h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id269">
+<div class="section" id="id274">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id270">
+<div class="section" id="id275">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>lxml.etree could crash when adding more than 10000 namespaces to a
@@ -2342,9 +2377,9 @@ than the root node of a tree</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id271">
+<div class="section" id="id276">
 <h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id272">
+<div class="section" id="id277">
 <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
@@ -2358,13 +2393,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="id273">
+<div class="section" id="id278">
 <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="id274">
+<div class="section" id="id279">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>lxml now raises a TagNameWarning about tag names containing ':' instead of
@@ -2380,9 +2415,9 @@ ElementTree serialisation includes them).</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id275">
+<div class="section" id="id280">
 <h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id276">
+<div class="section" id="id281">
 <h2>Features added</h2>
 <ul class="simple">
 <li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
@@ -2393,7 +2428,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="id277">
+<div class="section" id="id282">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parsing from Python Unicode strings failed on some platforms</li>
@@ -2403,21 +2438,21 @@ the parser you pass.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id278">
+<div class="section" id="id283">
 <h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id279">
+<div class="section" id="id284">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id280">
+<div class="section" id="id285">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>&quot;deallocating None&quot; crash bug</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id281">
+<div class="section" id="id286">
 <h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id282">
+<div class="section" id="id287">
 <h2>Features added</h2>
 <ul class="simple">
 <li>objectify.DataElement now supports setting values from existing data
@@ -2425,7 +2460,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="id283">
+<div class="section" id="id288">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Better way to prevent crashes in Element proxy cleanup code</li>
@@ -2435,9 +2470,9 @@ elements (not just plain Python types) and reuses defined namespaces etc.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id284">
+<div class="section" id="id289">
 <h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id285">
+<div class="section" id="id290">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
@@ -2466,7 +2501,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="id286">
+<div class="section" id="id291">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Removing Elements from a tree could make them lose their namespace
@@ -2490,16 +2525,16 @@ PIs are copied.</li>
 documents</li>
 </ul>
 </div>
-<div class="section" id="id287">
+<div class="section" id="id292">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>major restructuring in the documentation</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id288">
+<div class="section" id="id293">
 <h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id289">
+<div class="section" id="id294">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Build fixes for MS compiler</li>
@@ -2510,9 +2545,9 @@ to access</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id290">
+<div class="section" id="id295">
 <h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id291">
+<div class="section" id="id296">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Rich comparison of QName objects</li>
@@ -2528,7 +2563,7 @@ possible to pass an --rpath directly to distutils; previously this was being
 shadowed.</li>
 </ul>
 </div>
-<div class="section" id="id292">
+<div class="section" id="id297">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Element instantiation now uses locks to prevent race conditions with threads</li>
@@ -2538,7 +2573,7 @@ support in these environments</li>
 <li>Element.find*() did not accept QName objects as path</li>
 </ul>
 </div>
-<div class="section" id="id293">
+<div class="section" id="id298">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>code cleanup: redundant _NodeBase super class merged into _Element class
@@ -2547,9 +2582,9 @@ the compatibility of the public C-API</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id294">
+<div class="section" id="id299">
 <h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id295">
+<div class="section" id="id300">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Data elements in objectify support repr(), which is now used by dump()</li>
@@ -2560,7 +2595,7 @@ tail, attributes and namespaces</li>
 <li>Simplified support for handling XSLT processing instructions</li>
 </ul>
 </div>
-<div class="section" id="id296">
+<div class="section" id="id301">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parser resources were not freed before the next parser run</li>
@@ -2576,9 +2611,9 @@ closed/freed</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id297">
+<div class="section" id="id302">
 <h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id298">
+<div class="section" id="id303">
 <h2>Features added</h2>
 <ul class="simple">
 <li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
@@ -2586,7 +2621,7 @@ closed/freed</li>
 <li>Support custom elements for tree nodes in lxml.objectify</li>
 </ul>
 </div>
-<div class="section" id="id299">
+<div class="section" id="id304">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
@@ -2601,9 +2636,9 @@ elements)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id300">
+<div class="section" id="id305">
 <h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id301">
+<div class="section" id="id306">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Comments and processing instructions return '&lt;!-- comment --&gt;' and
@@ -2656,7 +2691,7 @@ generated elements</li>
 element</li>
 </ul>
 </div>
-<div class="section" id="id302">
+<div class="section" id="id307">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>filenames with local 8-bit encoding were not supported</li>
@@ -2680,30 +2715,30 @@ change from 1.0.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id303">
+<div class="section" id="id308">
 <h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id304">
+<div class="section" id="id309">
 <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="id305">
+<div class="section" id="id310">
 <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="id306">
+<div class="section" id="id311">
 <h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id307">
+<div class="section" id="id312">
 <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="id308">
+<div class="section" id="id313">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when mixing elements from XSLT results into other trees</li>
@@ -2713,16 +2748,16 @@ change from 1.0.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id309">
+<div class="section" id="id314">
 <h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id310">
+<div class="section" id="id315">
 <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="id311">
+<div class="section" id="id316">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Rare exceptions in Python list functions were not handled</li>
@@ -2734,15 +2769,15 @@ cases</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id312">
+<div class="section" id="id317">
 <h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id313">
+<div class="section" id="id318">
 <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="id314">
+<div class="section" id="id319">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Document deallocation could crash in certain garbage collection scenarios</li>
@@ -2758,9 +2793,9 @@ stylesheet and crash on repeated calls</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id315">
+<div class="section" id="id320">
 <h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id316">
+<div class="section" id="id321">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Element.getiterator() and the findall() methods support finding arbitrary
@@ -2807,7 +2842,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="id317">
+<div class="section" id="id322">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak in Element.__setitem__</li>
@@ -2849,9 +2884,9 @@ ElementTree root node as reference point</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id318">
+<div class="section" id="id323">
 <h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id319">
+<div class="section" id="id324">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Speedup for Element.makeelement(): the new element reuses the original
@@ -2861,7 +2896,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="id320">
+<div class="section" id="id325">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
@@ -2871,9 +2906,9 @@ libxml2 document instead of creating a new empty one</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id321">
+<div class="section" id="id326">
 <h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id322">
+<div class="section" id="id327">
 <h2>Features added</h2>
 <ul class="simple">
 <li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
@@ -2885,7 +2920,7 @@ argument)</li>
 <li>Minor API performance improvements</li>
 </ul>
 </div>
-<div class="section" id="id323">
+<div class="section" id="id328">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
@@ -2894,9 +2929,9 @@ argument)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id324">
+<div class="section" id="id329">
 <h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id325">
+<div class="section" id="id330">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Error logging API for libxml2 error messages</li>
@@ -2921,7 +2956,7 @@ parent element.</li>
 doc/sax.txt for more information.</li>
 </ul>
 </div>
-<div class="section" id="id326">
+<div class="section" id="id331">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Segfaults and memory leaks in various API functions of Element</li>
@@ -2933,9 +2968,9 @@ cannot support this due to libxslt deficiencies)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id327">
+<div class="section" id="id332">
 <h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id328">
+<div class="section" id="id333">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for copy.deepcopy() on elements. copy.copy() works also, but
@@ -2949,7 +2984,7 @@ supported and parsing of gzipped XML files works.</li>
 SubElement.</li>
 </ul>
 </div>
-<div class="section" id="id329">
+<div class="section" id="id334">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Use xslt-config instead of xml2-config to find out libxml2
@@ -2972,9 +3007,9 @@ fixed.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id330">
+<div class="section" id="id335">
 <h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id331">
+<div class="section" id="id336">
 <h2>Features added</h2>
 <ul class="simple">
 <li>parameters (XPath expressions) can be passed to XSLT using keyword
@@ -3004,7 +3039,7 @@ prefix declarations on these elements and these prefixes will show up
 in XML serialization.</li>
 </ul>
 </div>
-<div class="section" id="id332">
+<div class="section" id="id337">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Killed yet another memory management related bug: trees created
@@ -3025,9 +3060,9 @@ test both serializing to StringIO as well as serializing to a real file.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id333">
+<div class="section" id="id338">
 <h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id334">
+<div class="section" id="id339">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Changed setup.py so that library_dirs is also guessed. This should
@@ -3036,7 +3071,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="id335">
+<div class="section" id="id340">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Do the right thing when handling namespaced attributes.</li>
@@ -3045,7 +3080,7 @@ had very nasty side-effects before this fix, sorry!</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id336">
+<div class="section" id="id341">
 <h1>0.5.1 (2005-04-09)</h1>
 <ul class="simple">
 <li>Python 2.2 compatibility fixes.</li>
@@ -3053,14 +3088,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="id337">
+<div class="section" id="id342">
 <h1>0.5 (2005-04-08)</h1>
 <p>Initial public release.</p>
 </div>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 6c0158f..ad7996b 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -32,20 +32,20 @@ ElementTree.  Nonetheless, some differences and incompatibilities exist:</p>
 <li><p class="first">Importing etree is obviously different; etree uses a lower-case
 package name, while ElementTree uses a combination of upper-case and
 lower case in imports:</p>
-<div class="syntax"><pre><span class="c"># etree</span>
+<div class="syntax"><pre><span class="c1"># etree</span>
 <span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">Element</span>
 
-<span class="c"># ElementTree</span>
+<span class="c1"># ElementTree</span>
 <span class="kn">from</span> <span class="nn">elementtree.ElementTree</span> <span class="kn">import</span> <span class="n">Element</span>
 
-<span class="c"># ElementTree in the Python 2.5 standard library</span>
+<span class="c1"># ElementTree in the Python 2.5 standard library</span>
 <span class="kn">from</span> <span class="nn">xml.etree.ElementTree</span> <span class="kn">import</span> <span class="n">Element</span>
 </pre></div>
 <p>When switching over code from ElementTree to lxml.etree, and you're using
 the package name prefix 'ElementTree', you can do the following:</p>
-<div class="syntax"><pre><span class="c"># instead of</span>
+<div class="syntax"><pre><span class="c1"># instead of</span>
 <span class="kn">from</span> <span class="nn">elementtree</span> <span class="kn">import</span> <span class="n">ElementTree</span>
-<span class="c"># use</span>
+<span class="c1"># use</span>
 <span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span> <span class="k">as</span> <span class="n">ElementTree</span>
 </pre></div>
 </li>
@@ -69,9 +69,9 @@ strings.</p>
 </li>
 <li><p class="first">ElementTree allows you to place an Element in two different trees at the
 same time.  Thus, this:</p>
-<div class="syntax"><pre><span class="n">a</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="s">'a'</span><span class="p">)</span>
-<span class="n">b</span> <span class="o">=</span> <span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s">'b'</span><span class="p">)</span>
-<span class="n">c</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="s">'c'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="n">a</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span>
+<span class="n">b</span> <span class="o">=</span> <span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">)</span>
+<span class="n">c</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="s1">'c'</span><span class="p">)</span>
 <span class="n">c</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
 </pre></div>
 <p>will result in the following tree a:</p>
@@ -199,7 +199,7 @@ enough to replace a shallow copy in your case.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index ed366b4..a7d10c5 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 89b318e..aa93b33 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -50,8 +50,8 @@ that package.</p>
 provides the same interface as the <a class="reference external" href="xpathxslt.html#xpath">XPath</a> class, but accepts a CSS selector
 expression as input:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.cssselect</span> <span class="kn">import</span> <span class="n">CSSSelector</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span> <span class="o">=</span> <span class="n">CSSSelector</span><span class="p">(</span><span class="s">'div.content'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span>  <span class="c">#doctest: +ELLIPSIS</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span> <span class="o">=</span> <span class="n">CSSSelector</span><span class="p">(</span><span class="s1">'div.content'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span>  <span class="c1">#doctest: +ELLIPSIS</span>
 <span class="go">&lt;CSSSelector ... for 'div.content'&gt;</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span><span class="o">.</span><span class="n">css</span>
 <span class="go">'div.content'</span>
@@ -64,18 +64,18 @@ expression by inspecting the object:</p>
 <p>To use the selector, simply call it with a document or element
 object:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">fromstring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">h</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="s">'''&lt;div id="outer"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;div id="inner" class="content body"&gt;</span>
-<span class="gp">... </span><span class="s">      text</span>
-<span class="gp">... </span><span class="s">  &lt;/div&gt;&lt;/div&gt;'''</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'id'</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">sel</span><span class="p">(</span><span class="n">h</span><span class="p">)]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">h</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="s1">'''&lt;div id="outer"&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;div id="inner" class="content body"&gt;</span>
+<span class="gp">... </span><span class="s1">      text</span>
+<span class="gp">... </span><span class="s1">  &lt;/div&gt;&lt;/div&gt;'''</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'id'</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">sel</span><span class="p">(</span><span class="n">h</span><span class="p">)]</span>
 <span class="go">['inner']</span>
 </pre></div>
 <p>Using <tt class="docutils literal">CSSSelector</tt> is equivalent to translating with <tt class="docutils literal">cssselect</tt>
 and using the <tt class="docutils literal">XPath</tt> class:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">cssselect</span> <span class="kn">import</span> <span class="n">GenericTranslator</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">XPath</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span> <span class="o">=</span> <span class="n">XPath</span><span class="p">(</span><span class="n">GenericTranslator</span><span class="p">()</span><span class="o">.</span><span class="n">css_to_xpath</span><span class="p">(</span><span class="s">'div.content'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span> <span class="o">=</span> <span class="n">XPath</span><span class="p">(</span><span class="n">GenericTranslator</span><span class="p">()</span><span class="o">.</span><span class="n">css_to_xpath</span><span class="p">(</span><span class="s1">'div.content'</span><span class="p">))</span>
 </pre></div>
 <p><tt class="docutils literal">CSSSelector</tt> takes a <tt class="docutils literal">translator</tt> parameter to let you choose which
 translator to use. It can be <tt class="docutils literal">'xml'</tt> (the default), <tt class="docutils literal">'xhtml'</tt>, <tt class="docutils literal">'html'</tt>
@@ -84,7 +84,7 @@ or a <a class="reference external" href="http://packages.python.org/cssselect/#c
 <div class="section" id="the-cssselect-method">
 <h1>The cssselect method</h1>
 <p>lxml <tt class="docutils literal">Element</tt> objects have a <tt class="docutils literal">cssselect</tt> convenience method.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">h</span><span class="o">.</span><span class="n">cssselect</span><span class="p">(</span><span class="s">'div.content'</span><span class="p">)</span> <span class="o">==</span> <span class="n">sel</span><span class="p">(</span><span class="n">h</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">h</span><span class="o">.</span><span class="n">cssselect</span><span class="p">(</span><span class="s1">'div.content'</span><span class="p">)</span> <span class="o">==</span> <span class="n">sel</span><span class="p">(</span><span class="n">h</span><span class="p">)</span>
 <span class="go">True</span>
 </pre></div>
 <p>Note however that pre-compiling the expression with the <tt class="docutils literal">CSSSelector</tt> or
@@ -108,7 +108,7 @@ namespace URIs: the <tt class="docutils literal">CSSSelector</tt> class accepts
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 06a793a..972abf2 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -38,7 +38,7 @@ provides the Element interface for subclasses:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">honk</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
 <span class="gp">... </span>   <span class="nd">@property</span>
 <span class="gp">... </span>   <span class="k">def</span> <span class="nf">honking</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'honking'</span><span class="p">)</span> <span class="o">==</span> <span class="s">'true'</span>
+<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'honking'</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'true'</span>
 </pre></div>
 <p>This defines a new Element class <tt class="docutils literal">honk</tt> with a property <tt class="docutils literal">honking</tt>.</p>
 <p>The following document describes how you can make lxml.etree use these
@@ -147,14 +147,14 @@ for a parser works as follows:</p>
 <p>There is one drawback of the parser based scheme: the <tt class="docutils literal">Element()</tt> factory
 does not know about your specialised parser and creates a new document that
 deploys the default parser:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">False</span>
 </pre></div>
 <p>You should therefore avoid using this factory function in code that
 uses custom classes.  The <tt class="docutils literal">makeelement()</tt> method of parsers provides
 a simple replacement:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">True</span>
 </pre></div>
@@ -165,21 +165,21 @@ level <tt class="docutils literal">Element()</tt> factory to the parser method b
 </pre></div>
 <p>While the <tt class="docutils literal">XML()</tt> and <tt class="docutils literal">HTML()</tt> factories also depend on the default
 parser, you can pass them a different parser as second argument:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;test/&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;test/&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">False</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;test/&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;test/&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">True</span>
 </pre></div>
 <p>Whenever you create a document with a parser, it will inherit the lookup
 scheme and all subsequent element instantiations for this document will use
 it:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;test/&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;test/&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="s">"subel"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="s2">"subel"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">True</span>
 </pre></div>
@@ -204,19 +204,19 @@ also the default lookup (if not configured otherwise).</p>
 <p>To change the default element implementation, you can pass your new class to
 the constructor.  While it accepts classes for <tt class="docutils literal">element</tt>, <tt class="docutils literal">comment</tt> and
 <tt class="docutils literal">pi</tt> nodes, most use cases will only override the element class:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">"myelement"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s2">"myelement"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">False</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementDefaultClassLookup</span><span class="p">(</span><span class="n">element</span><span class="o">=</span><span class="n">honk</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">"myelement"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s2">"myelement"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
 <span class="go">True</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">honking</span>
 <span class="go">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">"myelement"</span><span class="p">,</span> <span class="n">honking</span><span class="o">=</span><span class="s">'true'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s2">"myelement"</span><span class="p">,</span> <span class="n">honking</span><span class="o">=</span><span class="s1">'true'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>
 <span class="go">b'&lt;myelement honking="true"/&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">honking</span>
@@ -247,18 +247,18 @@ desired fallback lookup scheme to the constructor:</p>
 <p>This scheme uses a mapping from attribute values to classes.  An attribute
 name is set at initialisation time and is then used to find the corresponding
 value in a dictionary.  It is set up as follows:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">id_class_mapping</span> <span class="o">=</span> <span class="p">{</span><span class="s">'1234'</span> <span class="p">:</span> <span class="n">honk</span><span class="p">}</span> <span class="c"># maps attribute values to classes</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">id_class_mapping</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'1234'</span> <span class="p">:</span> <span class="n">honk</span><span class="p">}</span> <span class="c1"># maps attribute values to classes</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">AttributeBasedElementClassLookup</span><span class="p">(</span>
-<span class="gp">... </span>                                     <span class="s">'id'</span><span class="p">,</span> <span class="n">id_class_mapping</span><span class="p">)</span>
+<span class="gp">... </span>                                     <span class="s1">'id'</span><span class="p">,</span> <span class="n">id_class_mapping</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
 </pre></div>
 <p>And here is how to use it:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;a id="123"&gt;&lt;b id="1234"/&gt;&lt;b id="1234" honking="true"/&gt;&lt;/a&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;a id="123"&gt;&lt;b id="1234"/&gt;&lt;b id="1234" honking="true"/&gt;&lt;/a&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">honking</span>       <span class="c"># id does not match !</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">honking</span>       <span class="c1"># id does not match !</span>
 <span class="gt">Traceback (most recent call last):</span>
 <span class="gr">AttributeError</span>: <span class="n">'lxml.etree._Element' object has no attribute 'honking'</span>
 
@@ -273,7 +273,7 @@ is used here.  If you want to use the namespace lookup, for example,
 you can use this code:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">fallback</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">AttributeBasedElementClassLookup</span><span class="p">(</span>
-<span class="gp">... </span>                      <span class="s">'id'</span><span class="p">,</span> <span class="n">id_class_mapping</span><span class="p">,</span> <span class="n">fallback</span><span class="p">)</span>
+<span class="gp">... </span>                      <span class="s1">'id'</span><span class="p">,</span> <span class="n">id_class_mapping</span><span class="p">,</span> <span class="n">fallback</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
 </pre></div>
@@ -284,7 +284,7 @@ you can use this code:</p>
 basis.  It allows you to implement a custom lookup scheme in a subclass:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyLookup</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">CustomElementClassLookup</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">lookup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_type</span><span class="p">,</span> <span class="n">document</span><span class="p">,</span> <span class="n">namespace</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="n">honk</span> <span class="c"># be a bit more selective here ...</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="n">honk</span> <span class="c1"># be a bit more selective here ...</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">MyLookup</span><span class="p">())</span>
@@ -306,7 +306,7 @@ proxies.</p>
 works similar to the custom lookup scheme:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyLookup</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">PythonElementClassLookup</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">lookup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">document</span><span class="p">,</span> <span class="n">element</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="n">MyElementClass</span> <span class="c"># defined elsewhere</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="n">MyElementClass</span> <span class="c1"># defined elsewhere</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">MyLookup</span><span class="p">())</span>
@@ -338,7 +338,7 @@ instantiated proxy classes.</p>
 Only lxml.etree could do that when creating an object representation
 of an existing XML element.  Since lxml 2.2, however, instantiating
 this class will simply create a new Element:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">honk</span><span class="p">(</span><span class="n">honking</span> <span class="o">=</span> <span class="s">'true'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">honk</span><span class="p">(</span><span class="n">honking</span> <span class="o">=</span> <span class="s1">'true'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'honk'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">honking</span>
@@ -355,9 +355,9 @@ your Element proxy classes for the elements that they create.  The
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">hale</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span> <span class="k">pass</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">bopp</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span> <span class="k">pass</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">hale</span><span class="p">(</span> <span class="s">"some "</span><span class="p">,</span> <span class="n">honk</span><span class="p">(</span><span class="n">honking</span> <span class="o">=</span> <span class="s">'true'</span><span class="p">),</span> <span class="n">bopp</span><span class="p">,</span> <span class="s">" text"</span> <span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">hale</span><span class="p">(</span> <span class="s2">"some "</span><span class="p">,</span> <span class="n">honk</span><span class="p">(</span><span class="n">honking</span> <span class="o">=</span> <span class="s1">'true'</span><span class="p">),</span> <span class="n">bopp</span><span class="p">,</span> <span class="s2">" text"</span> <span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">))</span>
 <span class="go">&lt;hale&gt;some &lt;honk honking="true"/&gt;&lt;bopp/&gt; text&lt;/hale&gt;</span>
 </pre></div>
 </div>
@@ -371,11 +371,11 @@ build a new element namespace (or retrieve an existing one) by calling the
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span> <span class="o">=</span> <span class="n">lookup</span><span class="o">.</span><span class="n">get_namespace</span><span class="p">(</span><span class="s">'http://hui.de/honk'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span> <span class="o">=</span> <span class="n">lookup</span><span class="o">.</span><span class="n">get_namespace</span><span class="p">(</span><span class="s1">'http://hui.de/honk'</span><span class="p">)</span>
 </pre></div>
 <p>and then register the new element type with that namespace, say, under the tag
 name <tt class="docutils literal">honk</tt>:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="s">'honk'</span><span class="p">]</span> <span class="o">=</span> <span class="n">honk</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="s1">'honk'</span><span class="p">]</span> <span class="o">=</span> <span class="n">honk</span>
 </pre></div>
 <p>If you have many Element classes declared in one module, and they are
 all named like the elements they create, you can simply use
@@ -384,14 +384,14 @@ automatically.  The implementation is smart enough to ignore
 everything that is not an Element class.</p>
 <p>After this, you create and use your XML elements through the normal API of
 lxml:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;honk xmlns="http://hui.de/honk" honking="true"/&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;honk xmlns="http://hui.de/honk" honking="true"/&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
 <span class="go">True</span>
 </pre></div>
 <p>The same works when creating elements by hand:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">'{http://hui.de/honk}honk'</span><span class="p">,</span>
-<span class="gp">... </span>                                  <span class="n">honking</span><span class="o">=</span><span class="s">'true'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s1">'{http://hui.de/honk}honk'</span><span class="p">,</span>
+<span class="gp">... </span>                                  <span class="n">honking</span><span class="o">=</span><span class="s1">'true'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
 <span class="go">True</span>
 </pre></div>
@@ -403,7 +403,7 @@ mechanism for registering extension functions in XPath and XSLT.</p>
 only with the 'honk' element.  If an XML tree contains different
 elements in the same namespace, they do not pick up the same
 implementation:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;honk xmlns="http://hui.de/honk" honking="true"&gt;&lt;bla/&gt;&lt;/honk&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;honk xmlns="http://hui.de/honk" honking="true"&gt;&lt;bla/&gt;&lt;/honk&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
 <span class="go">True</span>
@@ -424,18 +424,18 @@ namespace that is used if no specific element class is provided.  Again, you
 can just pass None as an element name:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">HonkNSElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
 <span class="gp">... </span>   <span class="k">def</span> <span class="nf">honk</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="s">"HONK"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="bp">None</span><span class="p">]</span> <span class="o">=</span> <span class="n">HonkNSElement</span> <span class="c"># default Element for namespace</span>
+<span class="gp">... </span>      <span class="k">return</span> <span class="s2">"HONK"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="bp">None</span><span class="p">]</span> <span class="o">=</span> <span class="n">HonkNSElement</span> <span class="c1"># default Element for namespace</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">HonkElement</span><span class="p">(</span><span class="n">HonkNSElement</span><span class="p">):</span>
 <span class="gp">... </span>   <span class="nd">@property</span>
 <span class="gp">... </span>   <span class="k">def</span> <span class="nf">honking</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'honking'</span><span class="p">)</span> <span class="o">==</span> <span class="s">'true'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="s">'honk'</span><span class="p">]</span> <span class="o">=</span> <span class="n">HonkElement</span> <span class="c"># Element for specific tag</span>
+<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'honking'</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'true'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="s1">'honk'</span><span class="p">]</span> <span class="o">=</span> <span class="n">HonkElement</span> <span class="c1"># Element for specific tag</span>
 </pre></div>
 <p>Now you can rely on lxml to always return objects of type HonkNSElement or its
 subclasses for elements of this namespace:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;honk xmlns="http://hui.de/honk" honking="true"&gt;&lt;bla/&gt;&lt;/honk&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;honk xmlns="http://hui.de/honk" honking="true"&gt;&lt;bla/&gt;&lt;/honk&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">honk_element</span><span class="p">))</span>
@@ -459,7 +459,7 @@ subclasses for elements of this namespace:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index cfc87ea..89de6d3 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -65,8 +65,8 @@ mimics the interface provided by Fredrik Lundh's <a class="reference external" h
 module.  Note that the <tt class="docutils literal">soupparser</tt> module was added in lxml 2.0.3.
 Previous versions of lxml 2.0.x only have the <tt class="docutils literal">ElementSoup</tt> module.</p>
 <p>Here is a document full of tag soup, similar to, but not quite like, HTML:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s">'''</span>
-<span class="gp">... </span><span class="s">&lt;meta/&gt;&lt;head&gt;&lt;title&gt;Hello&lt;/head&gt;&lt;body onload=crash()&gt;Hi all&lt;p&gt;'''</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s1">'''</span>
+<span class="gp">... </span><span class="s1">&lt;meta/&gt;&lt;head&gt;&lt;title&gt;Hello&lt;/head&gt;&lt;body onload=crash()&gt;Hi all&lt;p&gt;'''</span>
 </pre></div>
 <p>All you need to do is pass it to the <tt class="docutils literal">fromstring()</tt> function:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html.soupparser</span> <span class="kn">import</span> <span class="n">fromstring</span>
@@ -94,21 +94,21 @@ follows.  The only difference is that libxml2 tries harder to adhere
 to the structure of an HTML document and moves misplaced tags where
 they (likely) belong.  Note, however, that the result can vary between
 parser versions.</p>
-<div class="syntax"><pre><span class="nt">&lt;html&gt;</span>
-  <span class="nt">&lt;head&gt;</span>
-    <span class="nt">&lt;meta/&gt;</span>
-    <span class="nt">&lt;title&gt;</span>Hello<span class="nt">&lt;/title&gt;</span>
-  <span class="nt">&lt;/head&gt;</span>
-  <span class="nt">&lt;body</span> <span class="na">onload=</span><span class="s">"crash()"</span><span class="nt">&gt;</span>Hi all<span class="nt">&lt;p/&gt;&lt;/body&gt;</span>
-<span class="nt">&lt;/html&gt;</span>
+<div class="syntax"><pre><span class="p">&lt;</span><span class="nt">html</span><span class="p">&gt;</span>
+  <span class="p">&lt;</span><span class="nt">head</span><span class="p">&gt;</span>
+    <span class="p">&lt;</span><span class="nt">meta</span><span class="p">/&gt;</span>
+    <span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Hello<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;</span>
+  <span class="p">&lt;/</span><span class="nt">head</span><span class="p">&gt;</span>
+  <span class="p">&lt;</span><span class="nt">body</span> <span class="na">onload</span><span class="o">=</span><span class="s">"crash()"</span><span class="p">&gt;</span>Hi all<span class="p">&lt;</span><span class="nt">p</span><span class="p">/&gt;&lt;/</span><span class="nt">body</span><span class="p">&gt;</span>
+<span class="p">&lt;/</span><span class="nt">html</span><span class="p">&gt;</span>
 </pre></div>
 </div>
 <div class="section" id="entity-handling">
 <h1>Entity handling</h1>
 <p>By default, the BeautifulSoup parser also replaces the entities it
 finds by their character equivalent.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s">'&lt;body&gt;&amp;copy;&amp;euro;&amp;#45;&amp;#245;&amp;#445;&lt;p&gt;'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">'.//body'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s1">'&lt;body&gt;&amp;copy;&amp;euro;&amp;#45;&amp;#245;&amp;#445;&lt;p&gt;'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">'.//body'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span>
 <span class="go">u'\xa9\u20ac-\xf5\u01bd'</span>
 </pre></div>
@@ -117,20 +117,20 @@ default encoding, which is 'US-ASCII'.</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">)</span>
 <span class="go">'&lt;body&gt;&amp;#169;&amp;#8364;-&amp;#245;&amp;#445;&lt;p/&gt;&lt;/body&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">"html"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">"html"</span><span class="p">)</span>
 <span class="go">'&lt;body&gt;&amp;#169;&amp;#8364;-&amp;#245;&amp;#445;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;'</span>
 </pre></div>
 <p>Any other encoding will output the respective byte sequences.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"utf-8"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span>
 <span class="go">'&lt;body&gt;\xc2\xa9\xe2\x82\xac-\xc3\xb5\xc6\xbd&lt;p/&gt;&lt;/body&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">"html"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"utf-8"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">"html"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span>
 <span class="go">'&lt;body&gt;\xc2\xa9\xe2\x82\xac-\xc3\xb5\xc6\xbd&lt;p&gt;&lt;/p&gt;&lt;/body&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="go">u'&lt;body&gt;\xa9\u20ac-\xf5\u01bd&lt;p/&gt;&lt;/body&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">"html"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">"html"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="go">u'&lt;body&gt;\xa9\u20ac-\xf5\u01bd&lt;p&gt;&lt;/p&gt;&lt;/body&gt;'</span>
 </pre></div>
 </div>
@@ -147,22 +147,22 @@ serialises much faster than most other HTML libraries for Python.
 Just serialise the document to unicode and if that gives you an
 exception, re-parse it with BeautifulSoup to see if that works
 better.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;meta http-equiv="Content-Type"</span>
-<span class="gp">... </span><span class="s">      content="text/html;charset=utf-8" /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;html&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;head&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;Hello W</span><span class="se">\xc3\xb6</span><span class="s">rld!&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/head&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;body&gt;Hi all&lt;/body&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/html&gt;'''</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;meta http-equiv="Content-Type"</span>
+<span class="gp">... </span><span class="s1">      content="text/html;charset=utf-8" /&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;html&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;head&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;title&gt;Hello W</span><span class="se">\xc3\xb6</span><span class="s1">rld!&lt;/title&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/head&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;body&gt;Hi all&lt;/body&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/html&gt;'''</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html.soupparser</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">try</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="n">ignore</span> <span class="o">=</span> <span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">ignore</span> <span class="o">=</span> <span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="gp">... </span><span class="k">except</span> <span class="ne">UnicodeDecodeError</span><span class="p">:</span>
 <span class="gp">... </span>    <span class="n">root</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">soupparser</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span>
 </pre></div>
@@ -174,27 +174,27 @@ from BeautifulSoup's <a class="reference external" href="http://www.crummy.com/s
 <tt class="docutils literal">UnicodeDammit</tt> class.  Once it succeeds in decoding the data,
 you can simply pass the resulting Unicode string into lxml's parser.</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">try</span><span class="p">:</span>
-<span class="gp">... </span>   <span class="kn">from</span> <span class="nn">bs4</span> <span class="kn">import</span> <span class="n">UnicodeDammit</span>             <span class="c"># BeautifulSoup 4</span>
+<span class="gp">... </span>   <span class="kn">from</span> <span class="nn">bs4</span> <span class="kn">import</span> <span class="n">UnicodeDammit</span>             <span class="c1"># BeautifulSoup 4</span>
 <span class="gp">...</span>
 <span class="gp">... </span>   <span class="k">def</span> <span class="nf">decode_html</span><span class="p">(</span><span class="n">html_string</span><span class="p">):</span>
 <span class="gp">... </span>       <span class="n">converted</span> <span class="o">=</span> <span class="n">UnicodeDammit</span><span class="p">(</span><span class="n">html_string</span><span class="p">)</span>
 <span class="gp">... </span>       <span class="k">if</span> <span class="ow">not</span> <span class="n">converted</span><span class="o">.</span><span class="n">unicode_markup</span><span class="p">:</span>
 <span class="gp">... </span>           <span class="k">raise</span> <span class="ne">UnicodeDecodeError</span><span class="p">(</span>
-<span class="gp">... </span>               <span class="s">"Failed to detect encoding, tried [</span><span class="si">%s</span><span class="s">]"</span><span class="p">,</span>
-<span class="gp">... </span>               <span class="s">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">converted</span><span class="o">.</span><span class="n">tried_encodings</span><span class="p">))</span>
-<span class="gp">... </span>       <span class="c"># print converted.original_encoding</span>
+<span class="gp">... </span>               <span class="s2">"Failed to detect encoding, tried [</span><span class="si">%s</span><span class="s2">]"</span><span class="p">,</span>
+<span class="gp">... </span>               <span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">converted</span><span class="o">.</span><span class="n">tried_encodings</span><span class="p">))</span>
+<span class="gp">... </span>       <span class="c1"># print converted.original_encoding</span>
 <span class="gp">... </span>       <span class="k">return</span> <span class="n">converted</span><span class="o">.</span><span class="n">unicode_markup</span>
 <span class="gp">...</span>
 <span class="gp">... </span><span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-<span class="gp">... </span>   <span class="kn">from</span> <span class="nn">BeautifulSoup</span> <span class="kn">import</span> <span class="n">UnicodeDammit</span>   <span class="c"># BeautifulSoup 3</span>
+<span class="gp">... </span>   <span class="kn">from</span> <span class="nn">BeautifulSoup</span> <span class="kn">import</span> <span class="n">UnicodeDammit</span>   <span class="c1"># BeautifulSoup 3</span>
 <span class="gp">...</span>
 <span class="gp">... </span>   <span class="k">def</span> <span class="nf">decode_html</span><span class="p">(</span><span class="n">html_string</span><span class="p">):</span>
 <span class="gp">... </span>       <span class="n">converted</span> <span class="o">=</span> <span class="n">UnicodeDammit</span><span class="p">(</span><span class="n">html_string</span><span class="p">,</span> <span class="n">isHTML</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
 <span class="gp">... </span>       <span class="k">if</span> <span class="ow">not</span> <span class="n">converted</span><span class="o">.</span><span class="n">unicode</span><span class="p">:</span>
 <span class="gp">... </span>           <span class="k">raise</span> <span class="ne">UnicodeDecodeError</span><span class="p">(</span>
-<span class="gp">... </span>               <span class="s">"Failed to detect encoding, tried [</span><span class="si">%s</span><span class="s">]"</span><span class="p">,</span>
-<span class="gp">... </span>               <span class="s">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">converted</span><span class="o">.</span><span class="n">triedEncodings</span><span class="p">))</span>
-<span class="gp">... </span>       <span class="c"># print converted.originalEncoding</span>
+<span class="gp">... </span>               <span class="s2">"Failed to detect encoding, tried [</span><span class="si">%s</span><span class="s2">]"</span><span class="p">,</span>
+<span class="gp">... </span>               <span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">converted</span><span class="o">.</span><span class="n">triedEncodings</span><span class="p">))</span>
+<span class="gp">... </span>       <span class="c1"># print converted.originalEncoding</span>
 <span class="gp">... </span>       <span class="k">return</span> <span class="n">converted</span><span class="o">.</span><span class="n">unicode</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">decode_html</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">))</span>
@@ -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: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index eaed87c..151e2d2 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -64,11 +64,11 @@ it always receives a context object (see below).  The other arguments
 are provided by the respective call in the XPath expression, one in
 the following examples.  Any number of arguments is allowed:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">hello</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">a</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="s">"Hello </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">a</span>
+<span class="gp">... </span>   <span class="k">return</span> <span class="s2">"Hello </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">a</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">ola</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">a</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="s">"Ola </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">a</span>
+<span class="gp">... </span>   <span class="k">return</span> <span class="s2">"Ola </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">a</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">loadsofargs</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="s">"Got </span><span class="si">%d</span><span class="s"> arguments."</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
+<span class="gp">... </span>   <span class="k">return</span> <span class="s2">"Got </span><span class="si">%d</span><span class="s2"> arguments."</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
 </pre></div>
 <div class="section" id="the-functionnamespace">
 <h2>The FunctionNamespace</h2>
@@ -78,34 +78,34 @@ is done using the FunctionNamespace class.  For simplicity, we choose
 the empty namespace (None):</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'hello'</span><span class="p">]</span> <span class="o">=</span> <span class="n">hello</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'countargs'</span><span class="p">]</span> <span class="o">=</span> <span class="n">loadsofargs</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'hello'</span><span class="p">]</span> <span class="o">=</span> <span class="n">hello</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'countargs'</span><span class="p">]</span> <span class="o">=</span> <span class="n">loadsofargs</span>
 </pre></div>
 <p>This registers the function <cite>hello</cite> with the name <cite>hello</cite> in the default
 namespace (None), and the function <cite>loadsofargs</cite> with the name <cite>countargs</cite>.
 Now we're going to create a document that we can run XPath expressions
 against:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;Haegar&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;Haegar&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 </pre></div>
 <p>Done. Now we can have XPath expressions call our new function:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"hello('Dr. Falken')"</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"hello('Dr. Falken')"</span><span class="p">))</span>
 <span class="go">Hello Dr. Falken</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'hello(local-name(*))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'hello(local-name(*))'</span><span class="p">))</span>
 <span class="go">Hello b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'hello(string(b))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'hello(string(b))'</span><span class="p">))</span>
 <span class="go">Hello Haegar</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'countargs(., b, ./*)'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'countargs(., b, ./*)'</span><span class="p">))</span>
 <span class="go">Got 3 arguments.</span>
 </pre></div>
 <p>Note how we call both a Python function (<cite>hello</cite>) and an XPath built-in
 function (<cite>string</cite>) in exactly the same way.  Normally, however, you would
 want to separate the two in different namespaces.  The FunctionNamespace class
 allows you to do this:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s">'http://mydomain.org/myfunctions'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'hello'</span><span class="p">]</span> <span class="o">=</span> <span class="n">hello</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">prefixmap</span> <span class="o">=</span> <span class="p">{</span><span class="s">'f'</span> <span class="p">:</span> <span class="s">'http://mydomain.org/myfunctions'</span><span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'f:hello(local-name(*))'</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">prefixmap</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s1">'http://mydomain.org/myfunctions'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'hello'</span><span class="p">]</span> <span class="o">=</span> <span class="n">hello</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">prefixmap</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'f'</span> <span class="p">:</span> <span class="s1">'http://mydomain.org/myfunctions'</span><span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'f:hello(local-name(*))'</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">prefixmap</span><span class="p">))</span>
 <span class="go">Hello b</span>
 </pre></div>
 </div>
@@ -114,10 +114,10 @@ allows you to do this:</p>
 <p>In the last example, you had to specify a prefix for the function namespace.
 If you always use the same prefix for a function namespace, you can also
 register it with the namespace:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s">'http://mydomain.org/myother/functions'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="s">'es'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'hello'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ola</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'es:hello(local-name(*))'</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s1">'http://mydomain.org/myother/functions'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="s1">'es'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'hello'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ola</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'es:hello(local-name(*))'</span><span class="p">))</span>
 <span class="go">Ola b</span>
 </pre></div>
 <p>This is a global assignment, so take care not to assign the same prefix to
@@ -136,24 +136,24 @@ was None, but since lxml 2.0 it provides two properties: <tt class="docutils lit
 <tt class="docutils literal">context_node</tt>.  The context node is the Element where the current function
 is called:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">print_tag</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">nodes</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">context_node</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="p">[</span> <span class="n">n</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">nodes</span> <span class="p">]))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">context_node</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="p">[</span> <span class="n">n</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">nodes</span> <span class="p">]))</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s">'http://mydomain.org/printtag'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="s">"pt"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">"print_tag"</span><span class="p">]</span> <span class="o">=</span> <span class="n">print_tag</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s1">'http://mydomain.org/printtag'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="s2">"pt"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s2">"print_tag"</span><span class="p">]</span> <span class="o">=</span> <span class="n">print_tag</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ignore</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//*[pt:print_tag(.//*)]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ignore</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//*[pt:print_tag(.//*)]"</span><span class="p">)</span>
 <span class="go">a: ['b']</span>
 <span class="go">b: []</span>
 </pre></div>
 <p>The <tt class="docutils literal">eval_context</tt> is a dictionary that is local to the evaluation.  It
 allows functions to keep state:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">print_context</span><span class="p">(</span><span class="n">context</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">context</span><span class="o">.</span><span class="n">eval_context</span><span class="p">[</span><span class="n">context</span><span class="o">.</span><span class="n">context_node</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span> <span class="o">=</span> <span class="s">"done"</span>
+<span class="gp">... </span>    <span class="n">context</span><span class="o">.</span><span class="n">eval_context</span><span class="p">[</span><span class="n">context</span><span class="o">.</span><span class="n">context_node</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"done"</span>
 <span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">eval_context</span><span class="o">.</span><span class="n">items</span><span class="p">()))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">"print_context"</span><span class="p">]</span> <span class="o">=</span> <span class="n">print_context</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s2">"print_context"</span><span class="p">]</span> <span class="o">=</span> <span class="n">print_context</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ignore</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//*[pt:print_context()]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ignore</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//*[pt:print_context()]"</span><span class="p">)</span>
 <span class="go">[('a', 'done')]</span>
 <span class="go">[('a', 'done'), ('b', 'done')]</span>
 </pre></div>
@@ -163,47 +163,47 @@ allows functions to keep state:</p>
 <p>Extension functions work for all ways of evaluating XPath expressions and for
 XSL transformations:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'es:hello(local-name(/a))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'es:hello(local-name(/a))'</span><span class="p">))</span>
 <span class="go">Ola a</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="p">{</span><span class="s">'f'</span> <span class="p">:</span> <span class="s">'http://mydomain.org/myfunctions'</span><span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'f'</span> <span class="p">:</span> <span class="s1">'http://mydomain.org/myfunctions'</span><span class="p">}</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'f:hello(local-name(/a))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'f:hello(local-name(/a))'</span><span class="p">))</span>
 <span class="go">Hello a</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xslt</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span>
-<span class="gp">... </span><span class="s">  &lt;stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">         xmlns="http://www.w3.org/1999/XSL/Transform"</span>
-<span class="gp">... </span><span class="s">         xmlns:es="http://mydomain.org/myother/functions"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;output method="text" encoding="ASCII"/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;value-of select="es:hello(string(//b))"/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/template&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/stylesheet&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">xslt</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span>
+<span class="gp">... </span><span class="s1">  &lt;stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">         xmlns="http://www.w3.org/1999/XSL/Transform"</span>
+<span class="gp">... </span><span class="s1">         xmlns:es="http://mydomain.org/myother/functions"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;output method="text" encoding="ASCII"/&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;value-of select="es:hello(string(//b))"/&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/template&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/stylesheet&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">xslt</span><span class="p">(</span><span class="n">doc</span><span class="p">))</span>
 <span class="go">Ola Haegar</span>
 </pre></div>
 <p>It is also possible to register namespaces with a single evaluator after its
 creation.  While the following example involves no functions, the idea should
 still be clear:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a xmlns="http://mydomain.org/myfunctions" /&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a xmlns="http://mydomain.org/myfunctions" /&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">ns_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">ns_doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">'/a'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s1">'/a'</span><span class="p">)</span>
 <span class="go">[]</span>
 </pre></div>
 <p>This returns nothing, as we did not ask for the right namespace.  When we
 register the namespace with the evaluator, however, we can access it via a
 prefix:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="o">.</span><span class="n">register_namespace</span><span class="p">(</span><span class="s">'foo'</span><span class="p">,</span> <span class="s">'http://mydomain.org/myfunctions'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">'/foo:a'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="o">.</span><span class="n">register_namespace</span><span class="p">(</span><span class="s1">'foo'</span><span class="p">,</span> <span class="s1">'http://mydomain.org/myfunctions'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s1">'/foo:a'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'{http://mydomain.org/myfunctions}a'</span>
 </pre></div>
 <p>Note that this prefix mapping is only known to this evaluator, as opposed to
 the global mapping of the FunctionNamespace objects:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">ns_doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e2</span><span class="p">(</span><span class="s">'/foo:a'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e2</span><span class="p">(</span><span class="s1">'/foo:a'</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
 <span class="c">...</span>
 <span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Undefined namespace prefix</span>
@@ -215,32 +215,32 @@ the global mapping of the FunctionNamespace objects:</p>
 of making extensions known to a single Evaluator or XSLT.  All evaluators and
 the XSLT object accept a keyword argument <tt class="docutils literal">extensions</tt> in their constructor.
 The value is a dictionary mapping (namespace, name) tuples to functions:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{(</span><span class="s">'local-ns'</span><span class="p">,</span> <span class="s">'local-hello'</span><span class="p">)</span> <span class="p">:</span> <span class="n">hello</span><span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="p">{</span><span class="s">'l'</span> <span class="p">:</span> <span class="s">'local-ns'</span><span class="p">}</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{(</span><span class="s1">'local-ns'</span><span class="p">,</span> <span class="s1">'local-hello'</span><span class="p">)</span> <span class="p">:</span> <span class="n">hello</span><span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'l'</span> <span class="p">:</span> <span class="s1">'local-ns'</span><span class="p">}</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'l:local-hello(string(b))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'l:local-hello(string(b))'</span><span class="p">))</span>
 <span class="go">Hello Haegar</span>
 </pre></div>
 <p>For larger numbers of extension functions, you can define classes or modules
 and use the <tt class="docutils literal">Extension</tt> helper:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExt</span><span class="p">:</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">function1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">'1'</span><span class="o">+</span><span class="n">arg</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s1">'1'</span><span class="o">+</span><span class="n">arg</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">function2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">'2'</span><span class="o">+</span><span class="n">arg</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s1">'2'</span><span class="o">+</span><span class="n">arg</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">function3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">'3'</span><span class="o">+</span><span class="n">arg</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s1">'3'</span><span class="o">+</span><span class="n">arg</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">ext_module</span> <span class="o">=</span> <span class="n">MyExt</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">(</span><span class="s">'function1'</span><span class="p">,</span> <span class="s">'function2'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="s">'local-ns'</span> <span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'function1'</span><span class="p">,</span> <span class="s1">'function2'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="s1">'local-ns'</span> <span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'l:function1(string(b))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'l:function1(string(b))'</span><span class="p">))</span>
 <span class="go">1Haegar</span>
 </pre></div>
-<p>The optional second argument to <tt class="docutils literal">Extension</tt> can either be be a
+<p>The optional second argument to <tt class="docutils literal">Extension</tt> can either be a
 sequence of names to select from the module, a dictionary that
 explicitly maps function names to their XPath alter-ego or <tt class="docutils literal">None</tt>
 (explicitly passed) to take all available functions under their
@@ -248,38 +248,38 @@ original name (if their name does not start with '_').</p>
 <p>The additional <tt class="docutils literal">ns</tt> keyword argument takes a namespace URI or
 <tt class="docutils literal">None</tt> (also if left out) for the default namespace.  The following
 examples will therefore all do the same thing:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">(</span><span class="s">'function1'</span><span class="p">,</span> <span class="s">'function2'</span><span class="p">,</span> <span class="s">'function3'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'function1'</span><span class="p">,</span> <span class="s1">'function2'</span><span class="p">,</span> <span class="s1">'function3'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span> <span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
 <span class="go">123Haegar</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="bp">None</span> <span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
 <span class="go">123Haegar</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
 <span class="go">123Haegar</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
-<span class="gp">... </span>    <span class="s">'function1'</span> <span class="p">:</span> <span class="s">'function1'</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="s">'function2'</span> <span class="p">:</span> <span class="s">'function2'</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="s">'function3'</span> <span class="p">:</span> <span class="s">'function3'</span>
+<span class="gp">... </span>    <span class="s1">'function1'</span> <span class="p">:</span> <span class="s1">'function1'</span><span class="p">,</span>
+<span class="gp">... </span>    <span class="s1">'function2'</span> <span class="p">:</span> <span class="s1">'function2'</span><span class="p">,</span>
+<span class="gp">... </span>    <span class="s1">'function3'</span> <span class="p">:</span> <span class="s1">'function3'</span>
 <span class="gp">... </span>    <span class="p">}</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'function1(function2(function3(string(b))))'</span><span class="p">))</span>
 <span class="go">123Haegar</span>
 </pre></div>
 <p>For convenience, you can also pass a sequence of extensions:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">extensions1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="s">'local-ns'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="s1">'local-ns'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="p">[</span><span class="n">extensions1</span><span class="p">,</span> <span class="n">extensions2</span><span class="p">],</span>
 <span class="gp">... </span>                         <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">'function1(l:function2(function3(string(b))))'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s1">'function1(l:function2(function3(string(b))))'</span><span class="p">))</span>
 <span class="go">123Haegar</span>
 </pre></div>
 </div>
@@ -299,47 +299,47 @@ will also be returned as floats:</p>
 <span class="gp">... </span>   <span class="k">return</span> <span class="n">nodes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'float'</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnsFloat</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'int'</span><span class="p">]</span>   <span class="o">=</span> <span class="n">returnsInteger</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'bool'</span><span class="p">]</span>  <span class="o">=</span> <span class="n">returnsBool</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'first'</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnFirstNode</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'float'</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnsFloat</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'int'</span><span class="p">]</span>   <span class="o">=</span> <span class="n">returnsInteger</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'bool'</span><span class="p">]</span>  <span class="o">=</span> <span class="n">returnsBool</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'first'</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnFirstNode</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">"float()"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s2">"float()"</span><span class="p">)</span>
 <span class="go">1.7</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">"int()"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s2">"int()"</span><span class="p">)</span>
 <span class="go">1.0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">int</span><span class="p">(</span> <span class="n">e</span><span class="p">(</span><span class="s">"int()"</span><span class="p">)</span> <span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">int</span><span class="p">(</span> <span class="n">e</span><span class="p">(</span><span class="s2">"int()"</span><span class="p">)</span> <span class="p">)</span>
 <span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">"bool()"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s2">"bool()"</span><span class="p">)</span>
 <span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">"count(first(//b))"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s2">"count(first(//b))"</span><span class="p">)</span>
 <span class="go">1.0</span>
 </pre></div>
 <p>As the last example shows, you can pass the results of functions back into
 the XPath expression.  Elements and sequences of elements are treated as
 XPath node-sets:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">returnsNodeSet</span><span class="p">(</span><span class="n">_</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">results1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">'results1'</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="s">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Alpha"</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="s">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Beta"</span>
+<span class="gp">... </span>    <span class="n">results1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s1">'results1'</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="s1">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Alpha"</span>
+<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="s1">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Beta"</span>
 <span class="gp">...</span>
-<span class="gp">... </span>    <span class="n">results2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">'results2'</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Gamma"</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Delta"</span>
+<span class="gp">... </span>    <span class="n">results2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s1">'results2'</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s1">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Gamma"</span>
+<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s1">'result'</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Delta"</span>
 <span class="gp">...</span>
-<span class="gp">... </span>    <span class="n">results3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s">'subresult'</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">results3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s1">'subresult'</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">return</span> <span class="p">[</span><span class="n">results1</span><span class="p">,</span> <span class="n">results2</span><span class="p">,</span> <span class="n">results3</span><span class="p">]</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">'new-node-set'</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnsNodeSet</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s1">'new-node-set'</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnsNodeSet</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">e</span><span class="p">(</span><span class="s">"new-node-set()/result"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">e</span><span class="p">(</span><span class="s2">"new-node-set()/result"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">t</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">r</span> <span class="p">])</span>
 <span class="go">['Alpha', 'Beta', 'Gamma', 'Delta']</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">e</span><span class="p">(</span><span class="s">"new-node-set()"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">e</span><span class="p">(</span><span class="s2">"new-node-set()"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">t</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">r</span> <span class="p">])</span>
 <span class="go">['results1', 'results2', 'subresult']</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">r</span> <span class="p">])</span>
@@ -361,7 +361,7 @@ Only the elements and their children are passed on, no outlying parents or
 tail texts will be available in the result.  This also means that in the above
 example, the <cite>subresult</cite> elements in <cite>results2</cite> and <cite>results3</cite> are no longer
 identical within the node-set, they belong to independent trees:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">subresult - subresult</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
 <span class="go">False</span>
@@ -390,9 +390,9 @@ code like this:</p>
 <p>And then you can implement the element in Python like this:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExtElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XSLTExtension</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">self_node</span><span class="p">,</span> <span class="n">input_node</span><span class="p">,</span> <span class="n">output_parent</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"Hello from XSLT!"</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"I did it!"</span>
-<span class="gp">... </span>        <span class="c"># just copy own content input to output</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"Hello from XSLT!"</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"I did it!"</span>
+<span class="gp">... </span>        <span class="c1"># just copy own content input to output</span>
 <span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span> <span class="nb">list</span><span class="p">(</span><span class="n">self_node</span><span class="p">)</span> <span class="p">)</span>
 </pre></div>
 <p>The arguments passed to the <tt class="docutils literal">.execute()</tt> method  are</p>
@@ -415,29 +415,29 @@ that, the Element is read-only.</dd>
 <p>In XSLT, extension elements can be used like any other XSLT element,
 except that they must be declared as extensions using the standard
 XSLT <tt class="docutils literal"><span class="pre">extension-element-prefixes</span></tt> option:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_ext_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</span>
-<span class="gp">... </span><span class="s">    xmlns:my="testns"</span>
-<span class="gp">... </span><span class="s">    extension-element-prefixes="my"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;my:ext&gt;&lt;child&gt;XYZ&lt;/child&gt;&lt;/my:ext&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="child"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;CHILD&gt;--xyz--&lt;/CHILD&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_ext_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span>
+<span class="gp">... </span><span class="s1">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</span>
+<span class="gp">... </span><span class="s1">    xmlns:my="testns"</span>
+<span class="gp">... </span><span class="s1">    extension-element-prefixes="my"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;foo&gt;&lt;my:ext&gt;&lt;child&gt;XYZ&lt;/child&gt;&lt;/my:ext&gt;&lt;/foo&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="child"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;CHILD&gt;--xyz--&lt;/CHILD&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
 </pre></div>
 <p>To register the extension, add its namespace and name to the extension
 mapping of the XSLT object:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">my_extension</span> <span class="o">=</span> <span class="n">MyExtElement</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s">'testns'</span><span class="p">,</span> <span class="s">'ext'</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s1">'testns'</span><span class="p">,</span> <span class="s1">'ext'</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_ext_tree</span><span class="p">,</span> <span class="n">extensions</span> <span class="o">=</span> <span class="n">extensions</span><span class="p">)</span>
 </pre></div>
 <p>Note how we pass an instance here, not the class of the extension.
 Now we can run the transformation and see how our extension is
 called:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;dummy/&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;dummy/&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">Hello from XSLT!</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
@@ -459,10 +459,10 @@ that passes an Element into the <tt class="docutils literal">.apply_templates()<
 <span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">my_extension</span> <span class="o">=</span> <span class="n">MyExtElement</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s">'testns'</span><span class="p">,</span> <span class="s">'ext'</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s1">'testns'</span><span class="p">,</span> <span class="s1">'ext'</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_ext_tree</span><span class="p">,</span> <span class="n">extensions</span> <span class="o">=</span> <span class="n">extensions</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;dummy/&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;dummy/&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;&lt;CHILD&gt;--xyz--&lt;/CHILD&gt;&lt;/foo&gt;\n'</span>
@@ -504,14 +504,14 @@ will work:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExtElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XSLTExtension</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">self_node</span><span class="p">,</span> <span class="n">input_node</span><span class="p">,</span> <span class="n">output_parent</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="n">child</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">self_node</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-<span class="gp">... </span>        <span class="n">child</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"NEW TEXT"</span>
+<span class="gp">... </span>        <span class="n">child</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"NEW TEXT"</span>
 <span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">my_extension</span> <span class="o">=</span> <span class="n">MyExtElement</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s">'testns'</span><span class="p">,</span> <span class="s">'ext'</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s1">'testns'</span><span class="p">,</span> <span class="s1">'ext'</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_ext_tree</span><span class="p">,</span> <span class="n">extensions</span> <span class="o">=</span> <span class="n">extensions</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;dummy/&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;dummy/&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;&lt;child&gt;NEW TEXT&lt;/child&gt;&lt;/foo&gt;\n'</span>
@@ -521,7 +521,7 @@ will work:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
diff --git a/doc/html/funding.html b/doc/html/funding.html
deleted file mode 100644 (file)
index d30c9a8..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
-<title>Projects for Crowd Funding</title>
-<link rel="stylesheet" href="style.css" type="text/css" />
-<script type="text/javascript">
-function trigger_menu(event) {
-    var sidemenu = document.getElementById("sidemenu");
-    var classes = sidemenu.getAttribute("class");
-    classes = (classes.indexOf(" visible") === -1) ? classes + " visible" : classes.replace(" visible", "");
-    sidemenu.setAttribute("class", classes);
-    event.preventDefault();
-    event.stopPropagation();
-}
-function hide_menu() {
-    var sidemenu = document.getElementById("sidemenu");
-    var classes = sidemenu.getAttribute("class");
-    if (classes.indexOf(" visible") !== -1) {
-        sidemenu.setAttribute("class", classes.replace(" visible", ""));
-    }
-}
-</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
-<body onclick="hide_menu()">
-<div class="document" id="projects-for-crowd-funding">
-<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><ul class="menu current" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Projects for Crowd Funding</h1>
-
-<p>This is a list of project proposals that are currently open for <a class="reference external" href="https://en.wikipedia.org/wiki/Crowd_funding">crowd
-funding</a>.  If you have other ideas that are not listed here yet,
-please speak up on the <a class="reference external" href="http://lxml.de/mailinglist/">mailing list</a>.  To get more information about
-the projects below, either ask on the mailing list or contact <a class="reference external" href="http://consulting.behnel.de/">Stefan
-Behnel</a>.</p>
-<p>Each proposal below is preceded by a <strong>project name</strong> that you can use
-as a project reference when sending money via PayPal.  See the <a class="reference external" href="http://lxml.de/">home
-page</a> on how to make payments in general.  By
-assigning a valid project name to your payment, instead of making a
-normal donation, you are dedicating it explicitly for that proposal.
-Note that invalid project names will be ignored and the payment will
-be considered a normal donation to the lxml project in that case.  You
-can also name more than one project, separated by commas, in order to
-reassign your payment if your favourite project turns out to have
-already been completed.</p>
-<p>Once a substantial part of the money that is required for a project
-implementation has been collected, work on this project will be
-started as soon as possible.  The status of a running project will be
-communicated through the lxml project home page and the lxml mailing
-list.</p>
-<p>In case the sum of the project specific payments, summed up in the
-order of their reception, overshoots the final price of the
-implementation of that proposal, the <strong>overpayments</strong> will normally be
-kept as a donation for the general development on lxml.  If, instead,
-you really want to restrict your payment to the named project and not
-open it for general development of the lxml library, you can request a
-refund in the case of overpayments by adding the word "refund" to your
-payment message.  Note that we will not refund any fees or charges
-that PayPal takes for either your original payment or our refunding
-payment.</p>
-<div class="section" id="really-simple-projects">
-<h1>Really simple projects</h1>
-<dl class="docutils">
-<dt>nsassign</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: add 'nsmap' parameter to cleanup_namespaces() to make it use
-a specific prefix-namespace mapping, i.e. reassign specific
-prefixes to namespace URIs</li>
-</ul>
-</dd>
-</dl>
-</div>
-<div class="section" id="projects-taking-just-a-few-days">
-<h1>Projects taking just a few days</h1>
-<dl class="docutils">
-<dt>userdtd</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: parse-time validation against a user provided DTD</li>
-<li>currently only works for XML Schema</li>
-<li>how: register</li>
-</ul>
-</dd>
-<dt>zlibmem</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: zlib-based parsing/serialising of compressed in-memory data</li>
-<li>how: requires a libxml2 I/O OutputBuffer with appropriate I/O
-functions that call into the zlib compression routines</li>
-</ul>
-</dd>
-<dt>xmlgen</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: generating XML using the <tt class="docutils literal">with</tt> statement</li>
-<li>how: see <a class="reference external" href="http://comments.gmane.org/gmane.comp.python.general/579950?set_lines=100000">http://comments.gmane.org/gmane.comp.python.general/579950?set_lines=100000</a></li>
-</ul>
-</dd>
-<dt>htmlenc</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: provide an HTMLParser wrapper that handles broken encodings
-in broken HTML better, e.g. using BeautifulSoup's "unicode dammit"
-charset analyser</li>
-</ul>
-</dd>
-</dl>
-</div>
-<div class="section" id="projects-taking-more-than-a-week">
-<h1>Projects taking more than a week</h1>
-<dl class="docutils">
-<dt>lzma</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: lzma-based parsing/serialising of compressed in-memory and file data</li>
-<li>how: requires a libxml2 I/O OutputBuffer with appropriate I/O
-functions that call into the lzma compression routines</li>
-<li>advantage over zlib: probably faster and better compression</li>
-<li>maybe embed the lzma C sources in the distro
-<a class="reference external" href="http://www.7-zip.org/sdk.html">http://www.7-zip.org/sdk.html</a></li>
-</ul>
-</dd>
-</dl>
-</div>
-<div class="section" id="projects-in-pre-design-phase">
-<h1>Projects in pre-design phase</h1>
-<p>Here are some project proposals that cannot currently be funded
-directly due to a lack of design consideration, so no realistic
-estimate about the amount of work they require can be made.  If you
-are interested in any of these projects, please contact either the
-lxml mailing list of Stefan Behnel.</p>
-<p><strong>Note</strong>: If you dedicate payments to the lxml project to any of the
-following projects in their current state, the dedication will be
-ignored and the payment will be considered a general donation to the
-lxml project.</p>
-<dl class="docutils">
-<dt>rnc</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: somehow integrate RelaxNG compact notation (rnc versus rng)</li>
-<li>currently not supported by libxml2 (patch exists)</li>
-<li>how: either integrate the libxml2 RNC patch or rewrite the mapping
-in Python</li>
-</ul>
-</dd>
-<dt>iterparse-rewrite</dt>
-<dd><ul class="first last simple">
-<li>status: open</li>
-<li>what: reimplement iterparse() using the libxml2 xmlReader API</li>
-<li>maybe: let iterparse() accept a parser as argument instead of
-being one</li>
-<li>Advantage: the implementation can be made safer than the current
-SAX implementation, as the parser would no longer interact with
-the tree that is user modifiable at the Python-level.</li>
-<li>Disadvantage: the tree has to be built manually. In the current
-SAX based implementation, libxml2 does it for us.</li>
-</ul>
-</dd>
-</dl>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2016-05-05.
-
-</div>
-</body>
-</html>
\ No newline at end of file
index 2961a2c..b7b38ed 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -42,7 +42,7 @@ parsing functions from <tt class="docutils literal">lxml.html</tt>.  html5lib no
 and element structures to a common format.  For example even if a tables
 does not have a <cite>tbody</cite> html5lib will inject one automatically:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">tostring</span><span class="p">,</span> <span class="n">html5parser</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">html5parser</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;table&gt;&lt;td&gt;foo"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">html5parser</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;table&gt;&lt;td&gt;foo"</span><span class="p">))</span>
 <span class="go">'&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;foo&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;'</span>
 </pre></div>
 <p>Also the parameters the functions accept are different.</p>
@@ -63,7 +63,7 @@ library (if installed) will guess the charset if ambiguities exist.</p>
 <dt><tt class="docutils literal">fragment_fromstring(string, create_parent=False, guess_charset=False)</tt>:</dt>
 <dd><p class="first">Returns an HTML fragment from a string.  The fragment must contain
 just a single element, unless <tt class="docutils literal">create_parent</tt> is given;
-e.g,. <tt class="docutils literal">fragment_fromstring(string, <span class="pre">create_parent='div')</span></tt> will
+e.g., <tt class="docutils literal">fragment_fromstring(string, <span class="pre">create_parent='div')</span></tt> will
 wrap the element in a <tt class="docutils literal">&lt;div&gt;</tt>.  If <tt class="docutils literal">create_parent</tt> is true the
 default parent tag (div) is used.</p>
 <p class="last">If a bytestring is passed and <tt class="docutils literal">guess_charset</tt> is true the chardet
@@ -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: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 84406d1..a7ef642 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -67,7 +67,7 @@ fast Python XML processing.</p>
 </div>
 <div class="section" id="documentation">
 <h1>Documentation</h1>
-<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.6.0.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.6.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">
@@ -130,8 +130,8 @@ external C modules, including fast custom element class support.</p>
 Index</a> (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with <a class="reference external" href="pubkey.asc">this key</a>.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-3.6.0.tgz">lxml 3.6.0</a>, released 2016-03-17
-(<a class="reference external" href="/changes-3.6.0.html">changes for 3.6.0</a>).  <a class="reference external" href="#old-versions">Older versions</a>
+<p>The latest version is <a class="reference external" href="/files/lxml-3.6.3.tgz">lxml 3.6.3</a>, released 2016-08-18
+(<a class="reference external" href="/changes-3.6.3.html">changes for 3.6.3</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>
@@ -139,7 +139,7 @@ are listed below.</p>
 part of the source distribution, so if you want to download the
 documentation for offline use, take the source archive and copy the
 <tt class="docutils literal">doc/html</tt> directory out of the source tree, or use the
-<a class="reference external" href="lxmldoc-3.6.0.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-3.6.1.pdf">PDF documentation</a>.</p>
 <p>The latest installable developer sources should usually be available from the
 <a class="reference external" href="http://lxml.de/build/">build server</a>.  It's also possible to check out
 the latest development version of lxml from github directly, using a command
@@ -192,6 +192,9 @@ obstacle to using lxml in your codebase.</p>
 <a class="reference external" href="http://lxml.de/3.5/">3.5</a>
 and the <a class="reference external" href="http://lxml.de/dev/">latest in-development version</a>.</p>
 <ul class="simple">
+<li><a class="reference external" href="/files/lxml-3.6.3.tgz">lxml 3.6.3</a>, released 2016-08-18 (<a class="reference external" href="/changes-3.6.3.html">changes for 3.6.3</a>)</li>
+<li><a class="reference external" href="/files/lxml-3.6.2.tgz">lxml 3.6.2</a>, released 2016-08-18 (<a class="reference external" href="/changes-3.6.2.html">changes for 3.6.2</a>)</li>
+<li><a class="reference external" href="/files/lxml-3.6.1.tgz">lxml 3.6.1</a>, released 2016-07-24 (<a class="reference external" href="/changes-3.6.1.html">changes for 3.6.1</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.6.0.tgz">lxml 3.6.0</a>, released 2016-03-17 (<a class="reference external" href="/changes-3.6.0.html">changes for 3.6.0</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.5.0.tgz">lxml 3.5.0</a>, released 2015-11-13 (<a class="reference external" href="/changes-3.5.0.html">changes for 3.5.0</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.5.0b1.tgz">lxml 3.5.0b1</a>, released 2015-09-18 (<a class="reference external" href="/changes-3.5.0b1.html">changes for 3.5.0b1</a>)</li>
@@ -223,7 +226,7 @@ donation is non-refundable.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index cf29ba0..e7e98bc 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Installing lxml</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -204,7 +204,7 @@ same download site.  Further build instructions are in the
 <p>If you are not using macports or want to use a more recent lxml
 release, you have to build it yourself.  While the pre-installed system
 libraries of libxml2 and libxslt are less outdated in recent MacOS-X
-versions than they used to be, so lxml should work them them out of the
+versions than they used to be, so lxml should work with them out of the
 box, it is still recommended to use a static build with the most recent
 library versions.</p>
 <p>Luckily, lxml's <tt class="docutils literal">setup.py</tt> script has built-in support for building
@@ -215,7 +215,7 @@ read the
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index f8c2f6e..1d5a9b8 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 4d03c58..e90cc8e 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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" />
@@ -197,7 +197,7 @@ scheme.</dd>
 <dd>Parsers for XML and HTML.  This is the main parser engine.  It's
 the reason why you can parse a document from various sources in
 two lines of Python code.  It's definitely not the right place to
-start reading lxml's soure code.</dd>
+start reading lxml's source code.</dd>
 <dt>parsertarget.pxi</dt>
 <dd>An ElementTree compatible parser target implementation based on
 the SAX2 interface of libxml2.</dd>
@@ -286,7 +286,7 @@ implemented in pure Python.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 4f18033..8a8f891 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.html</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -96,7 +96,7 @@ and there is a body and possibly a head.</dd>
 <dt><tt class="docutils literal">fragment_fromstring(string, create_parent=False)</tt>:</dt>
 <dd>Returns an HTML fragment from a string.  The fragment must contain
 just a single element, unless <tt class="docutils literal">create_parent</tt> is given;
-e.g,. <tt class="docutils literal">fragment_fromstring(string, <span class="pre">create_parent='div')</span></tt> will
+e.g., <tt class="docutils literal">fragment_fromstring(string, <span class="pre">create_parent='div')</span></tt> will
 wrap the element in a <tt class="docutils literal">&lt;div&gt;</tt>.</dd>
 <dt><tt class="docutils literal">fragments_fromstring(string)</tt>:</dt>
 <dd>Returns a list of the elements found in the fragment.</dd>
@@ -186,11 +186,11 @@ most easily used by importing the <tt class="docutils literal">usedoctest</tt> m
 <p>Now, if you have a HTML document and want to compare it to an expected result
 document in a doctest, you can do the following:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;html&gt;&lt;body onload="" color="white"&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;p&gt;Hi  !&lt;/p&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/body&gt;&lt;/html&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">   &lt;html&gt;&lt;body onload="" color="white"&gt;</span>
+<span class="gp">... </span><span class="s1">     &lt;p&gt;Hi  !&lt;/p&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;/body&gt;&lt;/html&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
 <span class="go">&lt;html&gt;&lt;body onload="" color="white"&gt;&lt;p&gt;Hi !&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</span>
@@ -223,14 +223,14 @@ pages and fragments:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">usedoctest</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">HTML</span><span class="p">(</span>
 <span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">HEAD</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">LINK</span><span class="p">(</span><span class="n">rel</span><span class="o">=</span><span class="s">"stylesheet"</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s">"great.css"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">"text/css"</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">TITLE</span><span class="p">(</span><span class="s">"Best Page Ever"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">LINK</span><span class="p">(</span><span class="n">rel</span><span class="o">=</span><span class="s2">"stylesheet"</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s2">"great.css"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"text/css"</span><span class="p">),</span>
+<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">TITLE</span><span class="p">(</span><span class="s2">"Best Page Ever"</span><span class="p">)</span>
 <span class="gp">... </span>  <span class="p">),</span>
 <span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">BODY</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">H1</span><span class="p">(</span><span class="n">E</span><span class="o">.</span><span class="n">CLASS</span><span class="p">(</span><span class="s">"heading"</span><span class="p">),</span> <span class="s">"Top News"</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">P</span><span class="p">(</span><span class="s">"World News only on this page"</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"font-size: 200%"</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="s">"Ah, and here's some more text, by the way."</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;p&gt;... and this is a parsed fragment ...&lt;/p&gt;"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">H1</span><span class="p">(</span><span class="n">E</span><span class="o">.</span><span class="n">CLASS</span><span class="p">(</span><span class="s2">"heading"</span><span class="p">),</span> <span class="s2">"Top News"</span><span class="p">),</span>
+<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">P</span><span class="p">(</span><span class="s2">"World News only on this page"</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s2">"font-size: 200%"</span><span class="p">),</span>
+<span class="gp">... </span>    <span class="s2">"Ah, and here's some more text, by the way."</span><span class="p">,</span>
+<span class="gp">... </span>    <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;p&gt;... and this is a parsed fragment ...&lt;/p&gt;"</span><span class="p">)</span>
 <span class="gp">... </span>  <span class="p">)</span>
 <span class="gp">... </span><span class="p">)</span>
 
@@ -392,19 +392,19 @@ possible.</dd>
 action, etc) and then serialize the form to see the updated values.
 You can, for instance, do:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">fromstring</span><span class="p">,</span> <span class="n">tostring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">form_page</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="s">'''&lt;html&gt;&lt;body&gt;&lt;form&gt;</span>
-<span class="gp">... </span><span class="s">  Your name: &lt;input type="text" name="name"&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Your phone: &lt;input type="text" name="phone"&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Your favorite pets: &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Dogs: &lt;input type="checkbox" name="interest" value="dogs"&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Cats: &lt;input type="checkbox" name="interest" value="cats"&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Llamas: &lt;input type="checkbox" name="interest" value="llamas"&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;input type="submit"&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;'''</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">form_page</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="s1">'''&lt;html&gt;&lt;body&gt;&lt;form&gt;</span>
+<span class="gp">... </span><span class="s1">  Your name: &lt;input type="text" name="name"&gt; &lt;br&gt;</span>
+<span class="gp">... </span><span class="s1">  Your phone: &lt;input type="text" name="phone"&gt; &lt;br&gt;</span>
+<span class="gp">... </span><span class="s1">  Your favorite pets: &lt;br&gt;</span>
+<span class="gp">... </span><span class="s1">  Dogs: &lt;input type="checkbox" name="interest" value="dogs"&gt; &lt;br&gt;</span>
+<span class="gp">... </span><span class="s1">  Cats: &lt;input type="checkbox" name="interest" value="cats"&gt; &lt;br&gt;</span>
+<span class="gp">... </span><span class="s1">  Llamas: &lt;input type="checkbox" name="interest" value="llamas"&gt; &lt;br&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;input type="submit"&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">form</span> <span class="o">=</span> <span class="n">form_page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">form</span><span class="o">.</span><span class="n">fields</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">name</span><span class="o">=</span><span class="s">'John Smith'</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">phone</span><span class="o">=</span><span class="s">'555-555-3949'</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">interest</span><span class="o">=</span><span class="nb">set</span><span class="p">([</span><span class="s">'cats'</span><span class="p">,</span> <span class="s">'llamas'</span><span class="p">]))</span>
+<span class="gp">... </span>    <span class="n">name</span><span class="o">=</span><span class="s1">'John Smith'</span><span class="p">,</span>
+<span class="gp">... </span>    <span class="n">phone</span><span class="o">=</span><span class="s1">'555-555-3949'</span><span class="p">,</span>
+<span class="gp">... </span>    <span class="n">interest</span><span class="o">=</span><span class="nb">set</span><span class="p">([</span><span class="s1">'cats'</span><span class="p">,</span> <span class="s1">'llamas'</span><span class="p">]))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">tostring</span><span class="p">(</span><span class="n">form</span><span class="p">)</span>
 <span class="go">&lt;html&gt;</span>
 <span class="go">  &lt;body&gt;</span>
@@ -441,10 +441,10 @@ argument, which is a function with the signature <tt class="docutils literal">op
 url, values)</tt>.</p>
 <p>Example:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">parse</span><span class="p">,</span> <span class="n">submit_form</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">page</span> <span class="o">=</span> <span class="n">parse</span><span class="p">(</span><span class="s">'http://tinyurl.com'</span><span class="p">)</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="s">'url'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'http://lxml.de/'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">page</span> <span class="o">=</span> <span class="n">parse</span><span class="p">(</span><span class="s1">'http://tinyurl.com'</span><span class="p">)</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="s1">'url'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'http://lxml.de/'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">parse</span><span class="p">(</span><span class="n">submit_form</span><span class="p">(</span><span class="n">page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">a</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s">'href'</span><span class="p">]</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//a[@target='_blank']"</span><span class="p">)]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">a</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">'href'</span><span class="p">]</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//a[@target='_blank']"</span><span class="p">)]</span>
 <span class="go">['http://tinyurl.com/2xae8s', 'http://preview.tinyurl.com/2xae8s']</span>
 </pre></div>
 </div>
@@ -456,32 +456,32 @@ HTML pages.  It supports removing embedded or script content, special tags,
 CSS style annotations and much more.</p>
 <p>Say, you have an evil web page from an untrusted source that contains lots of
 content that upsets browsers and tries to run evil code on the client side:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;html&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;head&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;script type="text/javascript" src="evil-site"&gt;&lt;/script&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;link rel="alternate" type="text/rss" src="evil-rss"&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;style&gt;</span>
-<span class="gp">... </span><span class="s">     body {background-image: url(javascript:do_evil)};</span>
-<span class="gp">... </span><span class="s">     div {color: expression(evil)};</span>
-<span class="gp">... </span><span class="s">   &lt;/style&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;/head&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;body onload="evil_function()"&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;!-- I am interpreted for EVIL! --&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;a href="javascript:evil_function()"&gt;a link&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;a href="#" onclick="evil_function()"&gt;another link&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;p onclick="evil_function()"&gt;a paragraph&lt;/p&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;div style="display: none"&gt;secret EVIL!&lt;/div&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;object&gt; of EVIL! &lt;/object&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;iframe src="evil-site"&gt;&lt;/iframe&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;form action="evil-site"&gt;</span>
-<span class="gp">... </span><span class="s">     Password: &lt;input type="password" name="password"&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/form&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;blink&gt;annoying EVIL!&lt;/blink&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;a href="evil-site"&gt;spam spam SPAM!&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;image src="evil!"&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;/body&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/html&gt;'''</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;html&gt;</span>
+<span class="gp">... </span><span class="s1"> &lt;head&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;script type="text/javascript" src="evil-site"&gt;&lt;/script&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;link rel="alternate" type="text/rss" src="evil-rss"&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;style&gt;</span>
+<span class="gp">... </span><span class="s1">     body {background-image: url(javascript:do_evil)};</span>
+<span class="gp">... </span><span class="s1">     div {color: expression(evil)};</span>
+<span class="gp">... </span><span class="s1">   &lt;/style&gt;</span>
+<span class="gp">... </span><span class="s1"> &lt;/head&gt;</span>
+<span class="gp">... </span><span class="s1"> &lt;body onload="evil_function()"&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;!-- I am interpreted for EVIL! --&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;a href="javascript:evil_function()"&gt;a link&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;a href="#" onclick="evil_function()"&gt;another link&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;p onclick="evil_function()"&gt;a paragraph&lt;/p&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;div style="display: none"&gt;secret EVIL!&lt;/div&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;object&gt; of EVIL! &lt;/object&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;iframe src="evil-site"&gt;&lt;/iframe&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;form action="evil-site"&gt;</span>
+<span class="gp">... </span><span class="s1">     Password: &lt;input type="password" name="password"&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;/form&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;blink&gt;annoying EVIL!&lt;/blink&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;a href="evil-site"&gt;spam spam SPAM!&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;image src="evil!"&gt;</span>
+<span class="gp">... </span><span class="s1"> &lt;/body&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/html&gt;'''</span>
 </pre></div>
 <p>To remove the all suspicious content from this unparsed document, use the
 <tt class="docutils literal">clean_html</tt> function:</p>
@@ -610,13 +610,13 @@ content fragments (only what goes in <tt class="docutils literal">&lt;body&gt;</
 documents.</p>
 <p>Example of <tt class="docutils literal">htmldiff</tt>:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html.diff</span> <span class="kn">import</span> <span class="n">htmldiff</span><span class="p">,</span> <span class="n">html_annotate</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc1</span> <span class="o">=</span> <span class="s">'''&lt;p&gt;Here is some text.&lt;/p&gt;'''</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="s">'''&lt;p&gt;Here is &lt;b&gt;a lot&lt;/b&gt; of &lt;i&gt;text&lt;/i&gt;.&lt;/p&gt;'''</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc3</span> <span class="o">=</span> <span class="s">'''&lt;p&gt;Here is &lt;b&gt;a little&lt;/b&gt; &lt;i&gt;text&lt;/i&gt;.&lt;/p&gt;'''</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc1</span> <span class="o">=</span> <span class="s1">'''&lt;p&gt;Here is some text.&lt;/p&gt;'''</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="s1">'''&lt;p&gt;Here is &lt;b&gt;a lot&lt;/b&gt; of &lt;i&gt;text&lt;/i&gt;.&lt;/p&gt;'''</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc3</span> <span class="o">=</span> <span class="s1">'''&lt;p&gt;Here is &lt;b&gt;a little&lt;/b&gt; &lt;i&gt;text&lt;/i&gt;.&lt;/p&gt;'''</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">htmldiff</span><span class="p">(</span><span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">)</span>
 <span class="go">&lt;p&gt;Here is &lt;ins&gt;&lt;b&gt;a lot&lt;/b&gt; of &lt;i&gt;text&lt;/i&gt;.&lt;/ins&gt; &lt;del&gt;some text.&lt;/del&gt; &lt;/p&gt;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">html_annotate</span><span class="p">([(</span><span class="n">doc1</span><span class="p">,</span> <span class="s">'author1'</span><span class="p">),</span> <span class="p">(</span><span class="n">doc2</span><span class="p">,</span> <span class="s">'author2'</span><span class="p">),</span>
-<span class="gp">... </span>                     <span class="p">(</span><span class="n">doc3</span><span class="p">,</span> <span class="s">'author3'</span><span class="p">)])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">html_annotate</span><span class="p">([(</span><span class="n">doc1</span><span class="p">,</span> <span class="s1">'author1'</span><span class="p">),</span> <span class="p">(</span><span class="n">doc2</span><span class="p">,</span> <span class="s1">'author2'</span><span class="p">),</span>
+<span class="gp">... </span>                     <span class="p">(</span><span class="n">doc3</span><span class="p">,</span> <span class="s1">'author3'</span><span class="p">)])</span>
 <span class="go">&lt;p&gt;&lt;span title="author1"&gt;Here is&lt;/span&gt;</span>
 <span class="go">   &lt;b&gt;&lt;span title="author2"&gt;a&lt;/span&gt;</span>
 <span class="go">   &lt;span title="author3"&gt;little&lt;/span&gt;&lt;/b&gt;</span>
@@ -631,7 +631,7 @@ version)</tt> that returns the given text marked up with the given
 version.  The default version, the output of which you see in the
 example, looks like:</p>
 <div class="syntax"><pre><span class="k">def</span> <span class="nf">default_markup</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">version</span><span class="p">):</span>
-    <span class="k">return</span> <span class="s">'&lt;span title="</span><span class="si">%s</span><span class="s">"&gt;</span><span class="si">%s</span><span class="s">&lt;/span&gt;'</span> <span class="o">%</span> <span class="p">(</span>
+    <span class="k">return</span> <span class="s1">'&lt;span title="</span><span class="si">%s</span><span class="s1">"&gt;</span><span class="si">%s</span><span class="s1">&lt;/span&gt;'</span> <span class="o">%</span> <span class="p">(</span>
         <span class="n">cgi</span><span class="o">.</span><span class="n">escape</span><span class="p">(</span><span class="nb">unicode</span><span class="p">(</span><span class="n">version</span><span class="p">),</span> <span class="mi">1</span><span class="p">),</span> <span class="n">text</span><span class="p">)</span>
 </pre></div>
 </div>
@@ -644,7 +644,7 @@ microformat.</p>
 <p>First we get the page:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">urllib</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">fromstring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">url</span> <span class="o">=</span> <span class="s">'http://microformats.org/'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">url</span> <span class="o">=</span> <span class="s1">'http://microformats.org/'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">content</span> <span class="o">=</span> <span class="n">urllib</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">url</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">make_links_absolute</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
@@ -664,24 +664,24 @@ microformat.</p>
 <span class="gp">... </span>    <span class="k">if</span> <span class="n">els</span><span class="p">:</span>
 <span class="gp">... </span>        <span class="k">return</span> <span class="n">els</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span>
 <span class="gp">... </span>    <span class="k">else</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">''</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s1">''</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">get_value</span><span class="p">(</span><span class="n">el</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="n">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">'value'</span><span class="p">)</span> <span class="ow">or</span> <span class="n">el</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span>
+<span class="gp">... </span>    <span class="k">return</span> <span class="n">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s1">'value'</span><span class="p">)</span> <span class="ow">or</span> <span class="n">el</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">get_all_texts</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">class_name</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">els</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="n">class_name</span><span class="p">)]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">parse_addresses</span><span class="p">(</span><span class="n">el</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="c"># Ideally this would parse street, etc.</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="n">el</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s">'adr'</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="c1"># Ideally this would parse street, etc.</span>
+<span class="gp">... </span>    <span class="k">return</span> <span class="n">el</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s1">'adr'</span><span class="p">)</span>
 </pre></div>
 <p>Then the parsing:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">doc</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s">'hcard'</span><span class="p">):</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">doc</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s1">'hcard'</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="n">card</span> <span class="o">=</span> <span class="n">Card</span><span class="p">()</span>
 <span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">el</span> <span class="o">=</span> <span class="n">el</span>
-<span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">fn</span> <span class="o">=</span> <span class="n">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">'fn'</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">fn</span> <span class="o">=</span> <span class="n">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s1">'fn'</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">tels</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="gp">... </span>    <span class="k">for</span> <span class="n">tel_el</span> <span class="ow">in</span> <span class="n">card</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s">'tel'</span><span class="p">):</span>
+<span class="gp">... </span>    <span class="k">for</span> <span class="n">tel_el</span> <span class="ow">in</span> <span class="n">card</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s1">'tel'</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="n">card</span><span class="o">.</span><span class="n">tels</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Phone</span><span class="p">(</span><span class="n">get_value</span><span class="p">(</span><span class="n">tel_el</span><span class="p">),</span>
-<span class="gp">... </span>                               <span class="n">get_all_texts</span><span class="p">(</span><span class="n">tel_el</span><span class="p">,</span> <span class="s">'type'</span><span class="p">)))</span>
+<span class="gp">... </span>                               <span class="n">get_all_texts</span><span class="p">(</span><span class="n">tel_el</span><span class="p">,</span> <span class="s1">'type'</span><span class="p">)))</span>
 <span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">addresses</span> <span class="o">=</span> <span class="n">parse_addresses</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>
 </pre></div>
 </div>
@@ -689,7 +689,7 @@ microformat.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index d4bda16..77a4de9 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.objectify</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -98,13 +98,13 @@ of normal Python object trees as closely as possible.</p>
 <p>The main idea behind the <tt class="docutils literal">objectify</tt> API is to hide XML element access
 behind the usual object attribute access pattern.  Asking an element for an
 attribute will return the sequence of children with corresponding tag names:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"b"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
 <span class="go">0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"b"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -120,9 +120,9 @@ attribute will return the sequence of children with corresponding tag names:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span>
 </pre></div>
 <p>Iteration and slicing also obey the requested tag:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">x1</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"x"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">x2</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"x"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">x3</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"x"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">x1</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"x"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x2</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"x"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x3</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"x"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="p">]</span>
 <span class="go">['x', 'x', 'x']</span>
@@ -143,48 +143,48 @@ methods for iteration, it supports an optional tag keyword argument:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">()</span> <span class="p">]</span>
 <span class="go">['b', 'x', 'x']</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">'b'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s1">'b'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['b']</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span> <span class="p">]</span>
 <span class="go">['b']</span>
 </pre></div>
 <p>XML attributes are accessed as in the normal ElementTree API:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"c"</span><span class="p">,</span> <span class="n">myattr</span><span class="o">=</span><span class="s">"someval"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"myattr"</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"c"</span><span class="p">,</span> <span class="n">myattr</span><span class="o">=</span><span class="s2">"someval"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"myattr"</span><span class="p">))</span>
 <span class="go">someval</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">"c"</span><span class="p">,</span> <span class="s">"oh-oh"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"c"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"c"</span><span class="p">,</span> <span class="s2">"oh-oh"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"c"</span><span class="p">))</span>
 <span class="go">oh-oh</span>
 </pre></div>
 <p>In addition to the normal ElementTree API for appending elements to trees,
 subtrees can also be added by assigning them to object attributes.  In this
 case, the subtree is automatically deep copied and the tag name of its root is
 updated to match the attribute name:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"yet_another_child"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"yet_another_child"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">new_child</span> <span class="o">=</span> <span class="n">el</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">new_child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">new_child</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">yet_another_child</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="p">[</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"y"</span><span class="p">),</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"y"</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="p">[</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"y"</span><span class="p">),</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"y"</span><span class="p">)</span> <span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="p">]</span>
 <span class="go">['y', 'y']</span>
 </pre></div>
 <p>The latter is a short form for operations on the full slice:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">y</span><span class="p">[:]</span> <span class="o">=</span> <span class="p">[</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"y"</span><span class="p">)</span> <span class="p">]</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">y</span><span class="p">[:]</span> <span class="o">=</span> <span class="p">[</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"y"</span><span class="p">)</span> <span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="p">]</span>
 <span class="go">['y']</span>
 </pre></div>
 <p>You can also replace children that way:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child1</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child2</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child3</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child1</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">child2</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">child3</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"new_child"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">"sub"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"new_child"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s2">"sub"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">child</span> <span class="o">=</span> <span class="n">el</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">sub</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -197,7 +197,7 @@ updated to match the attribute name:</p>
 <p>Note that special care must be taken when changing the tag name of an element:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="s">"notB"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="s2">"notB"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
@@ -212,35 +212,35 @@ updated to match the attribute name:</p>
 parsing an XML document or by building one from scratch.  To parse a
 document, just use the <tt class="docutils literal">parse()</tt> or <tt class="docutils literal">fromstring()</tt> functions of
 the module:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">fileobject</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;test/&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">fileobject</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;test/&gt;'</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">fileobject</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'&lt;test/&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'&lt;test/&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
 <span class="go">True</span>
 </pre></div>
 <p>To build a new tree in memory, <tt class="docutils literal">objectify</tt> replicates the standard
 factory function <tt class="docutils literal">Element()</tt> from <tt class="docutils literal">lxml.etree</tt>:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">obj_el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"new"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">obj_el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"new"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
 <span class="go">True</span>
 </pre></div>
 <p>After creating such an Element, you can use the <a class="reference external" href="tutorial.html#the-element-class">usual API</a> of
 lxml.etree to add SubElements to the tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="s">"newchild"</span><span class="p">,</span> <span class="n">attr</span><span class="o">=</span><span class="s">"value"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="s2">"newchild"</span><span class="p">,</span> <span class="n">attr</span><span class="o">=</span><span class="s2">"value"</span><span class="p">)</span>
 </pre></div>
 <p>New subelements will automatically inherit the objectify behaviour
 from their tree.  However, all independent elements that you create
 through the <tt class="docutils literal">Element()</tt> factory of lxml.etree (instead of objectify)
 will not support the <tt class="docutils literal">objectify</tt> API by themselves:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="s">"sub"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="s2">"sub"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">subel</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">independent_el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"new"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">independent_el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"new"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">independent_el</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
 <span class="go">False</span>
 </pre></div>
@@ -253,7 +253,7 @@ will not support the <tt class="docutils literal">objectify</tt> API by themselv
 <span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">a</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span>
 <span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="mf">6.21</span><span class="p">),</span>
 <span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">c</span><span class="p">(</span><span class="bp">True</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">d</span><span class="p">(</span><span class="s">"how"</span><span class="p">,</span> <span class="n">tell</span><span class="o">=</span><span class="s">"me"</span><span class="p">)</span>
+<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">d</span><span class="p">(</span><span class="s2">"how"</span><span class="p">,</span> <span class="n">tell</span><span class="o">=</span><span class="s2">"me"</span><span class="p">)</span>
 <span class="gp">... </span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
@@ -267,10 +267,10 @@ will not support the <tt class="docutils literal">objectify</tt> API by themselv
 <p>This allows you to write up a specific language in tags:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ROOT</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="o">.</span><span class="n">root</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">TITLE</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="o">.</span><span class="n">title</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">HOWMANY</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="p">,</span> <span class="s">"how-many"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">HOWMANY</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="p">,</span> <span class="s2">"how-many"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">ROOT</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">TITLE</span><span class="p">(</span><span class="s">"The title"</span><span class="p">),</span>
+<span class="gp">... </span>  <span class="n">TITLE</span><span class="p">(</span><span class="s2">"The title"</span><span class="p">),</span>
 <span class="gp">... </span>  <span class="n">HOWMANY</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
 <span class="gp">... </span><span class="p">)</span>
 
@@ -285,7 +285,7 @@ creates pytype annotated Elements without a namespace.  You can switch off the
 pytype annotation by passing False to the <tt class="docutils literal">annotate</tt> keyword argument of the
 constructor.  You can also pass a default namespace and an <tt class="docutils literal">nsmap</tt>:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">myE</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ElementMaker</span><span class="p">(</span><span class="n">annotate</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
-<span class="gp">... </span>          <span class="n">namespace</span><span class="o">=</span><span class="s">"http://my/ns"</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="s">"http://my/ns"</span><span class="p">})</span>
+<span class="gp">... </span>          <span class="n">namespace</span><span class="o">=</span><span class="s2">"http://my/ns"</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="s2">"http://my/ns"</span><span class="p">})</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">myE</span><span class="o">.</span><span class="n">root</span><span class="p">(</span> <span class="n">myE</span><span class="o">.</span><span class="n">someint</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="p">)</span>
 
@@ -300,9 +300,9 @@ constructor.  You can also pass a default namespace and an <tt class="docutils l
 <p>During tag lookups, namespaces are handled mostly behind the scenes.
 If you access a child of an Element without specifying a namespace,
 the lookup will use the namespace of the parent:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"{http://ns/}root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://ns/}b"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://other/}c"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"{http://ns/}root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://ns/}b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://other/}c"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}b</span>
@@ -322,48 +322,48 @@ through the E-factory as described above.</p>
 </pre></div>
 <p>To access an element in a different namespace than its parent, you can
 use <tt class="docutils literal">getattr()</tt>:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://other/}c"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://other/}c"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://other/}c</span>
 </pre></div>
 <p>For convenience, there is also a quick way through item access:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="s">"{http://other/}c"</span><span class="p">]</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="s2">"{http://other/}c"</span><span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://other/}c</span>
 </pre></div>
 <p>The same approach must be used to access children with tag names that are not
 valid Python identifiers:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://ns/}tag-name"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://ns/}tag-name"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}tag-name</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">new_el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"{http://ns/}new-element"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s">"{http://ns/}child"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s">"{http://ns/}child"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s">"{http://ns/}child"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">new_el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"{http://ns/}new-element"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s2">"{http://ns/}child"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s2">"{http://ns/}child"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s2">"{http://ns/}child"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> <span class="n">new_el</span><span class="p">,</span> <span class="n">new_el</span> <span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">]))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> <span class="n">new_el</span><span class="p">,</span> <span class="n">new_el</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">]))</span>
 <span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}tag-name</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="p">))</span>
 <span class="go">3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}child</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"tag-name"</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"tag-name"</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}child</span>
 </pre></div>
 <p>or for names that have a special meaning in lxml.objectify:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;text&gt;TEXT&lt;/text&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;text&gt;TEXT&lt;/text&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">AttributeError</span>: <span class="n">'NoneType' object has no attribute 'text'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">"text"</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s2">"text"</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">TEXT</span>
 </pre></div>
 </div>
@@ -379,16 +379,16 @@ parse time.  Also see the <a class="reference external" href="validation.html">d
 topic.</p>
 <p>First of all, we need a parser that knows our schema, so let's say we
 parse the schema from a file-like object (or file or filename):</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">  &lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:element name="a" type="AType"/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:complexType name="AType"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;xsd:element name="b" type="xsd:string" /&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;/xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsd:complexType&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsd:schema&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">  &lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsd:element name="a" type="AType"/&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsd:complexType name="AType"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;xsd:sequence&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;xsd:element name="b" type="xsd:string" /&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;/xsd:sequence&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsd:complexType&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/xsd:schema&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schema</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSchema</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="n">f</span><span class="p">)</span>
 </pre></div>
 <p>When creating the validating parser, we must make sure it <a class="reference external" href="#advance-element-class-lookup">returns
@@ -397,14 +397,14 @@ function:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">makeparser</span><span class="p">(</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span><span class="p">)</span>
 </pre></div>
 <p>Now we can use it to parse a valid document:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">"&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;/a&gt;"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s2">"&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;/a&gt;"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">b</span><span class="p">)</span>
 <span class="go">test</span>
 </pre></div>
 <p>Or an invalid document:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">"&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s2">"&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
 <span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Element 'c': This element is not expected.</span>
@@ -416,13 +416,13 @@ DTDs do not support any data types by design.</p>
 <h1>ObjectPath</h1>
 <p>For both convenience and speed, objectify supports its own path language,
 represented by the <tt class="docutils literal">ObjectPath</tt> class:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"{http://ns/}root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b1</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://ns/}b"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span>  <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">b1</span><span class="p">,</span>   <span class="s">"{http://ns/}c"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b2</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://ns/}b"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>  <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"{http://other/}d"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"{http://ns/}root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b1</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://ns/}b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span>  <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">b1</span><span class="p">,</span>   <span class="s2">"{http://ns/}c"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b2</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://ns/}b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>  <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"{http://other/}d"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.b.c"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"root.b.c"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
 <span class="go">root.b.c</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -430,74 +430,74 @@ represented by the <tt class="docutils literal">ObjectPath</tt> class:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}c</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.b.c"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"root.b.c"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}c</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.{http://other/}d"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"root.{http://other/}d"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://other/}d</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.{not}there"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"root.{not}there"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">AttributeError</span>: <span class="n">no such child: {not}there</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"{not}there"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"{not}there"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">ValueError</span>: <span class="n">root element does not match: need {not}there, got {http://ns/}root</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.b[1]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"root.b[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}b</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.{http://ns/}b[1]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"root.{http://ns/}b[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}b</span>
 </pre></div>
 <p>Apart from strings, ObjectPath also accepts lists of path segments:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s">'root'</span><span class="p">,</span> <span class="s">'b'</span><span class="p">,</span> <span class="s">'c'</span><span class="p">])</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s1">'root'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}c</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s">'root'</span><span class="p">,</span> <span class="s">'{http://ns/}b[1]'</span><span class="p">])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s1">'root'</span><span class="p">,</span> <span class="s1">'{http://ns/}b[1]'</span><span class="p">])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}b</span>
 </pre></div>
 <p>You can also use relative paths starting with a '.' to ignore the actual root
 element and only inherit its namespace:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">".b[1]"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">".b[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}b</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s">''</span><span class="p">,</span> <span class="s">'b[1]'</span><span class="p">])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'b[1]'</span><span class="p">])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}b</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">".unknown[1]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">".unknown[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">AttributeError</span>: <span class="n">no such child: {http://ns/}unknown</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">".{http://other/}unknown[1]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">".{http://other/}unknown[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">AttributeError</span>: <span class="n">no such child: {http://other/}unknown</span>
 </pre></div>
 <p>For convenience, a single dot represents the empty ObjectPath (identity):</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">"."</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://ns/}root</span>
 </pre></div>
 <p>ObjectPath objects can be used to manipulate trees:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"{http://ns/}root"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"{http://ns/}root"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">".some.child.{http://other/}unknown"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">".some.child.{http://other/}unknown"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">False</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -505,32 +505,32 @@ element and only inherit its namespace:</p>
   <span class="c">...</span>
 <span class="gr">AttributeError</span>: <span class="n">no such child: {http://ns/}some</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"my value"</span><span class="p">)</span> <span class="c"># creates children as necessary</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"my value"</span><span class="p">)</span> <span class="c1"># creates children as necessary</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">True</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">my value</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">some</span><span class="o">.</span><span class="n">child</span><span class="p">[</span><span class="s">"{http://other/}unknown"</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">some</span><span class="o">.</span><span class="n">child</span><span class="p">[</span><span class="s2">"{http://other/}unknown"</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">my value</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">))</span>
 <span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">addattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"my new value"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">addattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"my new value"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">))</span>
 <span class="go">2</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['my value', 'my new value']</span>
 </pre></div>
 <p>As with attribute assignment, <tt class="docutils literal">setattr()</tt> accepts lists:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="p">[</span><span class="s">"v1"</span><span class="p">,</span> <span class="s">"v2"</span><span class="p">,</span> <span class="s">"v3"</span><span class="p">])</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="p">[</span><span class="s2">"v1"</span><span class="p">,</span> <span class="s2">"v2"</span><span class="p">,</span> <span class="s2">"v3"</span><span class="p">])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['v1', 'v2', 'v3']</span>
 </pre></div>
 <p>Note, however, that indexing is only supported in this context if the children
 exist.  Indexing of non existing children will not extend or create a list of
 such children but raise an exception:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">".{non}existing[1]"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"my value"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s2">".{non}existing[1]"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"my value"</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">TypeError</span>: <span class="n">creating indexed path attributes is not supported</span>
@@ -545,7 +545,7 @@ with Elements from the normal lxml.etree API.</p>
 element content behave like them.  For example, they support the normal math
 operators:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">"&lt;root&gt;&lt;a&gt;5&lt;/a&gt;&lt;b&gt;11&lt;/b&gt;&lt;c&gt;true&lt;/c&gt;&lt;d&gt;hoi&lt;/d&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<span class="gp">... </span>            <span class="s2">"&lt;root&gt;&lt;a&gt;5&lt;/a&gt;&lt;b&gt;11&lt;/b&gt;&lt;c&gt;true&lt;/c&gt;&lt;d&gt;hoi&lt;/d&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span>
 <span class="go">16</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+=</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span>
@@ -562,12 +562,12 @@ operators:</p>
 <span class="go">True</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">c</span> <span class="o">=</span> <span class="bp">False</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"false!"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"false!"</span><span class="p">)</span>
 <span class="go">false!</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">+</span> <span class="s">" test !"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">+</span> <span class="s2">" test !"</span><span class="p">)</span>
 <span class="go">hoi test !</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">%</span> <span class="p">(</span><span class="mi">1234</span><span class="p">,</span> <span class="mi">12345</span><span class="p">))</span>
 <span class="go">1234 - 12345</span>
 </pre></div>
@@ -575,10 +575,10 @@ operators:</p>
 sequence operations such as <tt class="docutils literal">len()</tt>, slicing and indexing (e.g. of strings)
 cannot behave as the Python types.  Like all other tree elements, they show
 the normal slicing behaviour of objectify elements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;toast&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="s">' me'</span><span class="p">)</span> <span class="c"># behaves like a string, right?</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;toast&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="s1">' me'</span><span class="p">)</span> <span class="c1"># behaves like a string, right?</span>
 <span class="go">test me</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span> <span class="c"># but there's only one 'a' element!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span> <span class="c1"># but there's only one 'a' element!</span>
 <span class="go">1</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">a</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="p">]</span>
 <span class="go">['a']</span>
@@ -594,7 +594,7 @@ the normal slicing behaviour of objectify elements:</p>
 the <em>real</em> Python value.  The string value is always available through the
 normal ElementTree <tt class="docutils literal">.text</tt> attribute.  Additionally, all data classes
 provide a <tt class="docutils literal">.pyval</tt> attribute that returns the value as plain Python type:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">text</span>
 <span class="go">'test'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">pyval</span>
@@ -607,7 +607,7 @@ provide a <tt class="docutils literal">.pyval</tt> attribute that returns the va
 </pre></div>
 <p>Note, however, that both attributes are read-only in objectify.  If you want
 to change values, just assign them directly to the attribute:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">text</span>  <span class="o">=</span> <span class="s">"25"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">text</span>  <span class="o">=</span> <span class="s2">"25"</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">TypeError</span>: <span class="n">attribute 'text' of 'StringElement' objects is not writable</span>
@@ -630,16 +630,16 @@ types.  You can replace them, but not modify them.</p>
 <p>To see the data types that are currently used, you can call the module level
 <tt class="docutils literal">dump()</tt> function that returns a recursive string representation for
 elements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"""</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a attr1="foo" attr2="bar"&gt;1&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;1.2&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;1&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;true&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;c&gt;what?&lt;/c&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:nil="true"/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">"""</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"""</span>
+<span class="gp">... </span><span class="s2">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;a attr1="foo" attr2="bar"&gt;1&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;a&gt;1.2&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;b&gt;1&lt;/b&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;b&gt;true&lt;/b&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;c&gt;what?&lt;/c&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;d xsi:nil="true"/&gt;</span>
+<span class="gp">... </span><span class="s2">&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s2">"""</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
@@ -654,12 +654,12 @@ elements:</p>
 <span class="go">      * xsi:nil = 'true'</span>
 </pre></div>
 <p>You can freely switch between different types for the same child:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;5&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;5&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    a = 5 [IntElement]</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="s">'nice string!'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="s1">'nice string!'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    a = 'nice string!' [StringElement]</span>
@@ -699,16 +699,16 @@ provided by lxml.etree.  You can enable a pretty-print representation for
 objectify elements like this:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">enable_recursive_str</span><span class="p">()</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"""</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a attr1="foo" attr2="bar"&gt;1&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;1.2&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;1&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;true&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;c&gt;what?&lt;/c&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:nil="true"/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">"""</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"""</span>
+<span class="gp">... </span><span class="s2">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;a attr1="foo" attr2="bar"&gt;1&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;a&gt;1.2&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;b&gt;1&lt;/b&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;b&gt;true&lt;/b&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;c&gt;what?&lt;/c&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;d xsi:nil="true"/&gt;</span>
+<span class="gp">... </span><span class="s2">&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s2">"""</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
@@ -761,15 +761,15 @@ classes used in these cases.  By default, <tt class="docutils literal">tree_clas
 string values: int, long, float, str, unicode, NoneType:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">PYTYPE_ATTRIBUTE</span><span class="p">)</span>
 <span class="go">{http://codespeak.net/lxml/objectify/pytype}pytype</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">PYTYPE_ATTRIBUTE</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'}'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">PYTYPE_ATTRIBUTE</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'}'</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"""</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:py='</span><span class="si">%s</span><span class="s">'&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a py:pytype='str'&gt;5&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b py:pytype='int'&gt;5&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;c py:pytype='NoneType' /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">"""</span> <span class="o">%</span> <span class="n">ns</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"""</span><span class="se">\</span>
+<span class="gp">... </span><span class="s2">&lt;root xmlns:py='</span><span class="si">%s</span><span class="s2">'&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;a py:pytype='str'&gt;5&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;b py:pytype='int'&gt;5&lt;/b&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;c py:pytype='NoneType' /&gt;</span>
+<span class="gp">... </span><span class="s2">&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s2">"""</span> <span class="o">%</span> <span class="n">ns</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="mi">10</span><span class="p">)</span>
 <span class="go">510</span>
@@ -783,7 +783,7 @@ attribute through the <tt class="docutils literal">set_pytype_attribute_tag(tag)
 function, in case your application ever needs to.  There is also a
 utility function <tt class="docutils literal">annotate()</tt> that recursively generates this
 attribute for the elements of a tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    a = 'test' [StringElement]</span>
@@ -804,14 +804,14 @@ attribute for the elements of a tree:</p>
 <p>A second way of specifying data type information uses XML Schema types as
 element annotations.  Objectify knows those that can be mapped to normal
 Python types:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
-<span class="gp">... </span><span class="s">         xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;d xsi:type="xsd:double"&gt;5&lt;/d&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;i xsi:type="xsd:int"   &gt;5&lt;/i&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">   '''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">   &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
+<span class="gp">... </span><span class="s1">         xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
+<span class="gp">... </span><span class="s1">     &lt;d xsi:type="xsd:double"&gt;5&lt;/d&gt;</span>
+<span class="gp">... </span><span class="s1">     &lt;i xsi:type="xsd:int"   &gt;5&lt;/i&gt;</span>
+<span class="gp">... </span><span class="s1">     &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;/root&gt;</span>
+<span class="gp">... </span><span class="s1">   '''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    d = 5.0 [FloatElement]</span>
@@ -823,9 +823,9 @@ Python types:</p>
 </pre></div>
 <p>Again, there is a utility function <tt class="docutils literal">xsiannotate()</tt> that recursively
 generates the "xsi:type" attribute for the elements of a tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;c&gt;true&lt;/c&gt;&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">   '''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">   &lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;c&gt;true&lt;/c&gt;&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s1">   '''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    a = 'test' [StringElement]</span>
@@ -848,13 +848,13 @@ datatype that is defined for any given Python type, see also
 <a class="reference internal" href="#defining-additional-data-classes">Defining additional data classes</a>.</p>
 <p>The utility function <tt class="docutils literal">deannotate()</tt> can be used to get rid of 'py:pytype'
 and/or 'xsi:type' information:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
-<span class="gp">... </span><span class="s">      xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:type="xsd:double"&gt;5&lt;/d&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;i xsi:type="xsd:int"   &gt;5&lt;/i&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
+<span class="gp">... </span><span class="s1">      xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;d xsi:type="xsd:double"&gt;5&lt;/d&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;i xsi:type="xsd:int"   &gt;5&lt;/i&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/root&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
@@ -878,14 +878,14 @@ and/or 'xsi:type' information:</p>
 arguments 'pytype' (default: True) and 'xsi' (default: True).
 <tt class="docutils literal">deannotate()</tt> can also remove 'xsi:nil' attributes by setting 'xsi_nil=True'
 (default: False):</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
-<span class="gp">... </span><span class="s">      xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:type="xsd:double"&gt;5&lt;/d&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;i xsi:type="xsd:int"   &gt;5&lt;/i&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;n xsi:nil="true"/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
+<span class="gp">... </span><span class="s1">      xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;d xsi:type="xsd:double"&gt;5&lt;/d&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;i xsi:type="xsd:int"   &gt;5&lt;/i&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;s xsi:type="xsd:string"&gt;5&lt;/s&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;n xsi:nil="true"/&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/root&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
@@ -922,21 +922,21 @@ instead.</p>
 <p>For convenience, the <tt class="docutils literal">DataElement()</tt> factory creates an Element with a
 Python value in one step.  You can pass the required Python type name or the
 XSI type name:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_pytype</span><span class="o">=</span><span class="s">"int"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_pytype</span><span class="o">=</span><span class="s2">"int"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    x = 5 [IntElement]</span>
 <span class="go">      * py:pytype = 'int'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_pytype</span><span class="o">=</span><span class="s">"str"</span><span class="p">,</span> <span class="n">myattr</span><span class="o">=</span><span class="s">"someval"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_pytype</span><span class="o">=</span><span class="s2">"str"</span><span class="p">,</span> <span class="n">myattr</span><span class="o">=</span><span class="s2">"someval"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    x = '5' [StringElement]</span>
 <span class="go">      * myattr = 'someval'</span>
 <span class="go">      * py:pytype = 'str'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">"integer"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s2">"integer"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">root = None [ObjectifiedElement]</span>
 <span class="go">    x = 5 [IntElement]</span>
@@ -945,8 +945,8 @@ XSI type name:</p>
 </pre></div>
 <p>XML Schema types reside in the XML schema namespace thus <tt class="docutils literal">DataElement()</tt>
 tries to correctly prefix the xsi:type attribute value for you:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">s</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">"string"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">s</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">deannotate</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">xsi</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
@@ -955,58 +955,58 @@ tries to correctly prefix the xsi:type attribute value for you:</p>
 <span class="go">&lt;/root&gt;</span>
 </pre></div>
 <p><tt class="docutils literal">DataElement()</tt> uses a default nsmap to set these prefixes:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">'5'</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">'string'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s1">'5'</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s1">'string'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">nsmap</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span> <span class="ow">in</span> <span class="n">namespaces</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
 <span class="go">py - http://codespeak.net/lxml/objectify/pytype</span>
 <span class="go">xsd - http://www.w3.org/2001/XMLSchema</span>
 <span class="go">xsi - http://www.w3.org/2001/XMLSchema-instance</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"{http://www.w3.org/2001/XMLSchema-instance}type"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"{http://www.w3.org/2001/XMLSchema-instance}type"</span><span class="p">))</span>
 <span class="go">xsd:string</span>
 </pre></div>
 <p>While you can set custom namespace prefixes, it is necessary to provide valid
 namespace information if you choose to do so:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">'5'</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">'foo:string'</span><span class="p">,</span>
-<span class="gp">... </span>         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">'foo'</span><span class="p">:</span> <span class="s">'http://www.w3.org/2001/XMLSchema'</span><span class="p">})</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s1">'5'</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s1">'foo:string'</span><span class="p">,</span>
+<span class="gp">... </span>         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s1">'foo'</span><span class="p">:</span> <span class="s1">'http://www.w3.org/2001/XMLSchema'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">nsmap</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span> <span class="ow">in</span> <span class="n">namespaces</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
 <span class="go">foo - http://www.w3.org/2001/XMLSchema</span>
 <span class="go">py - http://codespeak.net/lxml/objectify/pytype</span>
 <span class="go">xsi - http://www.w3.org/2001/XMLSchema-instance</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"{http://www.w3.org/2001/XMLSchema-instance}type"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"{http://www.w3.org/2001/XMLSchema-instance}type"</span><span class="p">))</span>
 <span class="go">foo:string</span>
 </pre></div>
 <p>Note how lxml chose a default prefix for the XML Schema Instance
 namespace.  We can override it as in the following example:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">'5'</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">'foo:string'</span><span class="p">,</span>
-<span class="gp">... </span>         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">'foo'</span><span class="p">:</span> <span class="s">'http://www.w3.org/2001/XMLSchema'</span><span class="p">,</span>
-<span class="gp">... </span>                <span class="s">'myxsi'</span><span class="p">:</span> <span class="s">'http://www.w3.org/2001/XMLSchema-instance'</span><span class="p">})</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s1">'5'</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s1">'foo:string'</span><span class="p">,</span>
+<span class="gp">... </span>         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s1">'foo'</span><span class="p">:</span> <span class="s1">'http://www.w3.org/2001/XMLSchema'</span><span class="p">,</span>
+<span class="gp">... </span>                <span class="s1">'myxsi'</span><span class="p">:</span> <span class="s1">'http://www.w3.org/2001/XMLSchema-instance'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">nsmap</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span> <span class="ow">in</span> <span class="n">namespaces</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
 <span class="go">foo - http://www.w3.org/2001/XMLSchema</span>
 <span class="go">myxsi - http://www.w3.org/2001/XMLSchema-instance</span>
 <span class="go">py - http://codespeak.net/lxml/objectify/pytype</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"{http://www.w3.org/2001/XMLSchema-instance}type"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"{http://www.w3.org/2001/XMLSchema-instance}type"</span><span class="p">))</span>
 <span class="go">foo:string</span>
 </pre></div>
 <p>Care must be taken if different namespace prefixes have been used for the same
 namespace.  Namespace information gets merged to avoid duplicate definitions
 when adding a new sub-element to a tree, but this mechanism does not adapt the
 prefixes of attribute values:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"""&lt;root xmlns:schema="http://www.w3.org/2001/XMLSchema"/&gt;"""</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"""&lt;root xmlns:schema="http://www.w3.org/2001/XMLSchema"/&gt;"""</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;root xmlns:schema="http://www.w3.org/2001/XMLSchema"/&gt;</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">"17"</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">"string"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s2">"17"</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;value xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" py:pytype="str" xsi:type="xsd:string"&gt;17&lt;/value&gt;</span>
 
@@ -1040,13 +1040,13 @@ call should be placed into the element <tt class="docutils literal">_init()</tt>
 <p>The registration of data classes uses the <tt class="docutils literal">PyType</tt> class:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">ChristmasDate</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedDataElement</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">call_santa</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"Ho ho ho!"</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"Ho ho ho!"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">checkChristmasDate</span><span class="p">(</span><span class="n">date_string</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="ow">not</span> <span class="n">date_string</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'24.12.'</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">raise</span> <span class="ne">ValueError</span> <span class="c"># or TypeError</span>
+<span class="gp">... </span>    <span class="k">if</span> <span class="ow">not</span> <span class="n">date_string</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'24.12.'</span><span class="p">):</span>
+<span class="gp">... </span>        <span class="k">raise</span> <span class="ne">ValueError</span> <span class="c1"># or TypeError</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">PyType</span><span class="p">(</span><span class="s">'date'</span><span class="p">,</span> <span class="n">checkChristmasDate</span><span class="p">,</span> <span class="n">ChristmasDate</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">PyType</span><span class="p">(</span><span class="s1">'date'</span><span class="p">,</span> <span class="n">checkChristmasDate</span><span class="p">,</span> <span class="n">ChristmasDate</span><span class="p">)</span>
 </pre></div>
 <p>The PyType constructor takes a string type name, an (optional) callable type
 check and the custom data class.  If a type check is provided it must accept a
@@ -1057,7 +1057,7 @@ data type or, in absence of such an attribute, if the given type check callable
 does not raise a ValueError/TypeError exception when applied to the element
 text.</p>
 <p>If you want, you can also register this type under an XML Schema type name:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span><span class="o">.</span><span class="n">xmlSchemaTypes</span> <span class="o">=</span> <span class="p">(</span><span class="s">"date"</span><span class="p">,)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span><span class="o">.</span><span class="n">xmlSchemaTypes</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"date"</span><span class="p">,)</span>
 </pre></div>
 <p>XML Schema types will be considered if the element has an <tt class="docutils literal">xsi:type</tt>
 attribute that specifies its data type.  The line above binds the XSD type
@@ -1066,7 +1066,7 @@ the next step, which is to register the type.  Then you can use it:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span><span class="o">.</span><span class="n">register</span><span class="p">()</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">"&lt;root&gt;&lt;a&gt;24.12.2000&lt;/a&gt;&lt;b&gt;12.24.2000&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<span class="gp">... </span>            <span class="s2">"&lt;root&gt;&lt;a&gt;24.12.2000&lt;/a&gt;&lt;b&gt;12.24.2000&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
 <span class="go">Ho ho ho!</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
@@ -1083,11 +1083,11 @@ time of registration.  Types that are registered later on will not care about
 the dependencies of already registered types.</p>
 <p>If you provide XML Schema type information, this will override the type check
 function defined above:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;a xsi:type="date"&gt;12.24.2000&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">   '''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">   &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;</span>
+<span class="gp">... </span><span class="s1">     &lt;a xsi:type="date"&gt;12.24.2000&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;/root&gt;</span>
+<span class="gp">... </span><span class="s1">   '''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span>
 <span class="go">12.24.2000</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
@@ -1165,7 +1165,7 @@ support any XPath expression.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 08f13cd..ecbb72c 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -72,7 +72,7 @@ from files and file-like objects.  Both are available in the <tt class="docutils
 XML and (broken) HTML.  Note that XHTML is best parsed as XML, parsing it with
 the HTML parser can lead to unexpected results.  Here is a simple example for
 parsing XML from an in-memory string:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;a xmlns="test"&gt;&lt;b xmlns="test"/&gt;&lt;/a&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;a xmlns="test"&gt;&lt;b xmlns="test"/&gt;&lt;/a&gt;'</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -87,14 +87,14 @@ which returns an <tt class="docutils literal">ElementTree</tt> object:</p>
 <p>Note how the <tt class="docutils literal">parse()</tt> function reads from a file-like object here.  If
 parsing is done from a real file, it is more common (and also somewhat more
 efficient) to pass a filename:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">"doc/test.xml"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"doc/test.xml"</span><span class="p">)</span>
 </pre></div>
 <p>lxml can parse from a local file, an HTTP URL or an FTP URL.  It also
 auto-detects and reads gzip-compressed XML files (.gz).</p>
 <p>If you want to parse from memory and still provide a base URL for the document
 (e.g. to support relative paths in an XInclude), you can pass the <tt class="docutils literal">base_url</tt>
 keyword argument:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">base_url</span><span class="o">=</span><span class="s">"http://where.it/is/from.xml"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">base_url</span><span class="o">=</span><span class="s2">"http://where.it/is/from.xml"</span><span class="p">)</span>
 </pre></div>
 <div class="section" id="parser-options">
 <h2>Parser options</h2>
@@ -150,7 +150,7 @@ warnings of the last parser run:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">error_log</span><span class="p">))</span>
 <span class="go">0</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;</span><span class="se">\n</span><span class="s">&lt;/b&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;</span><span class="se">\n</span><span class="s2">&lt;/b&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Opening and ending tag mismatch: root line 1 and b, line 2, column 5</span>
@@ -195,13 +195,13 @@ try its best to return a valid HTML tree with all content it can
 manage to parse.  It will not raise an exception on parser errors.
 You should use libxml2 version 2.6.21 or newer to take advantage of
 this feature.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">broken_html</span> <span class="o">=</span> <span class="s">"&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;body&gt;&lt;h1&gt;page title&lt;/h3&gt;"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">broken_html</span> <span class="o">=</span> <span class="s2">"&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;body&gt;&lt;h1&gt;page title&lt;/h3&gt;"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">HTMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span>   <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">broken_html</span><span class="p">),</span> <span class="n">parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span>
-<span class="gp">... </span>                        <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">"html"</span><span class="p">)</span>
+<span class="gp">... </span>                        <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">"html"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">&lt;html&gt;</span>
 <span class="go">  &lt;head&gt;</span>
@@ -215,7 +215,7 @@ this feature.</p>
 <p>Lxml has an HTML function, similar to the XML shortcut known from
 ElementTree:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">HTML</span><span class="p">(</span><span class="n">broken_html</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">"html"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">"html"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">&lt;html&gt;</span>
 <span class="go">  &lt;head&gt;</span>
@@ -248,11 +248,11 @@ XHTML documents, use the XML parser, which is namespace aware.</p>
 the API level.  Currently, ElementTree objects can access the DOCTYPE
 information provided by a parsed document, as well as the XML version and the
 original encoding.  Since lxml 3.5, the doctype references are mutable.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">pub_id</span>  <span class="o">=</span> <span class="s">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sys_url</span> <span class="o">=</span> <span class="s">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doctype_string</span> <span class="o">=</span> <span class="s">'&lt;!DOCTYPE html PUBLIC "</span><span class="si">%s</span><span class="s">" "</span><span class="si">%s</span><span class="s">"&gt;'</span> <span class="o">%</span> <span class="p">(</span><span class="n">pub_id</span><span class="p">,</span> <span class="n">sys_url</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xml_header</span> <span class="o">=</span> <span class="s">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">xml_header</span> <span class="o">+</span> <span class="n">doctype_string</span> <span class="o">+</span> <span class="s">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">pub_id</span>  <span class="o">=</span> <span class="s2">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sys_url</span> <span class="o">=</span> <span class="s2">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doctype_string</span> <span class="o">=</span> <span class="s1">'&lt;!DOCTYPE html PUBLIC "</span><span class="si">%s</span><span class="s1">" "</span><span class="si">%s</span><span class="s1">"&gt;'</span> <span class="o">%</span> <span class="p">(</span><span class="n">pub_id</span><span class="p">,</span> <span class="n">sys_url</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">xml_header</span> <span class="o">=</span> <span class="s1">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">xml_header</span> <span class="o">+</span> <span class="n">doctype_string</span> <span class="o">+</span> <span class="s1">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xhtml</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">docinfo</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span>
@@ -282,20 +282,20 @@ original encoding.  Since lxml 3.5, the doctype references are mutable.</p>
 a target object to the parser:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">EchoTarget</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"start </span><span class="si">%s</span><span class="s"> </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="nb">dict</span><span class="p">(</span><span class="n">attrib</span><span class="p">)))</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"start </span><span class="si">%s</span><span class="s2"> </span><span class="si">%r</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="nb">dict</span><span class="p">(</span><span class="n">attrib</span><span class="p">)))</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"end </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"end </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"data </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span> <span class="n">data</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"data </span><span class="si">%r</span><span class="s2">"</span> <span class="o">%</span> <span class="n">data</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"comment </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"comment </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"close"</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">"closed!"</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"close"</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s2">"closed!"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">EchoTarget</span><span class="p">())</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;"</span><span class="p">,</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;"</span><span class="p">,</span>
 <span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>
 <span class="go">start element {}</span>
 <span class="go">data u'some'</span>
@@ -310,7 +310,7 @@ a target object to the parser:</p>
 <p>It is important for the <tt class="docutils literal">.close()</tt> method to reset the parser target
 to a usable state, so that you can reuse the parser as often as you
 like:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;"</span><span class="p">,</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;"</span><span class="p">,</span>
 <span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>
 <span class="go">start element {}</span>
 <span class="go">data u'some'</span>
@@ -330,21 +330,21 @@ that the parser can reuse them afterwards.</p>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="p">[]</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"start </span><span class="si">%s</span><span class="s"> </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="nb">dict</span><span class="p">(</span><span class="n">attrib</span><span class="p">)))</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"start </span><span class="si">%s</span><span class="s2"> </span><span class="si">%r</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="nb">dict</span><span class="p">(</span><span class="n">attrib</span><span class="p">)))</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"end </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"end </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"data </span><span class="si">%r</span><span class="s">"</span> <span class="o">%</span> <span class="n">data</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"data </span><span class="si">%r</span><span class="s2">"</span> <span class="o">%</span> <span class="n">data</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"comment </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"comment </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"close"</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">"closed!"</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"close"</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s2">"closed!"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">CollectorTarget</span><span class="p">())</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;element&gt;some&lt;/error&gt;"</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>        <span class="c"># doctest: +ELLIPSIS</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;element&gt;some&lt;/error&gt;"</span><span class="p">,</span>
+<span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>        <span class="c1"># doctest: +ELLIPSIS</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Opening and ending tag mismatch...</span>
@@ -363,7 +363,7 @@ object.  An example for a parser target that builds a tree is the
 <tt class="docutils literal">TreeBuilder</tt>:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">TreeBuilder</span><span class="p">())</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;"</span><span class="p">,</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;"</span><span class="p">,</span>
 <span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -385,7 +385,7 @@ in conjunction with a parser target object as described above).</p>
 to feed it some data.</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'&lt;?xml versio'</span><span class="p">,</span> <span class="s">'n="1.0"?'</span><span class="p">,</span> <span class="s">'&gt;&lt;roo'</span><span class="p">,</span> <span class="s">'t&gt;&lt;a'</span><span class="p">,</span> <span class="s">'/&gt;&lt;/root&gt;'</span><span class="p">):</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'&lt;?xml versio'</span><span class="p">,</span> <span class="s1">'n="1.0"?'</span><span class="p">,</span> <span class="s1">'&gt;&lt;roo'</span><span class="p">,</span> <span class="s1">'t&gt;&lt;a'</span><span class="p">,</span> <span class="s1">'/&gt;&lt;/root&gt;'</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
 </pre></div>
 <p>When you are done parsing, you <strong>must</strong> call the <tt class="docutils literal">close()</tt> method to
@@ -413,11 +413,11 @@ normal <tt class="docutils literal">error_log</tt> and vice versa.</p>
 <p>You can also combine the feed parser interface with the target parser:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">EchoTarget</span><span class="p">())</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"&lt;eleme"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"nt&gt;some text&lt;/elem"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"&lt;eleme"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"nt&gt;some text&lt;/elem"</span><span class="p">)</span>
 <span class="go">start element {}</span>
 <span class="go">data u'some text'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"ent&gt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"ent&gt;"</span><span class="p">)</span>
 <span class="go">end element</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
@@ -440,27 +440,27 @@ iterating over the result.  This is most useful for non-blocking execution
 environments where data chunks arrive one after the other and should be
 processed as far as possible in each step.</p>
 <p>The same feature is available in lxml 3.3.  The basic usage is as follows:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">'start'</span><span class="p">,</span> <span class="s">'end'</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s1">'start'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">))</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;some text'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;some text'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">)</span>
 <span class="go">start: root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">)</span>    <span class="c"># well, no more events, as before ...</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">)</span>    <span class="c1"># well, no more events, as before ...</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;child&gt;&lt;a /&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;child&gt;&lt;a /&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">)</span>
 <span class="go">start: child</span>
 <span class="go">start: a</span>
 <span class="go">end: a</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;/child&gt;&lt;/roo'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;/child&gt;&lt;/roo'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">)</span>
 <span class="go">end: child</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'t&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'t&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">parser</span><span class="p">)</span>
 <span class="go">end: root</span>
 </pre></div>
@@ -497,33 +497,33 @@ not have a value (None).  It is common practice to use a list as namespace
 stack and pop the last entry on the 'end-ns' event.</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">print_events</span><span class="p">(</span><span class="n">events</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="n">action</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'start'</span><span class="p">,</span> <span class="s">'end'</span><span class="p">):</span>
-<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="gp">... </span>        <span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="s">'start-ns'</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">obj</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="k">if</span> <span class="n">action</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'start'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">):</span>
+<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="s1">'start-ns'</span><span class="p">:</span>
+<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">obj</span><span class="p">))</span>
 <span class="gp">... </span>        <span class="k">else</span><span class="p">:</span>
 <span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="n">action</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">,</span> <span class="s">"start-ns"</span><span class="p">,</span> <span class="s">"end-ns"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">,</span> <span class="s2">"start-ns"</span><span class="p">,</span> <span class="s2">"end-ns"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">event_types</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">()</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;element&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">events</span><span class="p">)</span>
 <span class="go">start: root</span>
 <span class="go">start: element</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'text&lt;/element&gt;&lt;element&gt;text&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'text&lt;/element&gt;&lt;element&gt;text&lt;/element&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">events</span><span class="p">)</span>
 <span class="go">end: element</span>
 <span class="go">start: element</span>
 <span class="go">end: element</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;empty-element xmlns="http://testns/" /&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;empty-element xmlns="http://testns/" /&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">events</span><span class="p">)</span>
 <span class="go">start-ns: ('', 'http://testns/')</span>
 <span class="go">start: {http://testns/}empty-element</span>
 <span class="go">end: {http://testns/}empty-element</span>
 <span class="go">end-ns</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;/root&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">print_events</span><span class="p">(</span><span class="n">events</span><span class="p">)</span>
 <span class="go">end: root</span>
 </pre></div>
@@ -536,18 +536,18 @@ that are no longer needed:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">()</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;element&gt;&lt;child /&gt;&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;element&gt;&lt;child /&gt;&lt;/element&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">: </span><span class="si">%d</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">elem</span><span class="p">)))</span>  <span class="c"># processing</span>
-<span class="gp">... </span>    <span class="n">elem</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                             <span class="c"># delete children</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">: </span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">elem</span><span class="p">)))</span>  <span class="c1"># processing</span>
+<span class="gp">... </span>    <span class="n">elem</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                             <span class="c1"># delete children</span>
 <span class="go">element: 0</span>
 <span class="go">child: 0</span>
 <span class="go">element: 1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;empty-element xmlns="http://testns/" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;empty-element xmlns="http://testns/" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">: </span><span class="si">%d</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">elem</span><span class="p">)))</span>  <span class="c"># processing</span>
-<span class="gp">... </span>    <span class="n">elem</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                             <span class="c"># delete children</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">: </span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">elem</span><span class="p">)))</span>  <span class="c1"># processing</span>
+<span class="gp">... </span>    <span class="n">elem</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                             <span class="c1"># delete children</span>
 <span class="go">{http://testns/}empty-element: 0</span>
 <span class="go">root: 3</span>
 
@@ -569,10 +569,10 @@ later on.</p>
 to save more memory during parsing, you can clean up the preceding siblings
 of the current element:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="c"># ... do something with the element</span>
-<span class="gp">... </span>    <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                 <span class="c"># clean up children</span>
+<span class="gp">... </span>    <span class="c1"># ... do something with the element</span>
+<span class="gp">... </span>    <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                 <span class="c1"># clean up children</span>
 <span class="gp">... </span>    <span class="k">while</span> <span class="n">element</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">del</span> <span class="n">element</span><span class="o">.</span><span class="n">getparent</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>  <span class="c"># clean up preceding siblings</span>
+<span class="gp">... </span>        <span class="k">del</span> <span class="n">element</span><span class="o">.</span><span class="n">getparent</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>  <span class="c1"># clean up preceding siblings</span>
 </pre></div>
 <p>The <tt class="docutils literal">while</tt> loop deletes multiple siblings in a row.  This is only necessary
 if you skipped over some of them using the <tt class="docutils literal">tag</tt> keyword argument.
@@ -587,26 +587,26 @@ code.</p>
 <p>As an extension over ElementTree, lxml.etree accepts a <tt class="docutils literal">tag</tt> keyword
 argument just like <tt class="docutils literal">element.iter(tag)</tt>.  This restricts events to a
 specific tag or namespace:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">"element"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s2">"element"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;element&gt;&lt;child /&gt;&lt;/element&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;empty-element xmlns="http://testns/" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;element&gt;&lt;child /&gt;&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;empty-element xmlns="http://testns/" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">end: element</span>
 <span class="go">end: element</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">event_types</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s">"{http://testns/}*"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">event_types</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s2">"{http://testns/}*"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;element&gt;&lt;child /&gt;&lt;/element&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;empty-element xmlns="http://testns/" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;element&gt;&lt;child /&gt;&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;empty-element xmlns="http://testns/" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">start: {http://testns/}empty-element</span>
 <span class="go">end: {http://testns/}empty-element</span>
 </pre></div>
@@ -616,23 +616,23 @@ specific tag or namespace:</p>
 <p>As an extension over ElementTree, the <tt class="docutils literal">XMLPullParser</tt> in lxml.etree
 also supports the event types 'comment' and 'pi' for the respective
 XML structures.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">,</span> <span class="s">"comment"</span><span class="p">,</span> <span class="s">"pi"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">,</span> <span class="s2">"comment"</span><span class="p">,</span> <span class="s2">"pi"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">event_types</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;?some pi ?&gt;&lt;!-- a comment --&gt;&lt;root&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;!-- another comment --&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;element&gt;text&lt;/element&gt;tail'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;empty-element xmlns="http://testns/" /&gt;'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;?some pi ?&gt;&lt;!-- a comment --&gt;&lt;root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;element key="value"&gt;text&lt;/element&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;!-- another comment --&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;element&gt;text&lt;/element&gt;tail'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;empty-element xmlns="http://testns/" /&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;/root&gt;'</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">action</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'start'</span><span class="p">,</span> <span class="s">'end'</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="s">'pi'</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: -</span><span class="si">%s</span><span class="s">=</span><span class="si">%s</span><span class="s">-"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">target</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">else</span><span class="p">:</span> <span class="c"># 'comment'</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: -</span><span class="si">%s</span><span class="s">-"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">if</span> <span class="n">action</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'start'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">):</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="s1">'pi'</span><span class="p">:</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: -</span><span class="si">%s</span><span class="s2">=</span><span class="si">%s</span><span class="s2">-"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">target</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">else</span><span class="p">:</span> <span class="c1"># 'comment'</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: -</span><span class="si">%s</span><span class="s2">-"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">pi: -some=pi -</span>
 <span class="go">comment: - a comment -</span>
 <span class="go">start: root</span>
@@ -658,19 +658,19 @@ it returns from its <tt class="docutils literal">.start()</tt> and <tt class="do
 by the pull parser as the second item of the parse events tuple.</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">Target</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">'-&gt; start(</span><span class="si">%s</span><span class="s">)'</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">'&gt;&gt;START: </span><span class="si">%s</span><span class="s">&lt;&lt;'</span> <span class="o">%</span> <span class="n">tag</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s1">'-&gt; start(</span><span class="si">%s</span><span class="s1">)'</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s1">'&gt;&gt;START: </span><span class="si">%s</span><span class="s1">&lt;&lt;'</span> <span class="o">%</span> <span class="n">tag</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">'-&gt; end(</span><span class="si">%s</span><span class="s">)'</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">'&gt;&gt;END: </span><span class="si">%s</span><span class="s">&lt;&lt;'</span> <span class="o">%</span> <span class="n">tag</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s1">'-&gt; end(</span><span class="si">%s</span><span class="s1">)'</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s1">'&gt;&gt;END: </span><span class="si">%s</span><span class="s1">&lt;&lt;'</span> <span class="o">%</span> <span class="n">tag</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">'-&gt; close()'</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">"CLOSED!"</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s1">'-&gt; close()'</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">return</span> <span class="s2">"CLOSED!"</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s">'start'</span><span class="p">,</span> <span class="s">'end'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">event_types</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'start'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">event_types</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">Target</span><span class="p">())</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;child1 /&gt;&lt;child2 /&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;child1 /&gt;&lt;child2 /&gt;&lt;/root&gt;'</span><span class="p">)</span>
 <span class="go">-&gt; start(root)</span>
 <span class="go">-&gt; start(child1)</span>
 <span class="go">-&gt; end(child1)</span>
@@ -679,7 +679,7 @@ by the pull parser as the second item of the parse events tuple.</p>
 <span class="go">-&gt; end(root)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
 <span class="go">start: &gt;&gt;START: root&lt;&lt;</span>
 <span class="go">start: &gt;&gt;START: child1&lt;&lt;</span>
 <span class="go">end: &gt;&gt;END: child1&lt;&lt;</span>
@@ -703,15 +703,15 @@ filters attributes before they are being added to the tree:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">AttributeFilter</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">TreeBuilder</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="n">attrib</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">attrib</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="s">'evil'</span> <span class="ow">in</span> <span class="n">attrib</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="k">del</span> <span class="n">attrib</span><span class="p">[</span><span class="s">'evil'</span><span class="p">]</span>
+<span class="gp">... </span>        <span class="k">if</span> <span class="s1">'evil'</span> <span class="ow">in</span> <span class="n">attrib</span><span class="p">:</span>
+<span class="gp">... </span>            <span class="k">del</span> <span class="n">attrib</span><span class="p">[</span><span class="s1">'evil'</span><span class="p">]</span>
 <span class="gp">... </span>        <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">AttributeFilter</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">start</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLPullParser</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">AttributeFilter</span><span class="p">())</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;child1 test="123" /&gt;&lt;child2 evil="YES" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;child1 test="123" /&gt;&lt;child2 evil="YES" /&gt;&lt;/root&gt;'</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">read_events</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">(</span><span class="si">%r</span><span class="s">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">attrib</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="s1">(</span><span class="si">%r</span><span class="s1">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">attrib</span><span class="p">))</span>
 <span class="go">end: child1({'test': '123'})</span>
 <span class="go">end: child2({})</span>
 <span class="go">end: root({})</span>
@@ -728,17 +728,17 @@ file-like object), while building the tree.  You can think of it as
 a blocking wrapper around the <tt class="docutils literal">XMLPullParser</tt> that automatically and
 incrementally reads data from the input file for you and provides a
 single iterator for them:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'''</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;element key='value'&gt;text&lt;/element&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;element&gt;text&lt;/element&gt;tail</span>
-<span class="gp">... </span><span class="s">  &lt;empty-element xmlns="http://testns/" /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">'''</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'''</span>
+<span class="gp">... </span><span class="s1">&lt;root&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;element key='value'&gt;text&lt;/element&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;element&gt;text&lt;/element&gt;tail</span>
+<span class="gp">... </span><span class="s1">  &lt;empty-element xmlns="http://testns/" /&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">end: element</span>
 <span class="go">end: element</span>
 <span class="go">end: {http://testns/}empty-element</span>
@@ -750,10 +750,10 @@ of the iterator:</p>
 <span class="go">'root'</span>
 </pre></div>
 <p>The other event types can be activated with the <tt class="docutils literal">events</tt> keyword argument:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">events</span><span class="o">=</span><span class="n">events</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">start: root</span>
 <span class="go">start: element</span>
 <span class="go">end: element</span>
@@ -773,10 +773,10 @@ It behaves exactly like <tt class="docutils literal">iterparse()</tt>, but works
 ElementTrees.  Here is an example for a tree parsed by <tt class="docutils literal">iterparse()</tt>:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="n">f</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s">"element"</span><span class="p">)</span>
+<span class="gp">... </span>            <span class="n">f</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s2">"element"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">start: element</span>
 <span class="go">end: element</span>
 <span class="go">start: element</span>
@@ -788,10 +788,10 @@ ElementTrees.  Here is an example for a tree parsed by <tt class="docutils liter
 using <tt class="docutils literal">iterwalk()</tt> to get the exact same events without parsing the
 input again:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterwalk</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="n">root</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s">"element"</span><span class="p">)</span>
+<span class="gp">... </span>            <span class="n">root</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s2">"element"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
 <span class="go">start: element</span>
 <span class="go">end: element</span>
 <span class="go">start: element</span>
@@ -806,12 +806,12 @@ library.  First of all, where ElementTree would raise an exception, the
 parsers in lxml.etree can handle unicode strings straight away.  This is most
 helpful for XML snippets embedded in source code using the <tt class="docutils literal">XML()</tt>
 function:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s"> + </span><span class="se">\uf8d2</span><span class="s"> &lt;/test&gt;'</span> <span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s1">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s1"> + </span><span class="se">\uf8d2</span><span class="s1"> &lt;/test&gt;'</span> <span class="p">)</span>
 </pre></div>
 <p>This requires, however, that unicode strings do not specify a conflicting
 encoding themselves and thus lie about their real encoding:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s">u'&lt;?xml version="1.0" encoding="ASCII"?&gt;</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span>
-<span class="gp">... </span>           <span class="s">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s"> + </span><span class="se">\uf8d2</span><span class="s"> &lt;/test&gt;'</span> <span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s1">u'&lt;?xml version="1.0" encoding="ASCII"?&gt;</span><span class="se">\n</span><span class="s1">'</span> <span class="o">+</span>
+<span class="gp">... </span>           <span class="s1">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s1"> + </span><span class="se">\uf8d2</span><span class="s1"> &lt;/test&gt;'</span> <span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">ValueError</span>: <span class="n">Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.</span>
@@ -828,24 +828,24 @@ number of other byte encodings if asked for:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">b'&lt;test&gt; &amp;#63697; + &amp;#63698; &lt;/test&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'UTF-8'</span><span class="p">,</span> <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'UTF-8'</span><span class="p">,</span> <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 <span class="go">b'&lt;test&gt; \xef\xa3\x91 + \xef\xa3\x92 &lt;/test&gt;'</span>
 </pre></div>
 <p>As an extension, lxml.etree recognises the name 'unicode' as an argument
 to the encoding parameter to build a Python unicode representation of a tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="go">u'&lt;test&gt; \uf8d1 + \uf8d2 &lt;/test&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"test"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"test"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="go">u'&lt;test/&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">"subtest"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s2">"subtest"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="go">u'&lt;test&gt;&lt;subtest/&gt;&lt;/test&gt;'</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">)</span>
 <span class="go">u'&lt;test&gt;&lt;subtest/&gt;&lt;/test&gt;'</span>
 </pre></div>
 <p>The result of <tt class="docutils literal"><span class="pre">tostring(encoding='unicode')</span></tt> can be treated like any
@@ -867,7 +867,7 @@ with UTF-8 is also considerably faster in most cases.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 5f2239b..0b28b6b 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Benchmarks and Speed</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -601,11 +601,11 @@ friendly way to do this is obviously <tt class="docutils literal">iterparse()</t
 data is not of any interest.</p>
 <p>Now, Uche's original proposal was more or less the following:</p>
 <div class="syntax"><pre><span class="k">def</span> <span class="nf">bench_ET</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">ElementTree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">"ot.xml"</span><span class="p">)</span>
+    <span class="n">tree</span> <span class="o">=</span> <span class="n">ElementTree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"ot.xml"</span><span class="p">)</span>
     <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">"//v"</span><span class="p">):</span>
+    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">"//v"</span><span class="p">):</span>
         <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-        <span class="k">if</span> <span class="s">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
+        <span class="k">if</span> <span class="s1">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
             <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
     <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 </pre></div>
@@ -613,10 +613,10 @@ data is not of any interest.</p>
 variant looks like this:</p>
 <div class="syntax"><pre><span class="k">def</span> <span class="nf">bench_ET_iterparse</span><span class="p">():</span>
     <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ElementTree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="s">"ot.xml"</span><span class="p">):</span>
-        <span class="k">if</span> <span class="n">v</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s">'v'</span><span class="p">:</span>
+    <span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ElementTree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="s2">"ot.xml"</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">v</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s1">'v'</span><span class="p">:</span>
             <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-            <span class="k">if</span> <span class="s">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
+            <span class="k">if</span> <span class="s1">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
                 <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
         <span class="n">v</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
     <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
@@ -630,12 +630,12 @@ even back then, it was quite a bit faster than what lxml could achieve.</p>
 <p>Since then, lxml has matured a lot and has gotten much faster.  The iterparse
 variant now runs in 0.14 seconds, and if you remove the <tt class="docutils literal">v.clear()</tt>, it is
 even a little faster (which isn't the case for cElementTree).</p>
-<p>One of the many great tools in lxml is XPath, a swiss army knife for finding
+<p>One of the many great tools in lxml is XPath, a Swiss army knife for finding
 things in XML documents.  It is possible to move the whole thing to a pure
 XPath implementation, which looks like this:</p>
 <div class="syntax"><pre><span class="k">def</span> <span class="nf">bench_lxml_xpath_all</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">"ot.xml"</span><span class="p">)</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//v[contains(., 'begat')]/text()"</span><span class="p">)</span>
+    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"ot.xml"</span><span class="p">)</span>
+    <span class="n">result</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//v[contains(., 'begat')]/text()"</span><span class="p">)</span>
     <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 </pre></div>
 <p>This runs in about 0.13 seconds and is about the shortest possible
@@ -644,11 +644,11 @@ is already a rather complex XPath expression compared to the simple "//v"
 ElementPath expression we started with.  Since this is also valid XPath, let's
 try this instead:</p>
 <div class="syntax"><pre><span class="k">def</span> <span class="nf">bench_lxml_xpath</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">"ot.xml"</span><span class="p">)</span>
+    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"ot.xml"</span><span class="p">)</span>
     <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//v"</span><span class="p">):</span>
+    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//v"</span><span class="p">):</span>
         <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-        <span class="k">if</span> <span class="s">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
+        <span class="k">if</span> <span class="s1">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
             <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
     <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 </pre></div>
@@ -660,11 +660,11 @@ what we had in the beginning.  Under lxml, this runs in the same 0.12 seconds.</
 <p>But there is one thing left to try.  We can replace the simple ElementPath
 expression with a native tree iterator:</p>
 <div class="syntax"><pre><span class="k">def</span> <span class="nf">bench_lxml_getiterator</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">"ot.xml"</span><span class="p">)</span>
+    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"ot.xml"</span><span class="p">)</span>
     <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">getiterator</span><span class="p">(</span><span class="s">"v"</span><span class="p">):</span>
+    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">getiterator</span><span class="p">(</span><span class="s2">"v"</span><span class="p">):</span>
         <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-        <span class="k">if</span> <span class="s">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
+        <span class="k">if</span> <span class="s1">'begat'</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
             <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
     <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 </pre></div>
@@ -798,7 +798,7 @@ random.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 9ed6d79..a8e2f04 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Document loading and URL resolving</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -61,9 +61,9 @@ on <a class="reference external" href="http://xmlsoft.org/catalog.html">how to s
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">DTDResolver</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Resolver</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">resolve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"Resolving URL '</span><span class="si">%s</span><span class="s">'"</span> <span class="o">%</span> <span class="n">url</span><span class="p">)</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"Resolving URL '</span><span class="si">%s</span><span class="s2">'"</span> <span class="o">%</span> <span class="n">url</span><span class="p">)</span>
 <span class="gp">... </span>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">resolve_string</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">'&lt;!ENTITY myentity "[resolved text: </span><span class="si">%s</span><span class="s">]"&gt;'</span> <span class="o">%</span> <span class="n">url</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
+<span class="gp">... </span>            <span class="s1">'&lt;!ENTITY myentity "[resolved text: </span><span class="si">%s</span><span class="s1">]"&gt;'</span> <span class="o">%</span> <span class="n">url</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
 </pre></div>
 <p>This defines a resolver that always returns a dynamically generated DTD
 fragment defining an entity.  The <tt class="docutils literal">url</tt> argument passes the system URL of
@@ -89,7 +89,7 @@ terminates if <tt class="docutils literal">resolve()</tt> returns the result of
 <p>Note that we instantiate a parser that loads the DTD.  This is not done by the
 default parser, which does no validation.  When we use this parser to parse a
 document that requires resolving a URL, it will call our custom resolver:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">'&lt;!DOCTYPE doc SYSTEM "MissingDTD.dtd"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s1">'&lt;!DOCTYPE doc SYSTEM "MissingDTD.dtd"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">parser</span><span class="p">)</span>
 <span class="go">Resolving URL 'MissingDTD.dtd'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
@@ -108,29 +108,29 @@ resolver that only responds to a specific prefix:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">PrefixResolver</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Resolver</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">result_xml</span> <span class="o">=</span> <span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">             &lt;xsl:stylesheet</span>
-<span class="gp">... </span><span class="s">                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">               &lt;test xmlns="testNS"&gt;</span><span class="si">%s</span><span class="s">-TEST&lt;/test&gt;</span>
-<span class="gp">... </span><span class="s">             &lt;/xsl:stylesheet&gt;</span>
-<span class="gp">... </span><span class="s">             '''</span> <span class="o">%</span> <span class="n">prefix</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">result_xml</span> <span class="o">=</span> <span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">             &lt;xsl:stylesheet</span>
+<span class="gp">... </span><span class="s1">                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s1">               &lt;test xmlns="testNS"&gt;</span><span class="si">%s</span><span class="s1">-TEST&lt;/test&gt;</span>
+<span class="gp">... </span><span class="s1">             &lt;/xsl:stylesheet&gt;</span>
+<span class="gp">... </span><span class="s1">             '''</span> <span class="o">%</span> <span class="n">prefix</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">resolve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">pubid</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="k">if</span> <span class="n">url</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="p">):</span>
-<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s">"Resolved url </span><span class="si">%s</span><span class="s"> as prefix </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="p">))</span>
+<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s2">"Resolved url </span><span class="si">%s</span><span class="s2"> as prefix </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="p">))</span>
 <span class="gp">... </span>            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">resolve_string</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">result_xml</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
 </pre></div>
 <p>We demonstrate this in XSLT and use the following stylesheet as an example:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml_text</span> <span class="o">=</span> <span class="s">"""</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;xsl:include href="honk:test"/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;test&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;xsl:value-of select="document('hoi:test')/*/*/text()"/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/test&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;</span>
-<span class="gp">... </span><span class="s">"""</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml_text</span> <span class="o">=</span> <span class="s2">"""</span><span class="se">\</span>
+<span class="gp">... </span><span class="s2">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s2">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;xsl:include href="honk:test"/&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s2">    &lt;test&gt;</span>
+<span class="gp">... </span><span class="s2">      &lt;xsl:value-of select="document('hoi:test')/*/*/text()"/&gt;</span>
+<span class="gp">... </span><span class="s2">    &lt;/test&gt;</span>
+<span class="gp">... </span><span class="s2">  &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s2">&lt;/xsl:stylesheet&gt;</span>
+<span class="gp">... </span><span class="s2">"""</span>
 </pre></div>
 <p>Note that it needs to resolve two URIs: <tt class="docutils literal">honk:test</tt> when compiling the XSLT
 document (i.e. when resolving <tt class="docutils literal">xsl:import</tt> and <tt class="docutils literal">xsl:include</tt> elements) and
@@ -140,11 +140,11 @@ parsers, we can parse our document twice in different resolver contexts:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">normal_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml_text</span><span class="p">),</span> <span class="n">hoi_parser</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s">"hoi"</span><span class="p">)</span> <span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s2">"hoi"</span><span class="p">)</span> <span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml_text</span><span class="p">),</span> <span class="n">hoi_parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s">"honk"</span><span class="p">)</span> <span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s2">"honk"</span><span class="p">)</span> <span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">honk_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml_text</span><span class="p">),</span> <span class="n">honk_parser</span><span class="p">)</span>
 </pre></div>
 <p>These contexts are important for the further behaviour of the documents.  They
@@ -186,7 +186,7 @@ needs to resolve the <tt class="docutils literal">hoi</tt> URI in the call to th
 <span class="gr">lxml.etree.XSLTApplyError</span>: <span class="n">Cannot resolve URI hoi:test</span>
 </pre></div>
 <p>This can only be solved by adding a <tt class="docutils literal">hoi</tt> resolver to the original parser:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s">"hoi"</span><span class="p">)</span> <span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s2">"hoi"</span><span class="p">)</span> <span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">honk_doc</span><span class="p">)</span>
 <span class="go">Resolved url hoi:test as prefix hoi</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
@@ -250,7 +250,7 @@ documents or raises exceptions if access is denied.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 8cc7d3e..1bbbb66 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -48,11 +48,11 @@ do this, we use the special SAX content handler defined by lxml named
 <span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">sax</span><span class="o">.</span><span class="n">ElementTreeContentHandler</span><span class="p">()</span>
 </pre></div>
 <p>Now let's fire some SAX events at it:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">startElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">'a'</span><span class="p">),</span> <span class="s">'a'</span><span class="p">,</span> <span class="p">{})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">startElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">'b'</span><span class="p">),</span> <span class="s">'b'</span><span class="p">,</span> <span class="p">{(</span><span class="bp">None</span><span class="p">,</span> <span class="s">'foo'</span><span class="p">):</span> <span class="s">'bar'</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">characters</span><span class="p">(</span><span class="s">'Hello world'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">endElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">'b'</span><span class="p">),</span> <span class="s">'b'</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">endElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">'a'</span><span class="p">),</span> <span class="s">'a'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">startElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s1">'a'</span><span class="p">),</span> <span class="s1">'a'</span><span class="p">,</span> <span class="p">{})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">startElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">),</span> <span class="s1">'b'</span><span class="p">,</span> <span class="p">{(</span><span class="bp">None</span><span class="p">,</span> <span class="s1">'foo'</span><span class="p">):</span> <span class="s1">'bar'</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">characters</span><span class="p">(</span><span class="s1">'Hello world'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">endElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">),</span> <span class="s1">'b'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">endElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s1">'a'</span><span class="p">),</span> <span class="s1">'a'</span><span class="p">)</span>
 </pre></div>
 <p>This constructs an equivalent tree.  You can access it through the <tt class="docutils literal">etree</tt>
 property of the handler:</p>
@@ -67,7 +67,7 @@ can determine which element class lookup scheme should be used.</p>
 <div class="section" id="producing-sax-events-from-an-elementtree-or-element">
 <h1>Producing SAX events from an ElementTree or Element</h1>
 <p>Let's make a tree we can generate SAX events for:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 </pre></div>
 <p>To see whether the correct SAX events are produced, we'll write a custom
@@ -81,9 +81,9 @@ content handler.:</p>
 <span class="gp">...</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">startElementNS</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">qname</span><span class="p">,</span> <span class="n">attributes</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="n">uri</span><span class="p">,</span> <span class="n">localname</span> <span class="o">=</span> <span class="n">name</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="n">localname</span> <span class="o">==</span> <span class="s">'a'</span><span class="p">:</span>
+<span class="gp">... </span>        <span class="k">if</span> <span class="n">localname</span> <span class="o">==</span> <span class="s1">'a'</span><span class="p">:</span>
 <span class="gp">... </span>            <span class="bp">self</span><span class="o">.</span><span class="n">a_amount</span> <span class="o">+=</span> <span class="mi">1</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="n">localname</span> <span class="o">==</span> <span class="s">'b'</span><span class="p">:</span>
+<span class="gp">... </span>        <span class="k">if</span> <span class="n">localname</span> <span class="o">==</span> <span class="s1">'b'</span><span class="p">:</span>
 <span class="gp">... </span>            <span class="bp">self</span><span class="o">.</span><span class="n">b_amount</span> <span class="o">+=</span> <span class="mi">1</span>
 <span class="gp">...</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">characters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
@@ -109,7 +109,7 @@ processing.</p>
 <h1>Interfacing with pulldom/minidom</h1>
 <p>lxml.sax is a simple way to interface with the standard XML support in the
 Python library.  Note, however, that this is a one-way solution, as Python's
-DOM implementation connot generate SAX events from a DOM tree.</p>
+DOM implementation cannot generate SAX events from a DOM tree.</p>
 <p>You can use xml.dom.pulldom to build a minidom from lxml:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">xml.dom.pulldom</span> <span class="kn">import</span> <span class="n">SAX2DOM</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span> <span class="o">=</span> <span class="n">SAX2DOM</span><span class="p">()</span>
@@ -124,7 +124,7 @@ DOM implementation connot generate SAX events from a DOM tree.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index f213f8c..3b0ce85 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.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 bdbc0ce..704efa0 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The lxml.etree Tutorial</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -76,29 +76,29 @@ functionality that is specific to <tt class="docutils literal">lxml.etree</tt>,
 of) the following import chain as a fall-back to the original ElementTree:</p>
 <div class="syntax"><pre><span class="k">try</span><span class="p">:</span>
   <span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-  <span class="k">print</span><span class="p">(</span><span class="s">"running with lxml.etree"</span><span class="p">)</span>
+  <span class="k">print</span><span class="p">(</span><span class="s2">"running with lxml.etree"</span><span class="p">)</span>
 <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
   <span class="k">try</span><span class="p">:</span>
-    <span class="c"># Python 2.5</span>
+    <span class="c1"># Python 2.5</span>
     <span class="kn">import</span> <span class="nn">xml.etree.cElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-    <span class="k">print</span><span class="p">(</span><span class="s">"running with cElementTree on Python 2.5+"</span><span class="p">)</span>
+    <span class="k">print</span><span class="p">(</span><span class="s2">"running with cElementTree on Python 2.5+"</span><span class="p">)</span>
   <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
     <span class="k">try</span><span class="p">:</span>
-      <span class="c"># Python 2.5</span>
+      <span class="c1"># Python 2.5</span>
       <span class="kn">import</span> <span class="nn">xml.etree.ElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-      <span class="k">print</span><span class="p">(</span><span class="s">"running with ElementTree on Python 2.5+"</span><span class="p">)</span>
+      <span class="k">print</span><span class="p">(</span><span class="s2">"running with ElementTree on Python 2.5+"</span><span class="p">)</span>
     <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
       <span class="k">try</span><span class="p">:</span>
-        <span class="c"># normal cElementTree install</span>
+        <span class="c1"># normal cElementTree install</span>
         <span class="kn">import</span> <span class="nn">cElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-        <span class="k">print</span><span class="p">(</span><span class="s">"running with cElementTree"</span><span class="p">)</span>
+        <span class="k">print</span><span class="p">(</span><span class="s2">"running with cElementTree"</span><span class="p">)</span>
       <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
         <span class="k">try</span><span class="p">:</span>
-          <span class="c"># normal ElementTree install</span>
+          <span class="c1"># normal ElementTree install</span>
           <span class="kn">import</span> <span class="nn">elementtree.ElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-          <span class="k">print</span><span class="p">(</span><span class="s">"running with ElementTree"</span><span class="p">)</span>
+          <span class="k">print</span><span class="p">(</span><span class="s2">"running with ElementTree"</span><span class="p">)</span>
         <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-          <span class="k">print</span><span class="p">(</span><span class="s">"Failed to import ElementTree from any known place"</span><span class="p">)</span>
+          <span class="k">print</span><span class="p">(</span><span class="s2">"Failed to import ElementTree from any known place"</span><span class="p">)</span>
 </pre></div>
 <p>To aid in writing portable code, this tutorial makes it clear in the examples
 which part of the presented API is an extension of <tt class="docutils literal">lxml.etree</tt> over the
@@ -109,7 +109,7 @@ library</a>.</p>
 <p>An <tt class="docutils literal">Element</tt> is the main container object for the ElementTree API.  Most of
 the XML tree functionality is accessed through this class.  Elements are
 easily created through the <tt class="docutils literal">Element</tt> factory:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
 </pre></div>
 <p>The XML tag name of elements is accessed through the <tt class="docutils literal">tag</tt> property:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -117,13 +117,13 @@ easily created through the <tt class="docutils literal">Element</tt> factory:</p
 </pre></div>
 <p>Elements are organised in an XML tree structure.  To create child elements and
 add them to a parent element, you can use the <tt class="docutils literal">append()</tt> method:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"child1"</span><span class="p">)</span> <span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"child1"</span><span class="p">)</span> <span class="p">)</span>
 </pre></div>
 <p>However, this is so common that there is a shorter and much more efficient way
 to do this: the <tt class="docutils literal">SubElement</tt> factory.  It accepts the same arguments as the
 <tt class="docutils literal">Element</tt> factory, but additionally requires the parent as first argument:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child2"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child3"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child2"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">child3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child3"</span><span class="p">)</span>
 </pre></div>
 <p>To see that this is really XML, you can serialise the tree you have created:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
@@ -145,7 +145,7 @@ possible:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">3</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="c"># lxml.etree only!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="c1"># lxml.etree only!</span>
 <span class="go">1</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">children</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -156,7 +156,7 @@ possible:</p>
 <span class="go">child2</span>
 <span class="go">child3</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"child0"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"child0"</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">start</span> <span class="o">=</span> <span class="n">root</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">end</span>   <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">:]</span>
 
@@ -167,18 +167,18 @@ possible:</p>
 </pre></div>
 <p>Prior to ElementTree 1.3 and lxml 2.0, you could also check the truth value of
 an Element to see if it has children, i.e. if the list of children is empty:</p>
-<div class="syntax"><pre><span class="k">if</span> <span class="n">root</span><span class="p">:</span>   <span class="c"># this no longer works!</span>
-    <span class="k">print</span><span class="p">(</span><span class="s">"The root element has children"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="k">if</span> <span class="n">root</span><span class="p">:</span>   <span class="c1"># this no longer works!</span>
+    <span class="k">print</span><span class="p">(</span><span class="s2">"The root element has children"</span><span class="p">)</span>
 </pre></div>
 <p>This is no longer supported as people tend to expect that a "something"
 evaluates to True and expect Elements to be "something", may they have
 children or not.  So, many users find it surprising that any Element
 would evaluate to False in an if-statement like the above.  Instead,
 use <tt class="docutils literal">len(element)</tt>, which is both more explicit and less error prone.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">iselement</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>  <span class="c"># test if it's some kind of Element</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">iselement</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>  <span class="c1"># test if it's some kind of Element</span>
 <span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">):</span>                 <span class="c"># test if it has children</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"The root element has children"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">):</span>                 <span class="c1"># test if it has children</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"The root element has children"</span><span class="p">)</span>
 <span class="go">The root element has children</span>
 </pre></div>
 <p>There is another important case where the behaviour of Elements in lxml
@@ -190,7 +190,7 @@ original ElementTree (prior to version 1.3 or Python 2.7/3.2):</p>
 <span class="go">child1</span>
 <span class="go">child2</span>
 <span class="go">child3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>  <span class="c"># this moves the element in lxml.etree!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>  <span class="c1"># this moves the element in lxml.etree!</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="p">:</span>
 <span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">child3</span>
@@ -216,7 +216,7 @@ which may or may not be intended.</p>
 <p>The upside of this difference is that an Element in <tt class="docutils literal">lxml.etree</tt> always
 has exactly one parent, which can be queried through the <tt class="docutils literal">getparent()</tt>
 method.  This is not supported in the original ElementTree.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span>  <span class="c"># lxml.etree only!</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span>  <span class="c1"># lxml.etree only!</span>
 <span class="go">True</span>
 </pre></div>
 <p>If you want to <em>copy</em> an element to a different position in <tt class="docutils literal">lxml.etree</tt>,
@@ -224,7 +224,7 @@ consider creating an independent <em>deep copy</em> using the <tt class="docutil
 from Python's standard library:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"neu"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"neu"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">element</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -234,9 +234,9 @@ from Python's standard library:</p>
 </pre></div>
 <p>The siblings (or neighbours) of an element are accessed as next and previous
 elements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span> <span class="c"># lxml.etree only!</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span> <span class="c1"># lxml.etree only!</span>
 <span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getnext</span><span class="p">()</span> <span class="c"># lxml.etree only!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getnext</span><span class="p">()</span> <span class="c1"># lxml.etree only!</span>
 <span class="go">True</span>
 </pre></div>
 </div>
@@ -244,19 +244,19 @@ elements:</p>
 <h2>Elements carry attributes as a dict</h2>
 <p>XML elements support attributes.  You can create them directly in the Element
 factory:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">,</span> <span class="n">interesting</span><span class="o">=</span><span class="s">"totally"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">,</span> <span class="n">interesting</span><span class="o">=</span><span class="s2">"totally"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">b'&lt;root interesting="totally"/&gt;'</span>
 </pre></div>
 <p>Attributes are just unordered name-value pairs, so a very convenient way
 of dealing with them is through the dictionary-like interface of Elements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"interesting"</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"interesting"</span><span class="p">))</span>
 <span class="go">totally</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"hello"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"hello"</span><span class="p">))</span>
 <span class="go">None</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">"hello"</span><span class="p">,</span> <span class="s">"Huhu"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"hello"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"hello"</span><span class="p">,</span> <span class="s2">"Huhu"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"hello"</span><span class="p">))</span>
 <span class="go">Huhu</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -266,7 +266,7 @@ of dealing with them is through the dictionary-like interface of Elements:</p>
 <span class="go">['hello', 'interesting']</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">items</span><span class="p">()):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> = </span><span class="si">%r</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1"> = </span><span class="si">%r</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
 <span class="go">hello = 'Huhu'</span>
 <span class="go">interesting = 'totally'</span>
 </pre></div>
@@ -275,15 +275,15 @@ getting a 'real' dictionary-like object, e.g. for passing it around,
 you can use the <tt class="docutils literal">attrib</tt> property:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">attributes</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">attrib</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="p">[</span><span class="s">"interesting"</span><span class="p">])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="p">[</span><span class="s2">"interesting"</span><span class="p">])</span>
 <span class="go">totally</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"no-such-attribute"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no-such-attribute"</span><span class="p">))</span>
 <span class="go">None</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">attributes</span><span class="p">[</span><span class="s">"hello"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"Guten Tag"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="p">[</span><span class="s">"hello"</span><span class="p">])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">attributes</span><span class="p">[</span><span class="s2">"hello"</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"Guten Tag"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="p">[</span><span class="s2">"hello"</span><span class="p">])</span>
 <span class="go">Guten Tag</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"hello"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"hello"</span><span class="p">))</span>
 <span class="go">Guten Tag</span>
 </pre></div>
 <p>Note that <tt class="docutils literal">attrib</tt> is a dict-like object backed by the Element itself.
@@ -300,8 +300,8 @@ tree, copy it into a dict:</p>
 <div class="section" id="elements-contain-text">
 <h2>Elements contain text</h2>
 <p>Elements can contain text:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"TEXT"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"TEXT"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">TEXT</span>
@@ -314,24 +314,24 @@ text can be found.  It is encapsulated by a leaf tag at the very bottom of the
 tree hierarchy.</p>
 <p>However, if XML is used for tagged text documents such as (X)HTML, text can
 also appear between different elements, right in the middle of the tree:</p>
-<div class="syntax"><pre><span class="nt">&lt;html&gt;&lt;body&gt;</span>Hello<span class="nt">&lt;br/&gt;</span>World<span class="nt">&lt;/body&gt;&lt;/html&gt;</span>
+<div class="syntax"><pre><span class="p">&lt;</span><span class="nt">html</span><span class="p">&gt;&lt;</span><span class="nt">body</span><span class="p">&gt;</span>Hello<span class="p">&lt;</span><span class="nt">br</span><span class="p">/&gt;</span>World<span class="p">&lt;/</span><span class="nt">body</span><span class="p">&gt;&lt;/</span><span class="nt">html</span><span class="p">&gt;</span>
 </pre></div>
 <p>Here, the <tt class="docutils literal">&lt;br/&gt;</tt> tag is surrounded by text.  This is often referred to as
 <em>document-style</em> or <em>mixed-content</em> XML.  Elements support this through their
 <tt class="docutils literal">tail</tt> property.  It contains the text that directly follows the element, up
 to the next element in the XML tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"html"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="s">"body"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"TEXT"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"html"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="s2">"body"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"TEXT"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
 <span class="go">b'&lt;html&gt;&lt;body&gt;TEXT&lt;/body&gt;&lt;/html&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="s">"br"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="s2">"br"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
 <span class="go">b'&lt;html&gt;&lt;body&gt;TEXT&lt;br/&gt;&lt;/body&gt;&lt;/html&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s">"TAIL"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s2">"TAIL"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
 <span class="go">b'&lt;html&gt;&lt;body&gt;TEXT&lt;br/&gt;TAIL&lt;/body&gt;&lt;/html&gt;'</span>
 </pre></div>
@@ -347,14 +347,14 @@ still want the tail text of its children).  For this purpose, the
 <tt class="docutils literal">tostring()</tt> function accepts the keyword argument <tt class="docutils literal">with_tail</tt>:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">br</span><span class="p">)</span>
 <span class="go">b'&lt;br/&gt;TAIL'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">br</span><span class="p">,</span> <span class="n">with_tail</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> <span class="c"># lxml.etree only!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">br</span><span class="p">,</span> <span class="n">with_tail</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> <span class="c1"># lxml.etree only!</span>
 <span class="go">b'&lt;br/&gt;'</span>
 </pre></div>
 <p>If you want to read <em>only</em> the text, i.e. without any intermediate
 tags, you have to recursively concatenate all <tt class="docutils literal">text</tt> and <tt class="docutils literal">tail</tt>
 attributes in the correct order.  Again, the <tt class="docutils literal">tostring()</tt> function
 comes to the rescue, this time using the <tt class="docutils literal">method</tt> keyword:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">"text"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">"text"</span><span class="p">)</span>
 <span class="go">b'TEXTTAIL'</span>
 </pre></div>
 </div>
@@ -362,13 +362,13 @@ comes to the rescue, this time using the <tt class="docutils literal">method</tt
 <h2>Using XPath to find text</h2>
 <p>Another way to extract the text content of a tree is <a class="reference external" href="xpathxslt.html#xpath">XPath</a>, which
 also allows you to extract the separate text chunks into a list:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"string()"</span><span class="p">))</span> <span class="c"># lxml.etree only!</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"string()"</span><span class="p">))</span> <span class="c1"># lxml.etree only!</span>
 <span class="go">TEXTTAIL</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//text()"</span><span class="p">))</span> <span class="c"># lxml.etree only!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//text()"</span><span class="p">))</span> <span class="c1"># lxml.etree only!</span>
 <span class="go">['TEXT', 'TAIL']</span>
 </pre></div>
 <p>If you want to use this more often, you can wrap it in a function:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">build_text_list</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//text()"</span><span class="p">)</span> <span class="c"># lxml.etree only!</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">build_text_list</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//text()"</span><span class="p">)</span> <span class="c1"># lxml.etree only!</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">build_text_list</span><span class="p">(</span><span class="n">html</span><span class="p">))</span>
 <span class="go">['TEXT', 'TAIL']</span>
 </pre></div>
@@ -399,7 +399,7 @@ Elements:</p>
 <p>While this works for the results of the <tt class="docutils literal">text()</tt> function, lxml will
 not tell you the origin of a string value that was constructed by the
 XPath functions <tt class="docutils literal">string()</tt> or <tt class="docutils literal">concat()</tt>:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">stringify</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"string()"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">stringify</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"string()"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">stringify</span><span class="p">(</span><span class="n">html</span><span class="p">))</span>
 <span class="go">TEXTTAIL</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">stringify</span><span class="p">(</span><span class="n">html</span><span class="p">)</span><span class="o">.</span><span class="n">getparent</span><span class="p">())</span>
@@ -413,10 +413,10 @@ and do something with its elements, tree iteration is a very convenient
 solution.  Elements provide a tree iterator for this purpose.  It yields
 elements in <em>document order</em>, i.e. in the order their tags would appear if you
 serialised the tree to XML:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"root"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Child 1"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"child"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Child 2"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"another"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Child 3"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Child 1"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"child"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Child 2"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s2">"another"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Child 3"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;root&gt;</span>
@@ -426,7 +426,7 @@ serialised the tree to XML:</p>
 <span class="go">&lt;/root&gt;</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">root - None</span>
 <span class="go">child - Child 1</span>
 <span class="go">child - Child 2</span>
@@ -435,13 +435,13 @@ serialised the tree to XML:</p>
 <p>If you know you are only interested in a single tag, you can pass its name to
 <tt class="docutils literal">iter()</tt> to have it filter for you.  Starting with lxml 3.0, you can also
 pass more than one tag to intercept on multiple tags during iteration.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">"child"</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s2">"child"</span><span class="p">):</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">child - Child 1</span>
 <span class="go">child - Child 2</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">"another"</span><span class="p">,</span> <span class="s">"child"</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s2">"another"</span><span class="p">,</span> <span class="s2">"child"</span><span class="p">):</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">child - Child 1</span>
 <span class="go">child - Child 2</span>
 <span class="go">another - Child 3</span>
@@ -450,14 +450,14 @@ pass more than one tag to intercept on multiple tags during iteration.</p>
 ProcessingInstructions, Comments and Entity instances.  If you want to
 make sure only Element objects are returned, you can pass the
 <tt class="docutils literal">Element</tt> factory as tag parameter:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Entity</span><span class="p">(</span><span class="s">"#234"</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Comment</span><span class="p">(</span><span class="s">"some comment"</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Entity</span><span class="p">(</span><span class="s2">"#234"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Comment</span><span class="p">(</span><span class="s2">"some comment"</span><span class="p">))</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">basestring</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">basestring</span><span class="p">):</span>  <span class="c1"># or 'str' in Python 3</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="gp">... </span>    <span class="k">else</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"SPECIAL: </span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"SPECIAL: </span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">root - None</span>
 <span class="go">child - Child 1</span>
 <span class="go">child - Child 2</span>
@@ -466,7 +466,7 @@ make sure only Element objects are returned, you can pass the
 <span class="go">SPECIAL: &lt;!--some comment--&gt; - some comment</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">root - None</span>
 <span class="go">child - Child 1</span>
 <span class="go">child - Child 2</span>
@@ -489,7 +489,7 @@ file-like object, or a URL (via FTP PUT or HTTP POST).  Both calls accept
 the same keyword arguments like <tt class="docutils literal">pretty_print</tt> for formatted output
 or <tt class="docutils literal">encoding</tt> to select a specific output encoding other than plain
 ASCII:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;'</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">b'&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;'</span>
@@ -498,7 +498,7 @@ ASCII:</p>
 <span class="go">&lt;?xml version='1.0' encoding='ASCII'?&gt;</span>
 <span class="go">&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'iso-8859-1'</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'iso-8859-1'</span><span class="p">))</span>
 <span class="go">&lt;?xml version='1.0' encoding='iso-8859-1'?&gt;</span>
 <span class="go">&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;</span>
 
@@ -514,42 +514,42 @@ ASCII:</p>
 functions can do more than XML serialisation.  You can serialise to
 HTML or extract the text content by passing the <tt class="docutils literal">method</tt> keyword:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span>
-<span class="gp">... </span>   <span class="s">'&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</span><span class="p">)</span>
+<span class="gp">... </span>   <span class="s1">'&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="c"># default: method = 'xml'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="c1"># default: method = 'xml'</span>
 <span class="go">b'&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'xml'</span><span class="p">)</span> <span class="c"># same as above</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'xml'</span><span class="p">)</span> <span class="c1"># same as above</span>
 <span class="go">b'&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'html'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'html'</span><span class="p">)</span>
 <span class="go">b'&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'html'</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'html'</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;html&gt;</span>
 <span class="go">&lt;head&gt;&lt;/head&gt;</span>
 <span class="go">&lt;body&gt;&lt;p&gt;Hello&lt;br&gt;World&lt;/p&gt;&lt;/body&gt;</span>
 <span class="go">&lt;/html&gt;</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'text'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'text'</span><span class="p">)</span>
 <span class="go">b'HelloWorld'</span>
 </pre></div>
 <p>As for XML serialisation, the default encoding for plain text
 serialisation is ASCII:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'br'</span><span class="p">))</span>  <span class="c"># get first result of iteration</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s">u'W</span><span class="se">\xf6</span><span class="s">rld'</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'br'</span><span class="p">))</span>  <span class="c1"># get first result of iteration</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s1">u'W</span><span class="se">\xf6</span><span class="s1">rld'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'text'</span><span class="p">)</span>  <span class="c"># doctest: +ELLIPSIS</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'text'</span><span class="p">)</span>  <span class="c1"># doctest: +ELLIPSIS</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">UnicodeEncodeError</span>: <span class="n">'ascii' codec can't encode character u'\xf6' ...</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'text'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">"UTF-8"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'text'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"UTF-8"</span><span class="p">)</span>
 <span class="go">b'HelloW\xc3\xb6rld'</span>
 </pre></div>
 <p>Here, serialising to a Python unicode string instead of a byte string
 might become handy.  Just pass the name <tt class="docutils literal">'unicode'</tt> as encoding:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">'unicode'</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'text'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'unicode'</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'text'</span><span class="p">)</span>
 <span class="go">u'HelloW\xf6rld'</span>
 </pre></div>
 <p>The W3C has a good <a class="reference external" href="http://www.w3.org/International/tutorials/tutorial-char-enc/">article about the Unicode character set and
@@ -561,13 +561,13 @@ character encodings</a>.</p>
 <p>An <tt class="docutils literal">ElementTree</tt> is mainly a document wrapper around a tree with a
 root node.  It provides a couple of methods for serialisation and
 general document handling.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;?xml version="1.0"?&gt;</span>
-<span class="gp">... </span><span class="s">&lt;!DOCTYPE root SYSTEM "test" [ &lt;!ENTITY tasty "parsnips"&gt; ]&gt;</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&amp;tasty;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;?xml version="1.0"?&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;!DOCTYPE root SYSTEM "test" [ &lt;!ENTITY tasty "parsnips"&gt; ]&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;root&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;a&gt;&amp;tasty;&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/root&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">xml_version</span><span class="p">)</span>
@@ -575,8 +575,8 @@ general document handling.</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">doctype</span><span class="p">)</span>
 <span class="go">&lt;!DOCTYPE root SYSTEM "test"&gt;</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">public_id</span> <span class="o">=</span> <span class="s">'-//W3C//DTD XHTML 1.0 Transitional//EN'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">system_url</span> <span class="o">=</span> <span class="s">'file://local.dtd'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">public_id</span> <span class="o">=</span> <span class="s1">'-//W3C//DTD XHTML 1.0 Transitional//EN'</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">system_url</span> <span class="o">=</span> <span class="s1">'file://local.dtd'</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">doctype</span><span class="p">)</span>
 <span class="go">&lt;!DOCTYPE root PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "file://local.dtd"&gt;</span>
 </pre></div>
@@ -587,7 +587,7 @@ parsing section below).</p>
 serialises as a complete document, as opposed to a single <tt class="docutils literal">Element</tt>.
 This includes top-level processing instructions and comments, as well
 as a DOCTYPE and other DTD content in the document:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">))</span>  <span class="c"># lxml 1.3.4 and later</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">))</span>  <span class="c1"># lxml 1.3.4 and later</span>
 <span class="go">&lt;!DOCTYPE root PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "file://local.dtd" [</span>
 <span class="go">&lt;!ENTITY tasty "parsnips"&gt;</span>
 <span class="go">]&gt;</span>
@@ -618,7 +618,7 @@ different parser as second argument.</p>
 <div class="section" id="the-fromstring-function">
 <h2>The fromstring() function</h2>
 <p>The <tt class="docutils literal">fromstring()</tt> function is the easiest way to parse a string:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_xml_data</span> <span class="o">=</span> <span class="s">"&lt;root&gt;data&lt;/root&gt;"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_xml_data</span> <span class="o">=</span> <span class="s2">"&lt;root&gt;data&lt;/root&gt;"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">some_xml_data</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -631,7 +631,7 @@ different parser as second argument.</p>
 <h2>The XML() function</h2>
 <p>The <tt class="docutils literal">XML()</tt> function behaves like the <tt class="docutils literal">fromstring()</tt> function, but is
 commonly used to write XML literals right into the source:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;data&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;data&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">root</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -648,7 +648,7 @@ That class comes from the <tt class="docutils literal">io</tt> module in Python
 Python versions, you will have to use the <tt class="docutils literal">StringIO</tt> class from the
 <tt class="docutils literal">StringIO</tt> module.  However, in real life, you would obviously avoid
 doing this all together and use the string parsing functions above.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like_object</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s">"&lt;root&gt;data&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like_object</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s2">"&lt;root&gt;data&lt;/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">some_file_like_object</span><span class="p">)</span>
 
@@ -685,12 +685,12 @@ from while the response is streaming in.</p>
 <h2>Parser objects</h2>
 <p>By default, <tt class="docutils literal">lxml.etree</tt> uses a standard parser with a default setup.  If
 you want to configure the parser, you can create a you instance:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="c"># lxml.etree only!</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="c1"># lxml.etree only!</span>
 </pre></div>
 <p>This creates a parser that removes empty text between tags while parsing,
 which can reduce the size of the tree and avoid dangling tail text if you know
 that whitespace-only content is not meaningful for your data.  An example:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;  &lt;a/&gt;   &lt;b&gt;  &lt;/b&gt;     &lt;/root&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;  &lt;a/&gt;   &lt;b&gt;  &lt;/b&gt;     &lt;/root&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">b'&lt;root&gt;&lt;a/&gt;&lt;b&gt;  &lt;/b&gt;&lt;/root&gt;'</span>
@@ -698,7 +698,7 @@ that whitespace-only content is not meaningful for your data.  An example:</p>
 <p>Note that the whitespace content inside the <tt class="docutils literal">&lt;b&gt;</tt> tag was not removed, as
 content at leaf elements tends to be data content (even if blank).  You can
 easily remove it in an additional step by traversing the tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">"*"</span><span class="p">):</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s2">"*"</span><span class="p">):</span>
 <span class="gp">... </span>    <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
 <span class="gp">... </span>        <span class="n">element</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="bp">None</span>
 
@@ -715,12 +715,12 @@ This is best used where the data arrives from a source like <tt class="docutils
 other file-like object that can provide data on request.  Note that the parser
 will block and wait until data becomes available in this case:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">DataSource</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="n">data</span> <span class="o">=</span> <span class="p">[</span> <span class="n">b</span><span class="s">"&lt;roo"</span><span class="p">,</span> <span class="n">b</span><span class="s">"t&gt;&lt;"</span><span class="p">,</span> <span class="n">b</span><span class="s">"a/"</span><span class="p">,</span> <span class="n">b</span><span class="s">"&gt;&lt;"</span><span class="p">,</span> <span class="n">b</span><span class="s">"/root&gt;"</span> <span class="p">]</span>
+<span class="gp">... </span>    <span class="n">data</span> <span class="o">=</span> <span class="p">[</span> <span class="n">b</span><span class="s2">"&lt;roo"</span><span class="p">,</span> <span class="n">b</span><span class="s2">"t&gt;&lt;"</span><span class="p">,</span> <span class="n">b</span><span class="s2">"a/"</span><span class="p">,</span> <span class="n">b</span><span class="s2">"&gt;&lt;"</span><span class="p">,</span> <span class="n">b</span><span class="s2">"/root&gt;"</span> <span class="p">]</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">requested_size</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="k">try</span><span class="p">:</span>
 <span class="gp">... </span>            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
 <span class="gp">... </span>        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="k">return</span> <span class="n">b</span><span class="s">''</span>
+<span class="gp">... </span>            <span class="k">return</span> <span class="n">b</span><span class="s1">''</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">DataSource</span><span class="p">())</span>
 
@@ -731,11 +731,11 @@ will block and wait until data becomes available in this case:</p>
 and <tt class="docutils literal">close()</tt> methods:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"&lt;roo"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"t&gt;&lt;"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"a/"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"&gt;&lt;"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"/root&gt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"&lt;roo"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"t&gt;&lt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"a/"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"&gt;&lt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 
@@ -750,7 +750,7 @@ while waiting for the next chunk.</p>
 <p>After calling the <tt class="docutils literal">close()</tt> method (or when an exception was raised
 by the parser), you can reuse the parser by calling its <tt class="docutils literal">feed()</tt>
 method again:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">"&lt;root/&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s2">"&lt;root/&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="go">b'&lt;root/&gt;'</span>
@@ -766,20 +766,20 @@ while building the tree (<tt class="docutils literal">iterparse</tt>), and one t
 at all, and instead calls feedback methods on a target object in a SAX-like
 fashion.</p>
 <p>Here is a simple <tt class="docutils literal">iterparse()</tt> example:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;data&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;data&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">, </span><span class="si">%4s</span><span class="s">, </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">, </span><span class="si">%4s</span><span class="s2">, </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">end,    a, data</span>
 <span class="go">end, root, None</span>
 </pre></div>
 <p>By default, <tt class="docutils literal">iterparse()</tt> only generates events when it is done parsing an
 element, but you can control this through the <tt class="docutils literal">events</tt> keyword argument:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;data&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;data&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">,</span>
-<span class="gp">... </span>                                      <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">)):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%5s</span><span class="s">, </span><span class="si">%4s</span><span class="s">, </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<span class="gp">... </span>                                      <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">)):</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"</span><span class="si">%5s</span><span class="s2">, </span><span class="si">%4s</span><span class="s2">, </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="go">start, root, None</span>
 <span class="go">start,    a, data</span>
 <span class="go">  end,    a, data</span>
@@ -793,13 +793,13 @@ save memory. So if you parse a large tree and you want to keep memory
 usage small, you should clean up parts of the tree that you no longer
 need:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="s">"&lt;root&gt;&lt;a&gt;&lt;b&gt;data&lt;/b&gt;&lt;/a&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="s2">"&lt;root&gt;&lt;a&gt;&lt;b&gt;data&lt;/b&gt;&lt;/a&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s">'b'</span><span class="p">:</span>
+<span class="gp">... </span>    <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s1">'b'</span><span class="p">:</span>
 <span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">elif</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s">'a'</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">"** cleaning up the subtree"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">elif</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s1">'a'</span><span class="p">:</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s2">"** cleaning up the subtree"</span><span class="p">)</span>
 <span class="gp">... </span>        <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
 <span class="go">data</span>
 <span class="go">** cleaning up the subtree</span>
@@ -813,15 +813,15 @@ the root node and that is repeated thousands of times.  In this case,
 it is best practice to let <tt class="docutils literal">lxml.etree</tt> do the tree building and only to
 intercept on exactly this one Element, using the normal tree API
 for data extraction.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml_file</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&lt;b&gt;ABC&lt;/b&gt;&lt;c&gt;abc&lt;/c&gt;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&lt;b&gt;MORE DATA&lt;/b&gt;&lt;c&gt;more data&lt;/c&gt;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&lt;b&gt;XYZ&lt;/b&gt;&lt;c&gt;xyz&lt;/c&gt;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;'''</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">xml_file</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s">'a'</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> -- </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">findtext</span><span class="p">(</span><span class="s">'b'</span><span class="p">),</span> <span class="n">element</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml_file</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;root&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;a&gt;&lt;b&gt;ABC&lt;/b&gt;&lt;c&gt;abc&lt;/c&gt;&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;a&gt;&lt;b&gt;MORE DATA&lt;/b&gt;&lt;c&gt;more data&lt;/c&gt;&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;a&gt;&lt;b&gt;XYZ&lt;/b&gt;&lt;c&gt;xyz&lt;/c&gt;&lt;/a&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/root&gt;'''</span><span class="p">)</span>
+
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">xml_file</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s1">'a'</span><span class="p">):</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1"> -- </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">findtext</span><span class="p">(</span><span class="s1">'b'</span><span class="p">),</span> <span class="n">element</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
 <span class="gp">... </span>    <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
 <span class="go">ABC -- abc</span>
 <span class="go">MORE DATA -- more data</span>
@@ -836,7 +836,7 @@ events are generated:</p>
 <span class="gp">... </span>    <span class="n">events</span> <span class="o">=</span> <span class="p">[]</span>
 <span class="gp">... </span>    <span class="n">close_count</span> <span class="o">=</span> <span class="mi">0</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">"start"</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s2">"start"</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">))</span>
 <span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 <span class="gp">... </span>        <span class="n">events</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="p">,</span> <span class="p">[]</span>
 <span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">close_count</span> <span class="o">+=</span> <span class="mi">1</span>
@@ -845,35 +845,35 @@ events are generated:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser_target</span> <span class="o">=</span> <span class="n">ParserTarget</span><span class="p">()</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">parser_target</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
 <span class="go">1</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'event: </span><span class="si">%s</span><span class="s"> - tag: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">event</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'event: </span><span class="si">%s</span><span class="s1"> - tag: </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">event</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
 <span class="gp">... </span>    <span class="k">for</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">event</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">' * </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s1">' * </span><span class="si">%s</span><span class="s1"> = </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
 <span class="go">event: start - tag: root</span>
 <span class="go"> * test = true</span>
 </pre></div>
 <p>You can reuse the parser and its target as often as you like, so you
 should take care that the <tt class="docutils literal">.close()</tt> method really resets the
 target to a usable state (also in the case of an error!).</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
 <span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
 <span class="go">3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s1">'&lt;root test="true"/&gt;'</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
 <span class="go">4</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'event: </span><span class="si">%s</span><span class="s"> - tag: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">event</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'event: </span><span class="si">%s</span><span class="s1"> - tag: </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">event</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
 <span class="gp">... </span>    <span class="k">for</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">event</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">' * </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
+<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s1">' * </span><span class="si">%s</span><span class="s1"> = </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
 <span class="go">event: start - tag: root</span>
 <span class="go"> * test = true</span>
 </pre></div>
@@ -884,9 +884,9 @@ target to a usable state (also in the case of an error!).</p>
 <p>The ElementTree API avoids
 <a class="reference external" href="http://www.w3.org/TR/xml-names/#ns-qualnames">namespace prefixes</a>
 wherever possible and deploys the real namespace (the URI) instead:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"{http://www.w3.org/1999/xhtml}html"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="s">"{http://www.w3.org/1999/xhtml}body"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Hello World"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"{http://www.w3.org/1999/xhtml}html"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="s2">"{http://www.w3.org/1999/xhtml}body"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Hello World"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;html:html xmlns:html="http://www.w3.org/1999/xhtml"&gt;</span>
@@ -906,14 +906,14 @@ string over and over again is error prone.  It is therefore common
 practice to store a namespace URI in a global variable.  To adapt the
 namespace prefixes for serialisation, you can also pass a mapping to
 the Element factory function, e.g. to define the default namespace:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">XHTML_NAMESPACE</span> <span class="o">=</span> <span class="s">"http://www.w3.org/1999/xhtml"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">XHTML</span> <span class="o">=</span> <span class="s">"{</span><span class="si">%s</span><span class="s">}"</span> <span class="o">%</span> <span class="n">XHTML_NAMESPACE</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">XHTML_NAMESPACE</span> <span class="o">=</span> <span class="s2">"http://www.w3.org/1999/xhtml"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">XHTML</span> <span class="o">=</span> <span class="s2">"{</span><span class="si">%s</span><span class="s2">}"</span> <span class="o">%</span> <span class="n">XHTML_NAMESPACE</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">NSMAP</span> <span class="o">=</span> <span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="n">XHTML_NAMESPACE</span><span class="p">}</span> <span class="c"># the default namespace (no prefix)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">NSMAP</span> <span class="o">=</span> <span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="n">XHTML_NAMESPACE</span><span class="p">}</span> <span class="c1"># the default namespace (no prefix)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s">"html"</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="n">NSMAP</span><span class="p">)</span> <span class="c"># lxml only!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">XHTML</span> <span class="o">+</span> <span class="s">"body"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"Hello World"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s2">"html"</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="n">NSMAP</span><span class="p">)</span> <span class="c1"># lxml only!</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">XHTML</span> <span class="o">+</span> <span class="s2">"body"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"Hello World"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;</span>
@@ -922,7 +922,7 @@ the Element factory function, e.g. to define the default namespace:</p>
 </pre></div>
 <p>You can also use the <tt class="docutils literal">QName</tt> helper class to build or split qualified
 tag names:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="s">'http://www.w3.org/1999/xhtml'</span><span class="p">,</span> <span class="s">'html'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="s1">'http://www.w3.org/1999/xhtml'</span><span class="p">,</span> <span class="s1">'html'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">localname</span><span class="p">)</span>
 <span class="go">html</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">namespace</span><span class="p">)</span>
@@ -930,21 +930,21 @@ tag names:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">{http://www.w3.org/1999/xhtml}html</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="s">'{http://www.w3.org/1999/xhtml}html'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="s1">'{http://www.w3.org/1999/xhtml}html'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">localname</span><span class="p">)</span>
 <span class="go">html</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">namespace</span><span class="p">)</span>
 <span class="go">http://www.w3.org/1999/xhtml</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">'{http://www.w3.org/1999/xhtml}html'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s1">'{http://www.w3.org/1999/xhtml}html'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">localname</span><span class="p">)</span>
 <span class="go">html</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">'script'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s1">'script'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">{http://www.w3.org/1999/xhtml}script</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="s">'{http://www.w3.org/1999/xhtml}html'</span><span class="p">,</span> <span class="s">'script'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">QName</span><span class="p">(</span><span class="s1">'{http://www.w3.org/1999/xhtml}html'</span><span class="p">,</span> <span class="s1">'script'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tag</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">{http://www.w3.org/1999/xhtml}script</span>
 </pre></div>
@@ -955,16 +955,16 @@ node through the <tt class="docutils literal">.nsmap</tt> property:</p>
 </pre></div>
 <p>Note, however, that this includes all prefixes known in the context of
 an Element, not only those that it defines itself.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">'root'</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">'a'</span><span class="p">:</span> <span class="s">'http://a.b/c'</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">'child'</span><span class="p">,</span>
-<span class="gp">... </span>                         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">'b'</span><span class="p">:</span> <span class="s">'http://b.c/d'</span><span class="p">})</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s1">'root'</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s1">'a'</span><span class="p">:</span> <span class="s1">'http://a.b/c'</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s1">'child'</span><span class="p">,</span>
+<span class="gp">... </span>                         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s1">'b'</span><span class="p">:</span> <span class="s1">'http://b.c/d'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">nsmap</span><span class="p">)</span>
 <span class="go">1</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">)</span>
 <span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">[</span><span class="s">'a'</span><span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">[</span><span class="s1">'a'</span><span class="p">]</span>
 <span class="go">'http://a.b/c'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">[</span><span class="s">'b'</span><span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">[</span><span class="s1">'b'</span><span class="p">]</span>
 <span class="go">'http://b.c/d'</span>
 </pre></div>
 <p>Therefore, modifying the returned dict cannot have any meaningful
@@ -976,21 +976,21 @@ considered being in a namespace by the XML namespace specification
 (<a class="reference external" href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#defaulting">section 6.2</a>), so they may end up losing their namespace on a
 serialise-parse roundtrip, even if they appear in a namespaced
 element.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s">"bgcolor"</span><span class="p">,</span> <span class="s">"#CCFFAA"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s2">"bgcolor"</span><span class="p">,</span> <span class="s2">"#CCFFAA"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
 <span class="go">&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;</span>
 <span class="go">  &lt;body xmlns:html="http://www.w3.org/1999/xhtml" html:bgcolor="#CCFFAA"&gt;Hello World&lt;/body&gt;</span>
 <span class="go">&lt;/html&gt;</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"bgcolor"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"bgcolor"</span><span class="p">))</span>
 <span class="go">None</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s">"bgcolor"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s2">"bgcolor"</span><span class="p">)</span>
 <span class="go">'#CCFFAA'</span>
 </pre></div>
 <p>You can also use XPath with fully qualified names:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find_xhtml_body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ETXPath</span><span class="p">(</span>      <span class="c"># lxml only !</span>
-<span class="gp">... </span>    <span class="s">"//{</span><span class="si">%s</span><span class="s">}body"</span> <span class="o">%</span> <span class="n">XHTML_NAMESPACE</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find_xhtml_body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ETXPath</span><span class="p">(</span>      <span class="c1"># lxml only !</span>
+<span class="gp">... </span>    <span class="s2">"//{</span><span class="si">%s</span><span class="s2">}body"</span> <span class="o">%</span> <span class="n">XHTML_NAMESPACE</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">results</span> <span class="o">=</span> <span class="n">find_xhtml_body</span><span class="p">(</span><span class="n">xhtml</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -998,24 +998,24 @@ element.</p>
 </pre></div>
 <p>For convenience, you can use <tt class="docutils literal">"*"</tt> wildcards in all iterators of <tt class="docutils literal">lxml.etree</tt>,
 both for tag names and namespaces:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'*'</span><span class="p">):</span> <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>   <span class="c"># any element</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'*'</span><span class="p">):</span> <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>   <span class="c1"># any element</span>
 <span class="go">{http://www.w3.org/1999/xhtml}html</span>
 <span class="go">{http://www.w3.org/1999/xhtml}body</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'{http://www.w3.org/1999/xhtml}*'</span><span class="p">):</span> <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'{http://www.w3.org/1999/xhtml}*'</span><span class="p">):</span> <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://www.w3.org/1999/xhtml}html</span>
 <span class="go">{http://www.w3.org/1999/xhtml}body</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'{*}body'</span><span class="p">):</span> <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'{*}body'</span><span class="p">):</span> <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{http://www.w3.org/1999/xhtml}body</span>
 </pre></div>
 <p>To look for elements that do not have a namespace, either use the
 plain tag name or provide the empty namespace explicitly:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'{http://www.w3.org/1999/xhtml}body'</span><span class="p">)</span> <span class="p">]</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'{http://www.w3.org/1999/xhtml}body'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['{http://www.w3.org/1999/xhtml}body']</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'body'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'body'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">[]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'{}body'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'{}body'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">[]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">'{}*'</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">xhtml</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">'{}*'</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">[]</span>
 </pre></div>
 </div>
@@ -1025,21 +1025,21 @@ plain tag name or provide the empty namespace explicitly:</p>
 HTML:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">E</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">CLASS</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">):</span> <span class="c"># class is a reserved word in Python</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="p">{</span><span class="s">"class"</span><span class="p">:</span><span class="s">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">CLASS</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">):</span> <span class="c1"># class is a reserved word in Python</span>
+<span class="gp">... </span>    <span class="k">return</span> <span class="p">{</span><span class="s2">"class"</span><span class="p">:</span><span class="s1">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)}</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">page</span> <span class="o">=</span> <span class="p">(</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">html</span><span class="p">(</span>       <span class="c"># create an Element called "html"</span>
+<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">html</span><span class="p">(</span>       <span class="c1"># create an Element called "html"</span>
 <span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">head</span><span class="p">(</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">"This is a sample document"</span><span class="p">)</span>
+<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"This is a sample document"</span><span class="p">)</span>
 <span class="gp">... </span>    <span class="p">),</span>
 <span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">body</span><span class="p">(</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">h1</span><span class="p">(</span><span class="s">"Hello!"</span><span class="p">,</span> <span class="n">CLASS</span><span class="p">(</span><span class="s">"title"</span><span class="p">)),</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s">"This is a paragraph with "</span><span class="p">,</span> <span class="n">E</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="s">"bold"</span><span class="p">),</span> <span class="s">" text in it!"</span><span class="p">),</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s">"This is another paragraph, with a"</span><span class="p">,</span> <span class="s">"</span><span class="se">\n</span><span class="s">      "</span><span class="p">,</span>
-<span class="gp">... </span>        <span class="n">E</span><span class="o">.</span><span class="n">a</span><span class="p">(</span><span class="s">"link"</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s">"http://www.python.org"</span><span class="p">),</span> <span class="s">"."</span><span class="p">),</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s">"Here are some reservered characters: &lt;spam&amp;egg&gt;."</span><span class="p">),</span>
-<span class="gp">... </span>      <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;p&gt;And finally an embedded XHTML fragment.&lt;/p&gt;"</span><span class="p">),</span>
+<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">h1</span><span class="p">(</span><span class="s2">"Hello!"</span><span class="p">,</span> <span class="n">CLASS</span><span class="p">(</span><span class="s2">"title"</span><span class="p">)),</span>
+<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s2">"This is a paragraph with "</span><span class="p">,</span> <span class="n">E</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="s2">"bold"</span><span class="p">),</span> <span class="s2">" text in it!"</span><span class="p">),</span>
+<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s2">"This is another paragraph, with a"</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">      "</span><span class="p">,</span>
+<span class="gp">... </span>        <span class="n">E</span><span class="o">.</span><span class="n">a</span><span class="p">(</span><span class="s2">"link"</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s2">"http://www.python.org"</span><span class="p">),</span> <span class="s2">"."</span><span class="p">),</span>
+<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s2">"Here are some reservered characters: &lt;spam&amp;egg&gt;."</span><span class="p">),</span>
+<span class="gp">... </span>      <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;p&gt;And finally an embedded XHTML fragment.&lt;/p&gt;"</span><span class="p">),</span>
 <span class="gp">... </span>    <span class="p">)</span>
 <span class="gp">... </span>  <span class="p">)</span>
 <span class="gp">... </span><span class="p">)</span>
@@ -1061,10 +1061,10 @@ HTML:</p>
 </pre></div>
 <p>Element creation based on attribute access makes it easy to build up a
 simple vocabulary for an XML language:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">ElementMaker</span> <span class="c"># lxml only !</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">ElementMaker</span> <span class="c1"># lxml only !</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">E</span> <span class="o">=</span> <span class="n">ElementMaker</span><span class="p">(</span><span class="n">namespace</span><span class="o">=</span><span class="s">"http://my.de/fault/namespace"</span><span class="p">,</span>
-<span class="gp">... </span>                 <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">'p'</span> <span class="p">:</span> <span class="s">"http://my.de/fault/namespace"</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">E</span> <span class="o">=</span> <span class="n">ElementMaker</span><span class="p">(</span><span class="n">namespace</span><span class="o">=</span><span class="s2">"http://my.de/fault/namespace"</span><span class="p">,</span>
+<span class="gp">... </span>                 <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s1">'p'</span> <span class="p">:</span> <span class="s2">"http://my.de/fault/namespace"</span><span class="p">})</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">DOC</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">doc</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">TITLE</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">title</span>
@@ -1072,15 +1072,15 @@ simple vocabulary for an XML language:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">PAR</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">par</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">my_doc</span> <span class="o">=</span> <span class="n">DOC</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">TITLE</span><span class="p">(</span><span class="s">"The dog and the hog"</span><span class="p">),</span>
+<span class="gp">... </span>  <span class="n">TITLE</span><span class="p">(</span><span class="s2">"The dog and the hog"</span><span class="p">),</span>
 <span class="gp">... </span>  <span class="n">SECTION</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">TITLE</span><span class="p">(</span><span class="s">"The dog"</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s">"Once upon a time, ..."</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s">"And then ..."</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">TITLE</span><span class="p">(</span><span class="s2">"The dog"</span><span class="p">),</span>
+<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s2">"Once upon a time, ..."</span><span class="p">),</span>
+<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s2">"And then ..."</span><span class="p">)</span>
 <span class="gp">... </span>  <span class="p">),</span>
 <span class="gp">... </span>  <span class="n">SECTION</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">TITLE</span><span class="p">(</span><span class="s">"The hog"</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s">"Sooner or later ..."</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="n">TITLE</span><span class="p">(</span><span class="s2">"The hog"</span><span class="p">),</span>
+<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s2">"Sooner or later ..."</span><span class="p">)</span>
 <span class="gp">... </span>  <span class="p">)</span>
 <span class="gp">... </span><span class="p">)</span>
 
@@ -1126,24 +1126,24 @@ expression</li>
 <li><tt class="docutils literal">findtext()</tt> returns the <tt class="docutils literal">.text</tt> content of the first match</li>
 </ul>
 <p>Here are some examples:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a x='123'&gt;aText&lt;b/&gt;&lt;c/&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a x='123'&gt;aText&lt;b/&gt;&lt;c/&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
 </pre></div>
 <p>Find a child of an Element:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"b"</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"b"</span><span class="p">))</span>
 <span class="go">None</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"a"</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"a"</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">a</span>
 </pre></div>
 <p>Find an Element anywhere in the tree:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">".//b"</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">".//b"</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">b</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterfind</span><span class="p">(</span><span class="s">".//b"</span><span class="p">)</span> <span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">b</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterfind</span><span class="p">(</span><span class="s2">".//b"</span><span class="p">)</span> <span class="p">]</span>
 <span class="go">['b', 'b']</span>
 </pre></div>
 <p>Find Elements with a certain attribute:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">".//a[@x]"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">".//a[@x]"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">a</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">".//a[@y]"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">".//a[@y]"</span><span class="p">))</span>
 <span class="go">[]</span>
 </pre></div>
 <p>In lxml 3.4, there is a new helper to generate a structural ElementPath
@@ -1166,11 +1166,11 @@ of being self-contained even for documents that use namespaces.</p>
 <p>The <tt class="docutils literal">.iter()</tt> method is a special case that only finds specific tags
 in the tree by their name, not based on a path.  That means that the
 following commands are equivalent in the success case:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">".//b"</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">".//b"</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iterfind</span><span class="p">(</span><span class="s">".//b"</span><span class="p">))</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iterfind</span><span class="p">(</span><span class="s2">".//b"</span><span class="p">))</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">"b"</span><span class="p">))</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s2">"b"</span><span class="p">))</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
 </pre></div>
 <p>Note that the <tt class="docutils literal">.find()</tt> method simply returns None if no match is found,
@@ -1179,7 +1179,7 @@ whereas the other two examples would raise a <tt class="docutils literal">StopIt
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 8abd17a..964f547 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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
@@ -66,25 +66,25 @@ available to the document as external subset.  You can retrieve the
 DTD from the parsed document using the <tt class="docutils literal">docinfo</tt> property of the
 result ElementTree object.  The internal subset is available as
 <tt class="docutils literal">internalDTD</tt>, the external subset is provided as <tt class="docutils literal">externalDTD</tt>.</p>
-<p>The third way way to activate DTD loading is with the
+<p>The third way to activate DTD loading is with the
 <tt class="docutils literal">attribute_defaults</tt> option, which loads the DTD and weaves
 attribute default values into the document.  Again, no validation is
 performed unless explicitly requested.</p>
 <p>XML schema is supported in a similar way, but requires an explicit
 schema to be provided:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">schema_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">  &lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:element name="a" type="xsd:integer"/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsd:schema&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">schema_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">  &lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsd:element name="a" type="xsd:integer"/&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/xsd:schema&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schema</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSchema</span><span class="p">(</span><span class="n">schema_root</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;a&gt;5&lt;/a&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;a&gt;5&lt;/a&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 </pre></div>
 <p>If the validation fails (be it for a DTD or an XML schema), the parser
 will raise an exception:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;a&gt;no int&lt;/a&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s2">"&lt;a&gt;no int&lt;/a&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
 <span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Element 'a': 'no int' is not a valid value of the atomic type 'xs:integer'.</span>
 </pre></div>
@@ -101,15 +101,15 @@ If you want to validate an XML document against a DTD that is not
 referenced by the document itself, you can use the <tt class="docutils literal">DTD</tt> class.</p>
 <p>To use the <tt class="docutils literal">DTD</tt> class, you must first pass a filename or file-like object
 into the constructor to parse a DTD:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">"&lt;!ELEMENT b EMPTY&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s2">"&lt;!ELEMENT b EMPTY&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 </pre></div>
 <p>Now you can use it to validate documents:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;b/&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;b/&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">dtd</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;b&gt;&lt;a/&gt;&lt;/b&gt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;b&gt;&lt;a/&gt;&lt;/b&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">dtd</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
 <span class="go">False</span>
 </pre></div>
@@ -121,18 +121,18 @@ into the constructor to parse a DTD:</p>
 <tt class="docutils literal">external_id</tt> keyword argument to parse from a catalog.  The
 following example reads the DocBook DTD in version 4.2, if available
 in the system catalog:</p>
-<div class="syntax"><pre><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">external_id</span> <span class="o">=</span> <span class="s">"-//OASIS//DTD DocBook XML V4.2//EN"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">external_id</span> <span class="o">=</span> <span class="s2">"-//OASIS//DTD DocBook XML V4.2//EN"</span><span class="p">)</span>
 </pre></div>
 <p>The DTD information is available as attributes on the DTD object. The method
 <tt class="docutils literal">iterelements</tt> provides an iterator over the element declarations:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;!ELEMENT a EMPTY&gt;&lt;!ELEMENT b EMPTY&gt;'</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;!ELEMENT a EMPTY&gt;&lt;!ELEMENT b EMPTY&gt;'</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">dtd</span><span class="o">.</span><span class="n">iterelements</span><span class="p">():</span>
 <span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
 <span class="go">a</span>
 <span class="go">b</span>
 </pre></div>
 <p>The method <tt class="docutils literal">elements</tt> returns the element declarations as a list:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;!ELEMENT a EMPTY&gt;&lt;!ELEMENT b EMPTY&gt;'</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;!ELEMENT a EMPTY&gt;&lt;!ELEMENT b EMPTY&gt;'</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">dtd</span><span class="o">.</span><span class="n">elements</span><span class="p">())</span>
 <span class="go">2</span>
 </pre></div>
@@ -163,7 +163,7 @@ one of "once", "opt", "mult" or "plus"</li>
 </blockquote>
 <p>For example, the element declaration <tt class="docutils literal">&lt;!ELEMENT a <span class="pre">(a|b)+&gt;</span></tt> results
 in the following element content declaration objects:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;!ELEMENT a (a|b)+&gt;'</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;!ELEMENT a (a|b)+&gt;'</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">content</span> <span class="o">=</span> <span class="n">dtd</span><span class="o">.</span><span class="n">elements</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">content</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">content</span><span class="o">.</span><span class="n">type</span><span class="p">,</span> <span class="n">content</span><span class="o">.</span><span class="n">occur</span><span class="p">,</span> <span class="n">content</span><span class="o">.</span><span class="n">name</span>
 <span class="go">('or', 'plus', None)</span>
@@ -203,15 +203,15 @@ if of type "enumeration");</li>
 <h1>RelaxNG</h1>
 <p>The <tt class="docutils literal">RelaxNG</tt> class takes an ElementTree object to construct a Relax NG
 validator:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;element name="a" xmlns="http://relaxng.org/ns/structure/1.0"&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;zeroOrMore&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;element name="b"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;text /&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/element&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;/zeroOrMore&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/element&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;element name="a" xmlns="http://relaxng.org/ns/structure/1.0"&gt;</span>
+<span class="gp">... </span><span class="s1"> &lt;zeroOrMore&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;element name="b"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;text /&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/element&gt;</span>
+<span class="gp">... </span><span class="s1"> &lt;/zeroOrMore&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/element&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">RelaxNG</span><span class="p">(</span><span class="n">relaxng_doc</span><span class="p">)</span>
 </pre></div>
@@ -221,22 +221,22 @@ RelaxNG parser.</p>
 <p>You can then validate some ElementTree document against the schema. You'll get
 back True if the document is valid against the Relax NG schema, and False if
 not:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
 <span class="go">False</span>
 </pre></div>
 <p>Calling the schema object has the same effect as calling its validate
 method. This is sometimes used in conditional statements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">relaxng</span><span class="p">(</span><span class="n">doc2</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"invalid!"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"invalid!"</span><span class="p">)</span>
 <span class="go">invalid!</span>
 </pre></div>
 <p>If you prefer getting an exception when validating, you can use the
@@ -289,38 +289,38 @@ to the XML syntax, which can then be used with lxml.</p>
 <p>lxml.etree also has XML Schema (XSD) support, using the class
 lxml.etree.XMLSchema.  The API is very similar to the Relax NG and DTD
 classes.  Pass an ElementTree object to construct a XMLSchema validator:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
-<span class="gp">... </span><span class="s">&lt;xsd:element name="a" type="AType"/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;xsd:complexType name="AType"&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:element name="b" type="xsd:string" /&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsd:complexType&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsd:schema&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;xsd:element name="a" type="AType"/&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;xsd:complexType name="AType"&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;xsd:sequence&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsd:element name="b" type="xsd:string" /&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/xsd:sequence&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsd:complexType&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsd:schema&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSchema</span><span class="p">(</span><span class="n">xmlschema_doc</span><span class="p">)</span>
 </pre></div>
 <p>You can then validate some ElementTree document with this.  Like with RelaxNG,
 you'll get back true if the document is valid against the XML schema, and
 false if not:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
 <span class="go">False</span>
 </pre></div>
 <p>Calling the schema object has the same effect as calling its validate method.
 This is sometimes used in conditional statements:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">xmlschema</span><span class="p">(</span><span class="n">doc2</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"invalid!"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"invalid!"</span><span class="p">)</span>
 <span class="go">invalid!</span>
 </pre></div>
 <p>If you prefer getting an exception when validating, you can use the
@@ -366,16 +366,16 @@ that implements the Schematron class, with an API compatible to the other
 validators'.  Pass an Element or ElementTree object to construct a Schematron
 validator:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">isoschematron</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;schema xmlns="http://purl.oclc.org/dsdl/schematron" &gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern id="sum_equals_100_percent"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;Sum equals 100%.&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context="Total"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test="sum(//Percent)=100"&gt;Sum is not 100%.&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/schema&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;schema xmlns="http://purl.oclc.org/dsdl/schematron" &gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;pattern id="sum_equals_100_percent"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;title&gt;Sum equals 100%.&lt;/title&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;rule context="Total"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;assert test="sum(//Percent)=100"&gt;Sum is not 100%.&lt;/assert&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/rule&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/pattern&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/schema&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">sct_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
@@ -383,19 +383,19 @@ validator:</p>
 <p>You can then validate some ElementTree document with this. Just like with
 XMLSchema or RelaxNG, you'll get back true if the document is valid against the
 schema, and false if not:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;Total&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/Total&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="s">"Percent"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"10"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="s2">"Percent"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"10"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">False</span>
@@ -405,7 +405,7 @@ This can be useful for conditional statements:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">is_valid</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">is_valid</span><span class="p">(</span><span class="n">doc</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"invalid!"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"invalid!"</span><span class="p">)</span>
 <span class="go">invalid!</span>
 </pre></div>
 <p>Built on a pure-xslt implementation, the actual validator is created as an
@@ -441,51 +441,51 @@ validation report document gets stored and can be accessed as the
 <tt class="docutils literal">validation_report</tt> property.</p>
 <p>Using the <tt class="docutils literal">phase</tt> parameter of isoschematron.Schematron allows for selective
 validation of predefined pattern groups:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;schema xmlns="http://purl.oclc.org/dsdl/schematron" &gt;</span>
-<span class="gp">... </span><span class="s">  &lt;phase id="phase.sum_check"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;active pattern="sum_equals_100_percent"/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/phase&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;phase id="phase.entries_check"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;active pattern="all_positive"/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/phase&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern id="sum_equals_100_percent"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;Sum equals 100%.&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context="Total"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test="sum(//Percent)=100"&gt;Sum is not 100%.&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern id="all_positive"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;All entries must be positive.&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context="Percent"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test="number(.)&gt;0"&gt;Number (&lt;value-of select="."/&gt;) not positive&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/schema&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;schema xmlns="http://purl.oclc.org/dsdl/schematron" &gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;phase id="phase.sum_check"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;active pattern="sum_equals_100_percent"/&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/phase&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;phase id="phase.entries_check"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;active pattern="all_positive"/&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/phase&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;pattern id="sum_equals_100_percent"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;title&gt;Sum equals 100%.&lt;/title&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;rule context="Total"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;assert test="sum(//Percent)=100"&gt;Sum is not 100%.&lt;/assert&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/rule&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/pattern&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;pattern id="all_positive"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;title&gt;All entries must be positive.&lt;/title&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;rule context="Percent"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;assert test="number(.)&gt;0"&gt;Number (&lt;value-of select="."/&gt;) not positive&lt;/assert&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/rule&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/pattern&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/schema&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">sct_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;Total&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/Total&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid_positive</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;0&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid_positive</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;Total&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;0&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/Total&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid_positive</span><span class="p">)</span>
 
@@ -494,7 +494,7 @@ validation of predefined pattern groups:</p>
 </pre></div>
 <p>If the constraint of Percent entries being positive is not of interest in a
 certain validation scenario, it can now be disabled:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">selective</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">,</span> <span class="n">phase</span><span class="o">=</span><span class="s">"phase.sum_check"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">selective</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">,</span> <span class="n">phase</span><span class="o">=</span><span class="s2">"phase.sum_check"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">selective</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">True</span>
 </pre></div>
@@ -508,15 +508,15 @@ different validators for different "validation audiences".</p>
 class lxml.etree.Schematron.  It requires at least libxml2 2.6.21 to
 work.  The API is the same as for the other validators.  Pass an
 ElementTree object to construct a Schematron validator:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;schema xmlns="http://www.ascc.net/xml/schematron" &gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern name="Sum equals 100%."&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context="Total"&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test="sum(//Percent)=100"&gt;Sum is not 100%.&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/schema&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;schema xmlns="http://www.ascc.net/xml/schematron" &gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;pattern name="Sum equals 100%."&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;rule context="Total"&gt;</span>
+<span class="gp">... </span><span class="s1">      &lt;assert test="sum(//Percent)=100"&gt;Sum is not 100%.&lt;/assert&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/rule&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;/pattern&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/schema&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">sct_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
@@ -524,19 +524,19 @@ ElementTree object to construct a Schematron validator:</p>
 <p>You can then validate some ElementTree document with this.  Like with RelaxNG,
 you'll get back true if the document is valid against the schema, and false if
 not:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;Total&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/Total&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="s">"Percent"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">"10"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="s2">"Percent"</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">"10"</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 <span class="go">False</span>
@@ -546,7 +546,7 @@ This is sometimes used in conditional statements:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">is_valid</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">is_valid</span><span class="p">(</span><span class="n">doc</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">"invalid!"</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s2">"invalid!"</span><span class="p">)</span>
 <span class="go">invalid!</span>
 </pre></div>
 <p>Note that libxml2 restricts error reporting to the parsing step (when creating
@@ -556,7 +556,7 @@ reporting during validation.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index 292d532..7499412 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><ul class="menu foreign" id="funding-menu"><li class="menu title"><a href="funding.html">Projects for Crowd Funding</a><ul class="submenu"><li class="menu item"><a href="funding.html#really-simple-projects">Really simple projects</a></li><li class="menu item"><a href="funding.html#projects-taking-just-a-few-days">Projects taking just a few days</a></li><li class="menu item"><a href="funding.html#projects-taking-more-than-a-week">Projects taking more than a week</a></li><li class="menu item"><a href="funding.html#projects-in-pre-design-phase">Projects in pre-design phase</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 0-menu"><li class="menu title"><a href="changes-3.6.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="http://lxml.de/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><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 6 3-menu"><li class="menu title"><a href="changes-3.6.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -73,46 +73,46 @@ here.</p>
 <h2>The <tt class="docutils literal">xpath()</tt> method</h2>
 <p>For ElementTree, the xpath method performs a global XPath query against the
 document (if absolute) or against the root node (if relative):</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;foo&gt;&lt;bar&gt;&lt;/bar&gt;&lt;/foo&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;foo&gt;&lt;bar&gt;&lt;/bar&gt;&lt;/foo&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'/foo/bar'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'/foo/bar'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
 <span class="go">1</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'bar'</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'bar'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'bar'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'bar'</span>
 </pre></div>
 <p>When <tt class="docutils literal">xpath()</tt> is used on an Element, the XPath expression is evaluated
 against the element (if relative) or against the root tree (if absolute):</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'bar'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'bar'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'bar'</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">bar</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">bar</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'/foo/bar'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">bar</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'/foo/bar'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'bar'</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">bar</span><span class="o">.</span><span class="n">getroottree</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'/foo/bar'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'/foo/bar'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
 <span class="go">'bar'</span>
 </pre></div>
 <p>The <tt class="docutils literal">xpath()</tt> method has support for XPath variables:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">expr</span> <span class="o">=</span> <span class="s">"//*[local-name() = $name]"</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">expr</span> <span class="o">=</span> <span class="s2">"//*[local-name() = $name]"</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">"foo"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s2">"foo"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">foo</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">"bar"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s2">"bar"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">bar</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"$text"</span><span class="p">,</span> <span class="n">text</span> <span class="o">=</span> <span class="s">"Hello World!"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"$text"</span><span class="p">,</span> <span class="n">text</span> <span class="o">=</span> <span class="s2">"Hello World!"</span><span class="p">))</span>
 <span class="go">Hello World!</span>
 </pre></div>
 </div>
@@ -122,17 +122,17 @@ against the element (if relative) or against the root tree (if absolute):</p>
 in a prefix mapping.  To this end, pass a dictionary to the
 <tt class="docutils literal">namespaces</tt> keyword argument that maps the namespace prefixes used
 in the XPath expression to namespace URIs:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;a:foo xmlns:a="http://codespeak.net/ns/test1"</span>
-<span class="gp">... </span><span class="s">       xmlns:b="http://codespeak.net/ns/test2"&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;b:bar&gt;Text&lt;/b:bar&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/a:foo&gt;</span>
-<span class="gp">... </span><span class="s">'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;a:foo xmlns:a="http://codespeak.net/ns/test1"</span>
+<span class="gp">... </span><span class="s1">       xmlns:b="http://codespeak.net/ns/test2"&gt;</span>
+<span class="gp">... </span><span class="s1">   &lt;b:bar&gt;Text&lt;/b:bar&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/a:foo&gt;</span>
+<span class="gp">... </span><span class="s1">'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'/x:foo/b:bar'</span><span class="p">,</span>
-<span class="gp">... </span>              <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">'x'</span><span class="p">:</span> <span class="s">'http://codespeak.net/ns/test1'</span><span class="p">,</span>
-<span class="gp">... </span>                          <span class="s">'b'</span><span class="p">:</span> <span class="s">'http://codespeak.net/ns/test2'</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s1">'/x:foo/b:bar'</span><span class="p">,</span>
+<span class="gp">... </span>              <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s1">'x'</span><span class="p">:</span> <span class="s1">'http://codespeak.net/ns/test1'</span><span class="p">,</span>
+<span class="gp">... </span>                          <span class="s1">'b'</span><span class="p">:</span> <span class="s1">'http://codespeak.net/ns/test2'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
 <span class="go">1</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
@@ -187,20 +187,20 @@ by the string, which may have a considerable memory impact in the case
 that the string value is the only thing in the tree that is actually
 of interest.  For these cases, you can deactivate the parental
 relationship using the keyword argument <tt class="docutils literal">smart_strings</tt>.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;TEXT&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;TEXT&lt;/a&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find_text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//text()"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find_text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//text()"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">text</span> <span class="o">=</span> <span class="n">find_text</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
 <span class="go">TEXT</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">text</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">TEXT</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find_text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//text()"</span><span class="p">,</span> <span class="n">smart_strings</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find_text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//text()"</span><span class="p">,</span> <span class="n">smart_strings</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">text</span> <span class="o">=</span> <span class="n">find_text</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
 <span class="go">TEXT</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">hasattr</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s">'getparent'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">hasattr</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s1">'getparent'</span><span class="p">)</span>
 <span class="go">False</span>
 </pre></div>
 </div>
@@ -208,11 +208,11 @@ relationship using the keyword argument <tt class="docutils literal">smart_strin
 <h2>Generating XPath expressions</h2>
 <p>ElementTree objects have a method <tt class="docutils literal">getpath(element)</tt>, which returns a
 structural, absolute XPath expression to find that element:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">a</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"a"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s">"c"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s">"d"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s">"d"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">a</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"a"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s2">"b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s2">"c"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">d1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s2">"d"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">d2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s2">"d"</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getpath</span><span class="p">(</span><span class="n">d2</span><span class="p">))</span>
@@ -224,9 +224,9 @@ structural, absolute XPath expression to find that element:</p>
 <div class="section" id="the-xpath-class">
 <h2>The <tt class="docutils literal">XPath</tt> class</h2>
 <p>The <tt class="docutils literal">XPath</tt> class compiles an XPath expression into a callable function:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//b"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//b"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
 </pre></div>
@@ -235,19 +235,19 @@ done only once per class instantiation.  This makes it especially efficient
 for repeated evaluation of the same XPath expression.</p>
 <p>Just like the <tt class="docutils literal">xpath()</tt> method, the <tt class="docutils literal">XPath</tt> class supports XPath
 variables:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">count_elements</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"count(//*[local-name() = $name])"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">count_elements</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"count(//*[local-name() = $name])"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">count_elements</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">"a"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">count_elements</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s2">"a"</span><span class="p">))</span>
 <span class="go">1.0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">count_elements</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">"b"</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">count_elements</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s2">"b"</span><span class="p">))</span>
 <span class="go">2.0</span>
 </pre></div>
 <p>This supports very efficient evaluation of modified versions of an XPath
 expression, as compilation is still only required once.</p>
 <p>Prefix-to-namespace mappings can be passed as second parameter:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root xmlns='NS'&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root xmlns='NS'&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//n:b"</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">'n'</span><span class="p">:</span><span class="s">'NS'</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//n:b"</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s1">'n'</span><span class="p">:</span><span class="s1">'NS'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{NS}b</span>
 </pre></div>
@@ -255,11 +255,11 @@ expression, as compilation is still only required once.</p>
 <div class="section" id="regular-expressions-in-xpath">
 <h2>Regular expressions in XPath</h2>
 <p>By default, <tt class="docutils literal">XPath</tt> supports regular expressions in the <a class="reference external" href="http://www.exslt.org/">EXSLT</a> namespace:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">regexpNS</span> <span class="o">=</span> <span class="s">"http://exslt.org/regular-expressions"</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//*[re:test(., '^abc$', 'i')]"</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">'re'</span><span class="p">:</span><span class="n">regexpNS</span><span class="p">})</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">regexpNS</span> <span class="o">=</span> <span class="s2">"http://exslt.org/regular-expressions"</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//*[re:test(., '^abc$', 'i')]"</span><span class="p">,</span>
+<span class="gp">... </span>                   <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s1">'re'</span><span class="p">:</span><span class="n">regexpNS</span><span class="p">})</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;aB&lt;/a&gt;&lt;b&gt;aBc&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;aB&lt;/a&gt;&lt;b&gt;aBc&lt;/b&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
 <span class="go">aBc</span>
 </pre></div>
@@ -272,13 +272,13 @@ defaults to True.</p>
 ElementTrees or Elements respectively: <tt class="docutils literal">XPathDocumentEvaluator</tt> and
 <tt class="docutils literal">XPathElementEvaluator</tt>.  They are automatically selected if you use the
 XPathEvaluator helper for instantiation:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">xpatheval</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">xpatheval</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathElementEvaluator</span><span class="p">))</span>
 <span class="go">True</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">xpatheval</span><span class="p">(</span><span class="s">"//b"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">xpatheval</span><span class="p">(</span><span class="s2">"//b"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">b</span>
 </pre></div>
 <p>This class provides efficient support for evaluating different XPath
@@ -300,14 +300,14 @@ handle, XPath is much more powerful and expressive.</p>
 expressions with namespaces in Clark notation.  It is identical to the
 <tt class="docutils literal">XPath</tt> class, except for the namespace notation.  Normally, you would
 write:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root xmlns='ns'&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s2">"&lt;root xmlns='ns'&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;"</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//p:b"</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">'p'</span> <span class="p">:</span> <span class="s">'ns'</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//p:b"</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s1">'p'</span> <span class="p">:</span> <span class="s1">'ns'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{ns}b</span>
 </pre></div>
 <p><tt class="docutils literal">ETXPath</tt> allows you to change this to:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ETXPath</span><span class="p">(</span><span class="s">"//{ns}b"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ETXPath</span><span class="p">(</span><span class="s2">"//{ns}b"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">{ns}b</span>
 </pre></div>
@@ -316,20 +316,20 @@ write:</p>
 <h2>Error handling</h2>
 <p>lxml.etree raises exceptions when errors occur while parsing or evaluating an
 XPath expression:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"</span><span class="se">\\</span><span class="s">"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XPathSyntaxError</span>: <span class="n">Invalid expression</span>
 </pre></div>
 <p>lxml will also try to give you a hint what went wrong, so if you pass a more
 complex expression, you may get a somewhat more specific error:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//*[1.1.1]"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//*[1.1.1]"</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XPathSyntaxError</span>: <span class="n">Invalid predicate</span>
 </pre></div>
 <p>During evaluation, lxml will emit an XPathEvalError on errors:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"//ns:a"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"//ns:a"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
@@ -338,18 +338,18 @@ complex expression, you may get a somewhat more specific error:</p>
 <p>This works for the <tt class="docutils literal">XPath</tt> class, however, the other evaluators (including
 the <tt class="docutils literal">xpath()</tt> method) are one-shot operations that do parsing and evaluation
 in one step.  They therefore raise evaluation exceptions in all cases:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">"test"</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//*[1.1.1]"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">"test"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//*[1.1.1]"</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Invalid predicate</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//ns:a"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"//ns:a"</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Undefined namespace prefix</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"</span><span class="se">\\</span><span class="s">"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Invalid expression</span>
@@ -364,18 +364,18 @@ versions is to except on the superclass <tt class="docutils literal">XPathError<
 <p>lxml.etree introduces a new class, lxml.etree.XSLT. The class can be
 given an ElementTree or Element object to construct an XSLT
 transformer:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_root</span><span class="p">)</span>
 </pre></div>
 <p>You can then run the transformation on an ElementTree document by simply
 calling it, and this results in another ElementTree object:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result_tree</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
 </pre></div>
@@ -389,7 +389,7 @@ documents and resources.</p>
 <h2>XSLT result objects</h2>
 <p>The result of an XSL transformation can be accessed like a normal ElementTree
 document:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span><span class="o">.</span><span class="n">text</span>
@@ -410,14 +410,14 @@ the result:</p>
 </pre></div>
 <p>You can use other encodings at the cost of multiple recoding.  Encodings that
 are not supported by Python will result in an error:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:output encoding="UCS4"/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:output encoding="UCS4"/&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">)</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
@@ -431,35 +431,35 @@ are not supported by Python will result in an error:</p>
 <h2>Stylesheet parameters</h2>
 <p>It is possible to pass parameters, in the form of XPath expressions, to the
 XSLT template:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:param name="a" /&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select="$a" /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:param name="a" /&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;foo&gt;&lt;xsl:value-of select="$a" /&gt;&lt;/foo&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 </pre></div>
 <p>The parameters are passed as keyword parameters to the transform call.
 First, let's try passing in a simple integer expression:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">"5"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s2">"5"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;5&lt;/foo&gt;\n'</span>
 </pre></div>
 <p>You can use any valid XPath expression as parameter value:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">"/a/b/text()"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s2">"/a/b/text()"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n'</span>
 </pre></div>
 <p>It's also possible to pass an XPath object as a parameter:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">"/a/b/text()"</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s2">"/a/b/text()"</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n'</span>
 </pre></div>
 <p>Passing a string expression looks like this:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">"'A'"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s2">"'A'"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;A&lt;/foo&gt;\n'</span>
 </pre></div>
@@ -475,16 +475,16 @@ value.</p>
 </pre></div>
 <p>If you need to pass parameters that are not legal Python identifiers,
 pass them inside of a dictionary:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:param name="non-python-identifier" /&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select="$non-python-identifier" /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;'''</span><span class="p">))</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:param name="non-python-identifier" /&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;foo&gt;&lt;xsl:value-of select="$non-python-identifier" /&gt;&lt;/foo&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsl:stylesheet&gt;'''</span><span class="p">))</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="o">**</span><span class="p">{</span><span class="s">'non-python-identifier'</span><span class="p">:</span> <span class="s">'5'</span><span class="p">})</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="o">**</span><span class="p">{</span><span class="s1">'non-python-identifier'</span><span class="p">:</span> <span class="s1">'5'</span><span class="p">})</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;5&lt;/foo&gt;\n'</span>
 </pre></div>
@@ -495,18 +495,18 @@ pass them inside of a dictionary:</p>
 provides an error log that lists messages and error output from the
 last run.  See the <a class="reference external" href="parsing.html#error-log">parser documentation</a> for a description of the
 error log.</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'''</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version="1.0"</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match="/"&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;xsl:message terminate="no"&gt;STARTING&lt;/xsl:message&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;xsl:message terminate="no"&gt;DONE&lt;/xsl:message&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span>
+<span class="gp">... </span><span class="s1">&lt;xsl:stylesheet version="1.0"</span>
+<span class="gp">... </span><span class="s1">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;xsl:template match="/"&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;xsl:message terminate="no"&gt;STARTING&lt;/xsl:message&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</span>
+<span class="gp">... </span><span class="s1">        &lt;xsl:message terminate="no"&gt;DONE&lt;/xsl:message&gt;</span>
+<span class="gp">... </span><span class="s1">    &lt;/xsl:template&gt;</span>
+<span class="gp">... </span><span class="s1">&lt;/xsl:stylesheet&gt;'''</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_root</span><span class="p">)</span>
 
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s1">'&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;'</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n'</span>
@@ -516,12 +516,12 @@ error log.</p>
 <span class="go">&lt;string&gt;:0:0:ERROR:XSLT:ERR_OK: DONE</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">transform</span><span class="o">.</span><span class="n">error_log</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'message from line </span><span class="si">%s</span><span class="s">, col </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'message from line </span><span class="si">%s</span><span class="s1">, col </span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span>
 <span class="gp">... </span>               <span class="n">entry</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">column</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'domain: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%d</span><span class="s">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">domain_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">domain</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'type: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%d</span><span class="s">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">type_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">type</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'level: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%d</span><span class="s">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">level_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">level</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">'filename: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="n">entry</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'domain: </span><span class="si">%s</span><span class="s1"> (</span><span class="si">%d</span><span class="s1">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">domain_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">domain</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'type: </span><span class="si">%s</span><span class="s1"> (</span><span class="si">%d</span><span class="s1">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">type_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">type</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'level: </span><span class="si">%s</span><span class="s1"> (</span><span class="si">%d</span><span class="s1">)'</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">level_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">level</span><span class="p">))</span>
+<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s1">'filename: </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">entry</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
 <span class="go">message from line 0, col 0: STARTING</span>
 <span class="go">domain: XSLT (22)</span>
 <span class="go">type: ERR_OK (0)</span>
@@ -545,13 +545,13 @@ uniquely identifiable, e.g. with a common text prefix.</p>
 transformations.  This is less efficient if you want to apply the same XSL
 transformation to multiple documents, but is shorter to write for one-shot
 operations, as you do not have to instantiate a stylesheet yourself:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">xslt</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">"'A'"</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">xslt</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s2">"'A'"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;A&lt;/foo&gt;\n'</span>
 </pre></div>
 <p>This is a shortcut for the following code:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">"'A'"</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s2">"'A'"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;A&lt;/foo&gt;\n'</span>
 </pre></div>
@@ -586,7 +586,7 @@ maintainable.</p>
 <h2>Profiling</h2>
 <p>If you want to know how your stylesheet performed, pass the <tt class="docutils literal">profile_run</tt>
 keyword to the transform:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">"/a/b/text()"</span><span class="p">,</span> <span class="n">profile_run</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s2">"/a/b/text()"</span><span class="p">,</span> <span class="n">profile_run</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">profile</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">xslt_profile</span>
 </pre></div>
 <p>The value of the <tt class="docutils literal">xslt_profile</tt> property is an ElementTree with profiling
@@ -605,7 +605,7 @@ If you want to free it from memory, just do:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2016-05-05.
+Generated on: 2016-08-18.
 
 </div>
 </body>
index b4d159d..7bff782 100644 (file)
@@ -157,8 +157,8 @@ Index <http://pypi.python.org/pypi/lxml/>`_ (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with `this key <pubkey.asc>`_.
 
-The latest version is `lxml 3.6.2`_, released 2016-08-18
-(`changes for 3.6.2`_).  `Older versions <#old-versions>`_
+The latest version is `lxml 3.6.3`_, released 2016-08-18
+(`changes for 3.6.3`_).  `Older versions <#old-versions>`_
 are listed below.
 
 Please take a look at the
@@ -245,6 +245,8 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 
 .. _`PDF documentation`: lxmldoc-3.6.1.pdf
 
+* `lxml 3.6.3`_, released 2016-08-18 (`changes for 3.6.3`_)
+
 * `lxml 3.6.2`_, released 2016-08-18 (`changes for 3.6.2`_)
 
 * `lxml 3.6.1`_, released 2016-07-24 (`changes for 3.6.1`_)
@@ -267,6 +269,7 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 
 * `older releases <http://lxml.de/3.4/#old-versions>`_
 
+.. _`lxml 3.6.3`: /files/lxml-3.6.3.tgz
 .. _`lxml 3.6.2`: /files/lxml-3.6.2.tgz
 .. _`lxml 3.6.1`: /files/lxml-3.6.1.tgz
 .. _`lxml 3.6.0`: /files/lxml-3.6.0.tgz
@@ -278,6 +281,7 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 .. _`lxml 3.4.1`: /files/lxml-3.4.1.tgz
 .. _`lxml 3.4.0`: /files/lxml-3.4.0.tgz
 
+.. _`changes for 3.6.3`: /changes-3.6.3.html
 .. _`changes for 3.6.2`: /changes-3.6.2.html
 .. _`changes for 3.6.1`: /changes-3.6.1.html
 .. _`changes for 3.6.0`: /changes-3.6.0.html
diff --git a/doc/pdf/pubkey.asc b/doc/pdf/pubkey.asc
new file mode 100644 (file)
index 0000000..f72804c
--- /dev/null
@@ -0,0 +1,36 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+mQGiBEQf3JQRBACciSqxoX0q3VurkRENVVtG/pVqtFh/d2CohbVJlLCrO4s7nnPj
+CTfZFt6tmykZjsLJl24XpEJt0O/C0jLcaBqvXVgVvRXHz4DjEYYuQF4LPthhI4MA
+4T7ExptX4lU5g3BVJ46vPU8uRBbbxarBRas9rYewgnrYKWpZZCa7yMq+9wCgnyyR
+Si4E3viLwi77jda135nA6vcD/iqu8zIl9/dFuUcOvxJrhrm+UdY72puZ1TVczSAH
+GOqMjrKkfyHlaJh/ZzWENpTZIfOdVhy7Chvva18vH4Wz7jKj5UeIpRrBvjAD28r3
+Y3W5bfsnpPkvDOyU1vqBsw4q+/250GXEX0JqV2Rbf5yLVgEZPdGrswO460dr4UVS
+8RS0BACYTmyrz57AugHc5tRkqNw6o7ux2deOT0c3AbUcOWtOocGumCsUf+M1nOrc
+VWkeBWTv4HIIiecWYY/KwIemTthQGjxywaZDxOlBT0BOL/+vfYTq/plZULXr+g90
+rSe82+kLl9N5onkBDJKeDIcJDzRoxIRPV1i0Om/5JBI4jmUnv7QnU3RlZmFuIEJl
+aG5lbCA8c2NvZGVyQHVzZXJzLmJlcmxpb3MuZGU+iF8EExECACAFAkQiqKYCGwMG
+CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRANPVNpCNOgHi+2AJ0a0JH8iP3RqrOL
+JefvHz1dSl3MxACYo7Ma6CeIgsGnyaSSdNOmNVXn+IhGBBARAgAGBQJEIqk0AAoJ
+ELO5mMzzmgZbmCcAoKZ2En1IlsxBpaPPxgWYrUOWfc6hAKCBWODMMOYptCBkSrjg
+m3gsrjHgYbQsU3RlZmFuIEJlaG5lbCA8c2NvZGVyQHVzZXJzLnNvdXJjZWZvcmdl
+Lm5ldD6IYAQTEQIAIAUCRB/clAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ
+EA09U2kI06Aen2YAn0hvuDs+Gslq9vPRFFbsFNJI40PmAJ0chjiiEy0xV5C+n6YX
+XFuldRDILYhGBBARAgAGBQJEIp4AAAoJELO5mMzzmgZbgKQAn3pWrmFdj8YaEyuR
+tEjKVZJDQ6ZVAJ0Y1igwADT40BPra+G/xiLa3YbCrrkCDQREH9ynEAgAiR4/0r0d
+doViNECfSLClllu5K0Bo1SEiMtvVNC3sJYgVzBddD8Xn8UAdjyAgmaL5FC2FsNQu
+RxxKkNlHNYCq8ZSWtZaL2MQ+SyMUyHv6VXVCGuSW0COpzbx58u+SZpjyESJ1kaZc
+73SaIw6kv/dVQHjurwmlo1lg3dLZ3PG08WGCYUMqkkv2K+J7+puzE2Cjo31gTq4s
+LYDCV26wjVQ6BqT2EcHQhVEjh0xq5ugc908cr/2FQAKkTifEbF+OVBGWiFMGgri+
+6+G54/BV/RakpvNCFYBiZHn/M9mQaWt7XoTmnEQ1ldq5KNlRhkqnQRF/NK5VpGcQ
+29As28aqpZTECwADBgf/WlRvBRI1Q1eIv2falEv7C6sOxqc3kr5z1uUBTRG5v9t6
+ff9k/J4oC6cnQx00GK3ZR8ija6bl8zwu+0m0M3rW49Krb1rsiT7r4ahOZ7p9RRro
+oG3NbUJYgMG10D1nxpaioYqa/m+PpILJM0wfYZZEuX0xkZcOB24yb+J7EIcGR09T
+mMd5sXtdTU+w/p7Xi2cP61uQ8qixyHBH8E06qgW2JtVFV9rGn7CNUOvkNaUBRnY5
+QxhdkvKJRx7voOLYWZFUBIWgto+6vmTgKmc2Ho6qddzME9UgwUNcknRgm0cf6Cxr
+6zPtxZl8a6KemjQcK7kARSmMNCDkqp/Pohe519A5vYhJBBgRAgAJBQJEH9ynAhsM
+AAoJEA09U2kI06Aesv4AnjiVQVLzqnNS/64vvMMP1UARY3HtAJ90YxNGhRNIhWYL
+UU16oJlGD/9M1Q==
+=gWy2
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/doc/sitemap.txt b/doc/sitemap.txt
deleted file mode 100644 (file)
index 7e7bea2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Sitemap
-========
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   main
-   intro
-   api
-   ../INSTALL
-   performance
-   compatibility
-   FAQ
-
-   tutorial
-   API reference <api/>
-   parsing
-   validation
-   xpathxslt
-   objectify
-   lxmlhtml
-   cssselect
-   elementsoup
-   html5parser
-
-   resolvers
-   extensions
-   element_classes
-   sax
-   capi
-
-   build
-   lxml-source-howto
-   ../CREDITS
-
-   self
diff --git a/doc/sphinx/FAQ.html b/doc/sphinx/FAQ.html
deleted file mode 100644 (file)
index d34b4cb..0000000
+++ /dev/null
@@ -1,938 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <meta content="Frequently Asked Questions about lxml (FAQ)" name="description" />
-<meta content="lxml, lxml.etree, FAQ, frequently asked questions" name="keywords" />
-
-    <title>lxml FAQ - Frequently Asked Questions &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="lxml-faq-frequently-asked-questions">
-<h1><a class="toc-backref" href="#id2">lxml FAQ - Frequently Asked Questions</a><a class="headerlink" href="#lxml-faq-frequently-asked-questions" title="Permalink to this headline">¶</a></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>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#lxml-faq-frequently-asked-questions" id="id2">lxml FAQ - Frequently Asked Questions</a><ul>
-<li><a class="reference internal" href="#general-questions" id="id3">General Questions</a><ul>
-<li><a class="reference internal" href="#is-there-a-tutorial" id="id4">Is there a tutorial?</a></li>
-<li><a class="reference internal" href="#where-can-i-find-more-documentation-about-lxml" id="id5">Where can I find more documentation about lxml?</a></li>
-<li><a class="reference internal" href="#what-standards-does-lxml-implement" id="id6">What standards does lxml implement?</a></li>
-<li><a class="reference internal" href="#who-uses-lxml" id="id7">Who uses lxml?</a></li>
-<li><a class="reference internal" href="#what-is-the-difference-between-lxml-etree-and-lxml-objectify" id="id8">What is the difference between lxml.etree and lxml.objectify?</a></li>
-<li><a class="reference internal" href="#how-can-i-make-my-application-run-faster" id="id9">How can I make my application run faster?</a></li>
-<li><a class="reference internal" href="#what-about-that-trailing-text-on-serialised-elements" id="id10">What about that trailing text on serialised Elements?</a></li>
-<li><a class="reference internal" href="#how-can-i-find-out-if-an-element-is-a-comment-or-pi" id="id11">How can I find out if an Element is a comment or PI?</a></li>
-<li><a class="reference internal" href="#how-can-i-map-an-xml-tree-into-a-dict-of-dicts" id="id12">How can I map an XML tree into a dict of dicts?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#installation" id="id13">Installation</a><ul>
-<li><a class="reference internal" href="#which-version-of-libxml2-and-libxslt-should-i-use-or-require" id="id14">Which version of libxml2 and libxslt should I use or require?</a></li>
-<li><a class="reference internal" href="#where-are-the-binary-builds" id="id15">Where are the binary builds?</a></li>
-<li><a class="reference internal" href="#why-do-i-get-errors-about-missing-ucs4-symbols-when-installing-lxml" id="id16">Why do I get errors about missing UCS4 symbols when installing lxml?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#contributing" id="id17">Contributing</a><ul>
-<li><a class="reference internal" href="#why-is-lxml-not-written-in-python" id="id18">Why is lxml not written in Python?</a></li>
-<li><a class="reference internal" href="#how-can-i-contribute" id="id19">How can I contribute?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#bugs" id="id20">Bugs</a><ul>
-<li><a class="reference internal" href="#my-application-crashes" id="id21">My application crashes!</a></li>
-<li><a class="reference internal" href="#my-application-crashes-on-macos-x" id="id22">My application crashes on MacOS-X!</a></li>
-<li><a class="reference internal" href="#i-think-i-have-found-a-bug-in-lxml-what-should-i-do" id="id23">I think I have found a bug in lxml. What should I do?</a></li>
-<li><a class="reference internal" href="#how-do-i-know-a-bug-is-really-in-lxml-and-not-in-libxml2" id="id24">How do I know a bug is really in lxml and not in libxml2?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#id1" id="id25">Threading</a><ul>
-<li><a class="reference internal" href="#can-i-use-threads-to-concurrently-access-the-lxml-api" id="id26">Can I use threads to concurrently access the lxml API?</a></li>
-<li><a class="reference internal" href="#does-my-program-run-faster-if-i-use-threads" id="id27">Does my program run faster if I use threads?</a></li>
-<li><a class="reference internal" href="#would-my-single-threaded-program-run-faster-if-i-turned-off-threading" id="id28">Would my single-threaded program run faster if I turned off threading?</a></li>
-<li><a class="reference internal" href="#why-can-t-i-reuse-xslt-stylesheets-in-other-threads" id="id29">Why can&#8217;t I reuse XSLT stylesheets in other threads?</a></li>
-<li><a class="reference internal" href="#my-program-crashes-when-run-with-mod-python-pyro-zope-plone" id="id30">My program crashes when run with mod_python/Pyro/Zope/Plone/...</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#parsing-and-serialisation" id="id31">Parsing and Serialisation</a><ul>
-<li><a class="reference internal" href="#why-doesn-t-the-pretty-print-option-reformat-my-xml-output" id="id32">Why doesn&#8217;t the <tt class="docutils literal"><span class="pre">pretty_print</span></tt> option reformat my XML output?</a></li>
-<li><a class="reference internal" href="#why-can-t-lxml-parse-my-xml-from-unicode-strings" id="id33">Why can&#8217;t lxml parse my XML from unicode strings?</a></li>
-<li><a class="reference internal" href="#what-is-the-difference-between-str-xslt-doc-and-xslt-doc-write" id="id34">What is the difference between str(xslt(doc)) and xslt(doc).write() ?</a></li>
-<li><a class="reference internal" href="#why-can-t-i-just-delete-parents-or-clear-the-root-node-in-iterparse" id="id35">Why can&#8217;t I just delete parents or clear the root node in iterparse()?</a></li>
-<li><a class="reference internal" href="#how-do-i-output-null-characters-in-xml-text" id="id36">How do I output null characters in XML text?</a></li>
-<li><a class="reference internal" href="#is-lxml-vulnerable-to-xml-bombs" id="id37">Is lxml vulnerable to XML bombs?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xpath-and-document-traversal" id="id38">XPath and Document Traversal</a><ul>
-<li><a class="reference internal" href="#what-are-the-findall-and-xpath-methods-on-element-tree" id="id39">What are the <tt class="docutils literal"><span class="pre">findall()</span></tt> and <tt class="docutils literal"><span class="pre">xpath()</span></tt> methods on Element(Tree)?</a></li>
-<li><a class="reference internal" href="#why-doesn-t-findall-support-full-xpath-expressions" id="id40">Why doesn&#8217;t <tt class="docutils literal"><span class="pre">findall()</span></tt> support full XPath expressions?</a></li>
-<li><a class="reference internal" href="#how-can-i-find-out-which-namespace-prefixes-are-used-in-a-document" id="id41">How can I find out which namespace prefixes are used in a document?</a></li>
-<li><a class="reference internal" href="#how-can-i-specify-a-default-namespace-for-xpath-expressions" id="id42">How can I specify a default namespace for XPath expressions?</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="general-questions">
-<h2><a class="toc-backref" href="#id3">General Questions</a><a class="headerlink" href="#general-questions" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="is-there-a-tutorial">
-<h3><a class="toc-backref" href="#id4">Is there a tutorial?</a><a class="headerlink" href="#is-there-a-tutorial" title="Permalink to this headline">¶</a></h3>
-<p>Read the <a class="reference external" href="tutorial.html">lxml.etree Tutorial</a>.  While this is still work in progress
-(just as any good documentation), it provides an overview of the most
-important concepts in <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>.  If you want to help out,
-improving the tutorial is a very good place to start.</p>
-<p>There is also a <a class="reference external" href="http://effbot.org/zone/element.htm">tutorial for ElementTree</a> which works for
-<tt class="docutils literal"><span class="pre">lxml.etree</span></tt>.  The documentation of the <a class="reference external" href="api.html">extended etree API</a> also
-contains many examples for <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>.  Fredrik Lundh&#8217;s <a class="reference external" href="http://effbot.org/zone/element-lib.htm">element
-library</a> contains a lot of nice recipes that show how to solve common
-tasks in ElementTree and lxml.etree.  To learn using
-<tt class="docutils literal"><span class="pre">lxml.objectify</span></tt>, read the <a class="reference external" href="objectify.html">objectify documentation</a>.</p>
-<p>John Shipman has written another tutorial called <a class="reference external" href="http://www.nmt.edu/tcc/help/pubs/pylxml/">Python XML
-processing with lxml</a> that contains lots of examples.  Liza Daly
-wrote a nice article about high-performance aspects when <a class="reference external" href="http://www.ibm.com/developerworks/xml/library/x-hiperfparse/">parsing
-large files with lxml</a>.</p>
-</div>
-<div class="section" id="where-can-i-find-more-documentation-about-lxml">
-<h3><a class="toc-backref" href="#id5">Where can I find more documentation about lxml?</a><a class="headerlink" href="#where-can-i-find-more-documentation-about-lxml" title="Permalink to this headline">¶</a></h3>
-<p>There is a lot of documentation on the web and also in the Python
-standard library documentation, as lxml implements the well-known
-<a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree API</a> and tries to follow its documentation as closely as
-possible.  The recipes in Fredrik Lundh&#8217;s <a class="reference external" href="http://effbot.org/zone/element-lib.htm">element library</a> are
-generally worth taking a look at.  There are a couple of issues where
-lxml cannot keep up compatibility.  They are described in the
-<a class="reference external" href="compatibility.html">compatibility</a> documentation.</p>
-<p>The lxml specific extensions to the API are described by individual
-files in the <tt class="docutils literal"><span class="pre">doc</span></tt> directory of the source distribution and on <a class="reference external" href="http://codespeak.net/lxml/#documentation">the
-web page</a>.</p>
-<p>The <a class="reference external" href="api/index.html">generated API documentation</a> is a comprehensive API reference
-for the lxml package.</p>
-</div>
-<div class="section" id="what-standards-does-lxml-implement">
-<h3><a class="toc-backref" href="#id6">What standards does lxml implement?</a><a class="headerlink" href="#what-standards-does-lxml-implement" title="Permalink to this headline">¶</a></h3>
-<p>The compliance to XML Standards depends on the support in libxml2 and libxslt.
-Here is a quote from <a class="reference external" href="http://xmlsoft.org/">http://xmlsoft.org/</a>:</p>
-<blockquote>
-<div>In most cases libxml2 tries to implement the specifications in a relatively
-strictly compliant way. As of release 2.4.16, libxml2 passed all 1800+ tests
-from the OASIS XML Tests Suite.</div></blockquote>
-<p>lxml currently supports libxml2 2.6.20 or later, which has even better
-support for various XML standards.  The important ones are:</p>
-<ul class="simple">
-<li>XML 1.0</li>
-<li>HTML 4</li>
-<li>XML namespaces</li>
-<li>XML Schema 1.0</li>
-<li>XPath 1.0</li>
-<li>XInclude 1.0</li>
-<li>XSLT 1.0</li>
-<li>EXSLT</li>
-<li>XML catalogs</li>
-<li>canonical XML</li>
-<li>RelaxNG</li>
-<li>xml:id</li>
-<li>xml:base</li>
-</ul>
-<p>Support for XML Schema is currently not 100% complete in libxml2, but
-is definitely very close to compliance.  Schematron is supported in
-two ways, the best being the original ISO Schematron reference
-implementation via XSLT.  libxml2 also supports loading documents
-through HTTP and FTP.</p>
-</div>
-<div class="section" id="who-uses-lxml">
-<h3><a class="toc-backref" href="#id7">Who uses lxml?</a><a class="headerlink" href="#who-uses-lxml" title="Permalink to this headline">¶</a></h3>
-<p>As an XML library, lxml is often used under the hood of in-house
-server applications, such as web servers or applications that
-facilitate some kind of document management.  Many people who deploy
-<a class="reference external" href="http://www.zope.org/">Zope</a> or <a class="reference external" href="http://www.plone.org/">Plone</a> use it together with lxml.  Therefore, it is hard to
-get an idea of who uses it, and the following list of &#8216;users and
-projects we know of&#8217; is very far from a complete list of lxml&#8217;s users.</p>
-<p>Also note that the compatibility to the ElementTree library does not
-require projects to set a hard dependency on lxml - as long as they do
-not take advantage of lxml&#8217;s enhanced feature set.</p>
-<ul class="simple">
-<li><a class="reference external" href="http://code.google.com/p/cssutils/source/browse/trunk/examples/style.py?r=917">cssutils</a>, a CSS parser and toolkit, can be used with <tt class="docutils literal"><span class="pre">lxml.cssselect</span></tt></li>
-<li><a class="reference external" href="http://www.openplans.org/projects/deliverance/project-home">Deliverance</a>, a content theming tool</li>
-<li><a class="reference external" href="http://www.enfoldsystems.com/Products/Proxy/4">Enfold Proxy 4</a>, a web server accelerator with on-the-fly XSLT processing</li>
-<li><a class="reference external" href="http://lists.wald.intevation.org/pipermail/inteproxy-devel/2007-February/000000.html">Inteproxy</a>, a secure HTTP proxy</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/lwebstring">lwebstring</a>, an XML template engine</li>
-<li><a class="reference external" href="http://permalink.gmane.org/gmane.comp.python.lxml.devel/3250">OpenXMLlib</a>, a library for handling OpenXML document meta data</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/pycoon">Pycoon</a>, a WSGI web development framework based on XML pipelines</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/pyquery">PyQuery</a>, a query framework for XML/HTML, similar to jQuery for JavaScript</li>
-<li><a class="reference external" href="http://github.com/mikemaccana/python-docx">python-docx</a>, a package for handling Microsoft&#8217;s Word OpenXML format</li>
-<li><a class="reference external" href="http://beta.rambler.ru/srch?query=python+lxml&amp;searchtype=web">Rambler</a>, a meta search engine that aggregates different data sources</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/rdfadict">rdfadict</a>, an RDFa parser with a simple dictionary-like interface.</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/xupdate-processor">xupdate-processor</a>, an XUpdate implementation for lxml.etree</li>
-</ul>
-<p>Zope3 and some of its extensions have good support for lxml:</p>
-<ul class="simple">
-<li><a class="reference external" href="http://pypi.python.org/pypi/gocept.lxml">gocept.lxml</a>, Zope3 interface bindings for lxml</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/z3c.rml">z3c.rml</a>, an implementation of ReportLab&#8217;s RML format</li>
-<li><a class="reference external" href="http://pypi.python.org/pypi/zif.sedna">zif.sedna</a>, an XQuery based interface to the Sedna OpenSource XML database</li>
-</ul>
-<p>And don&#8217;t miss the quotes by our generally <a class="reference external" href="http://thread.gmane.org/gmane.comp.python.lxml.devel/3244/focus=3244">happy</a> <a class="reference external" href="http://article.gmane.org/gmane.comp.python.lxml.devel/3246">users</a>, and other
-<a class="reference external" href="http://www.google.com/search?as_lq=http:%2F%2Flxml.de%2F">sites that link to lxml</a>.  As <a class="reference external" href="http://www.ibm.com/developerworks/xml/library/x-hiperfparse/">Liza Daly</a> puts it: &#8220;Many software
-products come with the pick-two caveat, meaning that you must choose
-only two: speed, flexibility, or readability.  When used carefully,
-lxml can provide all three.&#8221;</p>
-</div>
-<div class="section" id="what-is-the-difference-between-lxml-etree-and-lxml-objectify">
-<h3><a class="toc-backref" href="#id8">What is the difference between lxml.etree and lxml.objectify?</a><a class="headerlink" href="#what-is-the-difference-between-lxml-etree-and-lxml-objectify" title="Permalink to this headline">¶</a></h3>
-<p>The two modules provide different ways of handling XML.  However, objectify
-builds on top of lxml.etree and therefore inherits most of its capabilities
-and a large portion of its API.</p>
-<ul>
-<li><p class="first">lxml.etree is a generic API for XML and HTML handling.  It aims for
-ElementTree <a class="reference external" href="compatibility.html">compatibility</a> and supports the entire XML infoset.  It is well
-suited for both mixed content and data centric XML.  Its generality makes it
-the best choice for most applications.</p>
-</li>
-<li><p class="first">lxml.objectify is a specialized API for XML data handling in a Python object
-syntax.  It provides a very natural way to deal with data fields stored in a
-structurally well defined XML format.  Data is automatically converted to
-Python data types and can be manipulated with normal Python operators.  Look
-at the examples in the <a class="reference external" href="objectify.html">objectify documentation</a> to see what it feels like
-to use it.</p>
-<p>Objectify is not well suited for mixed contents or HTML documents.  As it is
-built on top of lxml.etree, however, it inherits the normal support for
-XPath, XSLT or validation.</p>
-</li>
-</ul>
-</div>
-<div class="section" id="how-can-i-make-my-application-run-faster">
-<h3><a class="toc-backref" href="#id9">How can I make my application run faster?</a><a class="headerlink" href="#how-can-i-make-my-application-run-faster" title="Permalink to this headline">¶</a></h3>
-<p>lxml.etree is a very fast library for processing XML.  There are, however, <a class="reference external" href="performance.html#the-elementtree-api">a
-few caveats</a> involved in the mapping of the powerful libxml2 library to the
-simple and convenient ElementTree API.  Not all operations are as fast as the
-simplicity of the API might suggest, while some use cases can heavily benefit
-from finding the right way of doing them.  The <a class="reference external" href="performance.html">benchmark page</a> has a
-comparison to other ElementTree implementations and a number of tips for
-performance tweaking.  As with any Python application, the rule of thumb is:
-the more of your processing runs in C, the faster your application gets.  See
-also the section on <a class="reference external" href="#threading">threading</a>.</p>
-</div>
-<div class="section" id="what-about-that-trailing-text-on-serialised-elements">
-<h3><a class="toc-backref" href="#id10">What about that trailing text on serialised Elements?</a><a class="headerlink" href="#what-about-that-trailing-text-on-serialised-elements" title="Permalink to this headline">¶</a></h3>
-<p>The ElementTree tree model defines an Element as a container with a tag name,
-contained text, child Elements and a tail text.  This means that whenever you
-serialise an Element, you will get all parts of that Element:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;tag&gt;text&lt;child/&gt;&lt;/tag&gt;tail&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
-<span class="go">&lt;tag&gt;text&lt;child/&gt;&lt;/tag&gt;tail</span>
-</pre></div>
-</div>
-<p>Here is an example that shows why not serialising the tail would be
-even more surprising from an object point of view:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;test&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;TEXT&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">&lt;test&gt;TEXT&lt;/test&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s">&quot;TAIL&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">&lt;test&gt;TEXT&lt;/test&gt;TAIL</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="bp">None</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">&lt;test&gt;TEXT&lt;/test&gt;</span>
-</pre></div>
-</div>
-<p>Just imagine a Python list where you append an item and it doesn&#8217;t
-show up when you look at the list.</p>
-<p>The <tt class="docutils literal"><span class="pre">.tail</span></tt> property is a huge simplification for the tree model as
-it avoids text nodes to appear in the list of children and makes
-access to them quick and simple.  So this is a benefit in most
-applications and simplifies many, many XML tree algorithms.</p>
-<p>However, in document-like XML (and especially HTML), the above result can be
-unexpected to new users and can sometimes require a bit more overhead.  A good
-way to deal with this is to use helper functions that copy the Element without
-its tail.  The <tt class="docutils literal"><span class="pre">lxml.html</span></tt> package also deals with this in a couple of
-places, as most HTML algorithms benefit from a tail-free behaviour.</p>
-</div>
-<div class="section" id="how-can-i-find-out-if-an-element-is-a-comment-or-pi">
-<h3><a class="toc-backref" href="#id11">How can I find out if an Element is a comment or PI?</a><a class="headerlink" href="#how-can-i-find-out-if-an-element-is-a-comment-or-pi" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;?my PI?&gt;&lt;root&gt;&lt;!-- empty --&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;root&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span> <span class="ow">is</span> <span class="n">etree</span><span class="o">.</span><span class="n">PI</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="ow">is</span> <span class="n">etree</span><span class="o">.</span><span class="n">Comment</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="how-can-i-map-an-xml-tree-into-a-dict-of-dicts">
-<h3><a class="toc-backref" href="#id12">How can I map an XML tree into a dict of dicts?</a><a class="headerlink" href="#how-can-i-map-an-xml-tree-into-a-dict-of-dicts" title="Permalink to this headline">¶</a></h3>
-<p>I&#8217;m glad you asked.</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">recursive_dict</span><span class="p">(</span><span class="n">element</span><span class="p">):</span>
-     <span class="k">return</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> \
-            <span class="nb">dict</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="n">recursive_dict</span><span class="p">,</span> <span class="n">element</span><span class="p">))</span> <span class="ow">or</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="installation">
-<h2><a class="toc-backref" href="#id13">Installation</a><a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="which-version-of-libxml2-and-libxslt-should-i-use-or-require">
-<h3><a class="toc-backref" href="#id14">Which version of libxml2 and libxslt should I use or require?</a><a class="headerlink" href="#which-version-of-libxml2-and-libxslt-should-i-use-or-require" title="Permalink to this headline">¶</a></h3>
-<p>It really depends on your application, but the rule of thumb is: more recent
-versions contain less bugs and provide more features.</p>
-<ul class="simple">
-<li>Do not use libxml2 2.6.27 if you want to use XPath (including XSLT).  You
-will get crashes when XPath errors occur during the evaluation (e.g. for
-unknown functions).  This happens inside the evaluation call to libxml2, so
-there is nothing that lxml can do about it.</li>
-<li>Try to use versions of both libraries that were released together.  At least
-the libxml2 version should not be older than the libxslt version.</li>
-<li>If you use XML Schema or Schematron which are still under development, the
-most recent version of libxml2 is usually a good bet.</li>
-<li>The same applies to XPath, where a substantial number of bugs and memory
-leaks were fixed over time.  If you encounter crashes or memory leaks in
-XPath applications, try a more recent version of libxml2.</li>
-<li>For parsing and fixing broken HTML, lxml requires at least libxml2 2.6.21.</li>
-<li>For the normal tree handling, however, any libxml2 version starting with
-2.6.20 should do.</li>
-</ul>
-<p>Read the <a class="reference external" href="http://xmlsoft.org/news.html">release notes of libxml2</a> and the <a class="reference external" href="http://xmlsoft.org/XSLT/news.html">release notes of libxslt</a> to
-see when (or if) a specific bug has been fixed.</p>
-</div>
-<div class="section" id="where-are-the-binary-builds">
-<h3><a class="toc-backref" href="#id15">Where are the binary builds?</a><a class="headerlink" href="#where-are-the-binary-builds" title="Permalink to this headline">¶</a></h3>
-<p>Sidnei da Silva regularly contributes Windows binaries for new
-releases.  This is because two of the major problems of Microsoft
-Windows make it non-trivial for users to build lxml on this platform:
-the lack of a pre-installed standard compiler and the missing package
-management.</p>
-<p>If there is not currently a binary distribution of the most recent
-lxml release for this platform available from the Python Package Index
-(PyPI), please look through the older versions to see if they provide
-a binary build.  This is done by appending the version number to the
-PyPI URL, e.g.:</p>
-<div class="highlight-python"><pre>http://pypi.python.org/pypi/lxml/2.1.5</pre>
-</div>
-<p>Christoph Gohlke also provides <a class="reference external" href="http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml">unofficial lxml binary builds for
-Windows</a> that are
-usually very up to date.</p>
-<p>Apart from that, we generally do not provide binary builds of lxml, as
-most of the other operating systems out there can build lxml without
-problems (with the exception of <a class="reference external" href="build.html#building-lxml-on-macos-x">MacOS-X</a>), and the sheer mass of
-variations between platforms makes it futile to provide builds for
-everyone.</p>
-</div>
-<div class="section" id="why-do-i-get-errors-about-missing-ucs4-symbols-when-installing-lxml">
-<h3><a class="toc-backref" href="#id16">Why do I get errors about missing UCS4 symbols when installing lxml?</a><a class="headerlink" href="#why-do-i-get-errors-about-missing-ucs4-symbols-when-installing-lxml" title="Permalink to this headline">¶</a></h3>
-<p>Most likely, you use a Python installation that was configured for internal
-use of UCS2 unicode, meaning 16-bit unicode.  The lxml egg distributions are
-generally compiled on platforms that use UCS4, a 32-bit unicode encoding, as
-this is used on the majority of platforms.  Sadly, both are not compatible, so
-the eggs can only support the one they were compiled with.</p>
-<p>This means that you have to compile lxml from sources for your system.  Note
-that you do not need Cython for this, the lxml source distribution is directly
-compilable on both platform types.  See the <a class="reference external" href="build.html">build instructions</a> on how to do
-this.</p>
-</div>
-</div>
-<div class="section" id="contributing">
-<h2><a class="toc-backref" href="#id17">Contributing</a><a class="headerlink" href="#contributing" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="why-is-lxml-not-written-in-python">
-<h3><a class="toc-backref" href="#id18">Why is lxml not written in Python?</a><a class="headerlink" href="#why-is-lxml-not-written-in-python" title="Permalink to this headline">¶</a></h3>
-<p>It <em>almost</em> is.</p>
-<p>lxml is not written in plain Python, because it interfaces with two C
-libraries: libxml2 and libxslt.  Accessing them at the C-level is
-required for performance reasons.</p>
-<p>However, to avoid writing plain C-code and caring too much about the
-details of built-in types and reference counting, lxml is written in
-<a class="reference external" href="http://www.cython.org/">Cython</a>, a Python-like language that is translated into C-code.
-Chances are that if you know Python, you can write <a class="reference external" href="http://docs.cython.org/docs/tutorial.html">code that Cython
-accepts</a>.  Again, the C-ish style used in the lxml code is just for
-performance optimisations.  If you want to contribute, don&#8217;t bother
-with the details, a Python implementation of your contribution is
-better than none.  And keep in mind that lxml&#8217;s flexible API often
-favours an implementation of features in pure Python, without
-bothering with C-code at all.  For example, the <tt class="docutils literal"><span class="pre">lxml.html</span></tt> package
-is entirely written in Python.</p>
-<p>Please contact the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing list</a> if you need any help.</p>
-</div>
-<div class="section" id="how-can-i-contribute">
-<h3><a class="toc-backref" href="#id19">How can I contribute?</a><a class="headerlink" href="#how-can-i-contribute" title="Permalink to this headline">¶</a></h3>
-<p>If you find something that you would like lxml to do (or do better),
-then please tell us about it on the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing list</a>.  Patches are
-always appreciated, especially when accompanied by unit tests and
-documentation (doctests would be great).  See the <tt class="docutils literal"><span class="pre">tests</span></tt>
-subdirectories in the lxml source tree (below the <tt class="docutils literal"><span class="pre">src</span></tt> directory)
-and the <a class="reference external" href="http://docutils.sourceforge.net/rst.html">ReST</a> <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/doc/">text files</a> in the <tt class="docutils literal"><span class="pre">doc</span></tt> directory.</p>
-<p>We also have a <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/IDEAS.txt">list of missing features</a> that we would like to
-implement but didn&#8217;t due to lack if time.  If <em>you</em> find the time,
-patches are very welcome.</p>
-<p>Besides enhancing the code, there are a lot of places where you can help the
-project and its user base.  You can</p>
-<ul class="simple">
-<li>spread the word and write about lxml.  Many users (especially new Python
-users) have not yet heared about lxml, although our user base is constantly
-growing.  If you write your own blog and feel like saying something about
-lxml, go ahead and do so.  If we think your contribution or criticism is
-valuable to other users, we may even put a link or a quote on the project
-page.</li>
-<li>provide code examples for the general usage of lxml or specific problems
-solved with lxml.  Readable code is a very good way of showing how a library
-can be used and what great things you can do with it.  Again, if we hear
-about it, we can set a link on the project page.</li>
-<li>work on the documentation.  The web page is generated from a set of <a class="reference external" href="http://docutils.sourceforge.net/rst.html">ReST</a>
-<a class="reference external" href="http://codespeak.net/svn/lxml/trunk/doc/">text files</a>.  It is meant both as a representative project page for lxml
-and as a site for documenting lxml&#8217;s API and usage.  If you have questions
-or an idea how to make it more readable and accessible while you are reading
-it, please send a comment to the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing list</a>.</li>
-<li>enhance the web site. We put some work into making the web site
-usable, understandable and also easy to find, but there&#8217;s always
-things that can be done better.  You may notice that we are not
-top-ranked when searching the web for &#8220;Python and XML&#8221;, so maybe you
-have an idea how to improve that.</li>
-<li>help with the tutorial.  A tutorial is the most important stating point for
-new users, so it is important for us to provide an easy to understand guide
-into lxml.  As allo documentation, the tutorial is work in progress, so we
-appreciate every helping hand.</li>
-<li>improve the docstrings.  lxml uses docstrings to support Python&#8217;s integrated
-online <tt class="docutils literal"><span class="pre">help()</span></tt> function.  However, sometimes these are not sufficient to
-grasp the details of the function in question.  If you find such a place,
-you can try to write up a better description and send it to the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing
-list</a>.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="bugs">
-<h2><a class="toc-backref" href="#id20">Bugs</a><a class="headerlink" href="#bugs" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="my-application-crashes">
-<h3><a class="toc-backref" href="#id21">My application crashes!</a><a class="headerlink" href="#my-application-crashes" title="Permalink to this headline">¶</a></h3>
-<p>One of the goals of lxml is &#8220;no segfaults&#8221;, so if there is no clear
-warning in the documentation that you were doing something potentially
-harmful, you have found a bug and we would like to hear about it.
-Please report this bug to the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing list</a>.  See the section on bug
-reporting to learn how to do that.</p>
-<p>If your application (or e.g. your web container) uses threads, please
-see the FAQ section on <a class="reference external" href="#threading">threading</a> to check if you touch on one of the
-potential pitfalls.</p>
-<p>In any case, try to reproduce the problem with the latest versions of
-libxml2 and libxslt.  From time to time, bugs and race conditions are found
-in these libraries, so a more recent version might already contain a fix for
-your problem.</p>
-<p>Remember: even if you see lxml appear in a crash stack trace, it is
-not necessarily lxml that <em>caused</em> the crash.</p>
-</div>
-<div class="section" id="my-application-crashes-on-macos-x">
-<h3><a class="toc-backref" href="#id22">My application crashes on MacOS-X!</a><a class="headerlink" href="#my-application-crashes-on-macos-x" title="Permalink to this headline">¶</a></h3>
-<p>This was a common problem up to lxml 2.1.x.  Since lxml 2.2, the only
-officially supported way to use it on this platform is through a
-static build against freshly downloaded versions of libxml2 and
-libxslt.  See the build instructions for <a class="reference external" href="build.html#building-lxml-on-macos-x">MacOS-X</a>.</p>
-</div>
-<div class="section" id="i-think-i-have-found-a-bug-in-lxml-what-should-i-do">
-<h3><a class="toc-backref" href="#id23">I think I have found a bug in lxml. What should I do?</a><a class="headerlink" href="#i-think-i-have-found-a-bug-in-lxml-what-should-i-do" title="Permalink to this headline">¶</a></h3>
-<p>First, you should look at the <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/CHANGES.txt">current developer changelog</a> to see if this
-is a known problem that has already been fixed in the SVN trunk since the
-release you are using.</p>
-<p>Also, the &#8216;crash&#8217; section above has a few good advices what to try to see if
-the problem is really in lxml - and not in your setup.  Believe it or not,
-that happens more often than you might think, especially when old libraries
-or even multiple library versions are installed.</p>
-<p>You should always try to reproduce the problem with the latest
-versions of libxml2 and libxslt - and make sure they are used.
-<tt class="docutils literal"><span class="pre">lxml.etree</span></tt> can tell you what it runs with:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">sys</span>
-<span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-
-<span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s">&#39;Python&#39;</span><span class="p">,</span>           <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s">&#39;lxml.etree&#39;</span><span class="p">,</span>       <span class="n">etree</span><span class="o">.</span><span class="n">LXML_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s">&#39;libxml used&#39;</span><span class="p">,</span>      <span class="n">etree</span><span class="o">.</span><span class="n">LIBXML_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s">&#39;libxml compiled&#39;</span><span class="p">,</span>  <span class="n">etree</span><span class="o">.</span><span class="n">LIBXML_COMPILED_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s">&#39;libxslt used&#39;</span><span class="p">,</span>     <span class="n">etree</span><span class="o">.</span><span class="n">LIBXSLT_VERSION</span><span class="p">))</span>
-<span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-20s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s">&#39;libxslt compiled&#39;</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">LIBXSLT_COMPILED_VERSION</span><span class="p">))</span>
-</pre></div>
-</div>
-<p>If you can figure that the problem is not in lxml but in the
-underlying libxml2 or libxslt, you can ask right on the respective
-mailing lists, which may considerably reduce the time to find a fix or
-work-around.  See the next question for some hints on how to do that.</p>
-<p>Otherwise, we would really like to hear about it.  Please report it to
-the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing list</a> so that we can fix it.  It is very helpful in this
-case if you can come up with a short code snippet that demonstrates
-your problem.  If others can reproduce and see the problem, it is much
-easier for them to fix it - and maybe even easier for you to describe
-it and get people convinced that it really is a problem to fix.</p>
-<p>It is important that you always report the version of lxml, libxml2
-and libxslt that you get from the code snippet above.  If we do not
-know the library versions you are using, we will ask back, so it will
-take longer for you to get a helpful answer.</p>
-<p>Since as a user of lxml you are likely a programmer, you might find
-<a class="reference external" href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">this article on bug reports</a> an interesting read.</p>
-</div>
-<div class="section" id="how-do-i-know-a-bug-is-really-in-lxml-and-not-in-libxml2">
-<h3><a class="toc-backref" href="#id24">How do I know a bug is really in lxml and not in libxml2?</a><a class="headerlink" href="#how-do-i-know-a-bug-is-really-in-lxml-and-not-in-libxml2" title="Permalink to this headline">¶</a></h3>
-<p>A large part of lxml&#8217;s functionality is implemented by libxml2 and
-libxslt, so problems that you encounter may be in one or the other.
-Knowing the right place to ask will reduce the time it takes to fix
-the problem, or to find a work-around.</p>
-<p>Both libxml2 and libxslt come with their own command line frontends,
-namely <tt class="docutils literal"><span class="pre">xmllint</span></tt> and <tt class="docutils literal"><span class="pre">xsltproc</span></tt>.  If you encounter problems with
-XSLT processing for specific stylesheets or with validation for
-specific schemas, try to run the XSLT with <tt class="docutils literal"><span class="pre">xsltproc</span></tt> or the
-validation with <tt class="docutils literal"><span class="pre">xmllint</span></tt> respectively to find out if it fails there
-as well.  If it does, please report directly to the mailing lists of
-the respective project, namely:</p>
-<ul class="simple">
-<li><a class="reference external" href="http://mail.gnome.org/mailman/listinfo/xml">libxml2 mailing list</a></li>
-<li><a class="reference external" href="http://mail.gnome.org/mailman/listinfo/xslt">libxslt mailing list</a></li>
-</ul>
-<p>On the other hand, everything that seems to be related to Python code,
-including custom resolvers, custom XPath functions, etc. is likely
-outside of the scope of libxml2/libxslt.  If you encounter problems
-here or you are not sure where there the problem may come from, please
-ask on the lxml mailing list first.</p>
-<p>In any case, a good explanation of the problem including some simple
-test code and some input data will help us (or the libxml2 developers)
-see and understand the problem, which largely increases your chance of
-getting help.  See the question above for a few hints on what is
-helpful here.</p>
-</div>
-</div>
-<div class="section" id="id1">
-<h2><a class="toc-backref" href="#id25">Threading</a><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="can-i-use-threads-to-concurrently-access-the-lxml-api">
-<h3><a class="toc-backref" href="#id26">Can I use threads to concurrently access the lxml API?</a><a class="headerlink" href="#can-i-use-threads-to-concurrently-access-the-lxml-api" title="Permalink to this headline">¶</a></h3>
-<p>Short answer: yes, if you use lxml 2.2 and later.</p>
-<p>Since version 1.1, lxml frees the GIL (Python&#8217;s global interpreter
-lock) internally when parsing from disk and memory, as long as you use
-either the default parser (which is replicated for each thread) or
-create a parser for each thread yourself.  lxml also allows
-concurrency during validation (RelaxNG and XMLSchema) and XSL
-transformation.  You can share RelaxNG, XMLSchema and XSLT objects
-between threads.</p>
-<p>While you can also share parsers between threads, this will serialize
-the access to each of them, so it is better to <tt class="docutils literal"><span class="pre">.copy()</span></tt> parsers or
-to just use the default parser if you do not need any special
-configuration.  The same applies to the XPath evaluators, which use an
-internal lock to protect their prepared evaluation contexts.  It is
-therefore best to use separate evaluator instances in threads.</p>
-<p>Warning: Before lxml 2.2, and especially before 2.1, there were
-various issues when moving subtrees between different threads, or when
-applying XSLT objects from one thread to trees parsed or modified in
-another.  If you need code to run with older versions, you should
-generally avoid modifying trees in other threads than the one it was
-generated in.  Although this should work in many cases, there are
-certain scenarios where the termination of a thread that parsed a tree
-can crash the application if subtrees of this tree were moved to other
-documents.  You should be on the safe side when passing trees between
-threads if you either</p>
-<ul class="simple">
-<li>do not modify these trees and do not move their elements to other
-trees, or</li>
-<li>do not terminate threads while the trees they parsed are still in
-use (e.g. by using a fixed size thread-pool or long-running threads
-in processing chains)</li>
-</ul>
-<p>Since lxml 2.2, even multi-thread pipelines are supported. However,
-note that it is more efficient to do all tree work inside one thread,
-than to let multiple threads work on a tree one after the other. This
-is because trees inherit state from the thread that created them,
-which must be maintained when the tree is modified inside another
-thread.</p>
-</div>
-<div class="section" id="does-my-program-run-faster-if-i-use-threads">
-<h3><a class="toc-backref" href="#id27">Does my program run faster if I use threads?</a><a class="headerlink" href="#does-my-program-run-faster-if-i-use-threads" title="Permalink to this headline">¶</a></h3>
-<p>Depends.  The best way to answer this is timing and profiling.</p>
-<p>The global interpreter lock (GIL) in Python serializes access to the
-interpreter, so if the majority of your processing is done in Python
-code (walking trees, modifying elements, etc.), your gain will be
-close to zero.  The more of your XML processing moves into lxml,
-however, the higher your gain.  If your application is bound by XML
-parsing and serialisation, or by very selective XPath expressions and
-complex XSLTs, your speedup on multi-processor machines can be
-substantial.</p>
-<p>See the question above to learn which operations free the GIL to support
-multi-threading.</p>
-</div>
-<div class="section" id="would-my-single-threaded-program-run-faster-if-i-turned-off-threading">
-<h3><a class="toc-backref" href="#id28">Would my single-threaded program run faster if I turned off threading?</a><a class="headerlink" href="#would-my-single-threaded-program-run-faster-if-i-turned-off-threading" title="Permalink to this headline">¶</a></h3>
-<p>Possibly, yes.  You can see for yourself by compiling lxml entirely
-without threading support.  Pass the <tt class="docutils literal"><span class="pre">--without-threading</span></tt> option to
-setup.py when building lxml from source.  You can also build libxml2
-without pthread support (<tt class="docutils literal"><span class="pre">--without-pthreads</span></tt> option), which may add
-another bit of performance.  Note that this will leave internal data
-structures entirely without thread protection, so make sure you really
-do not use lxml outside of the main application thread in this case.</p>
-</div>
-<div class="section" id="why-can-t-i-reuse-xslt-stylesheets-in-other-threads">
-<h3><a class="toc-backref" href="#id29">Why can&#8217;t I reuse XSLT stylesheets in other threads?</a><a class="headerlink" href="#why-can-t-i-reuse-xslt-stylesheets-in-other-threads" title="Permalink to this headline">¶</a></h3>
-<p>Since later lxml 2.0 versions, you can do this.  There is some
-overhead involved as the result document needs an additional cleanup
-traversal when the input document and/or the stylesheet were created
-in other threads.  However, on a multi-processor machine, the gain of
-freeing the GIL easily covers this drawback.</p>
-<p>If you need even the last bit of performance, consider keeping (a copy
-of) the stylesheet in thread-local storage, and try creating the input
-document(s) in the same thread.  And do not forget to benchmark your
-code to see if the increased code complexity is really worth it.</p>
-</div>
-<div class="section" id="my-program-crashes-when-run-with-mod-python-pyro-zope-plone">
-<h3><a class="toc-backref" href="#id30">My program crashes when run with mod_python/Pyro/Zope/Plone/...</a><a class="headerlink" href="#my-program-crashes-when-run-with-mod-python-pyro-zope-plone" title="Permalink to this headline">¶</a></h3>
-<p>These environments can use threads in a way that may not make it obvious when
-threads are created and what happens in which thread.  This makes it hard to
-ensure lxml&#8217;s threading support is used in a reliable way.  Sadly, if problems
-arise, they are as diverse as the applications, so it is difficult to provide
-any generally applicable solution.  Also, these environments are so complex
-that problems become hard to debug and even harder to reproduce in a
-predictable way.  If you encounter crashes in one of these systems, but your
-code runs perfectly when started by hand, the following gives you a few hints
-for possible approaches to solve your specific problem:</p>
-<ul>
-<li><p class="first">make sure you use recent versions of libxml2, libxslt and lxml.  The
-libxml2 developers keep fixing bugs in each release, and lxml also
-tries to become more robust against possible pitfalls.  So newer
-versions might already fix your problem in a reliable way.  Version
-2.2 of lxml contains many improvements.</p>
-</li>
-<li><p class="first">make sure the library versions you installed are really used.  Do
-not rely on what your operating system tells you!  Print the version
-constants in <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> from within your runtime environment to
-make sure it is the case.  This is especially a problem under
-MacOS-X when newer library versions were installed in addition to
-the outdated system libraries.  Please read the bugs section
-regarding MacOS-X in this FAQ.</p>
-</li>
-<li><p class="first">if you use <tt class="docutils literal"><span class="pre">mod_python</span></tt>, try setting this option:</p>
-<blockquote>
-<div><p>PythonInterpreter main_interpreter</p>
-</div></blockquote>
-<p>There was a discussion on the mailing list about this problem:</p>
-<blockquote>
-<div><p><a class="reference external" href="http://comments.gmane.org/gmane.comp.python.lxml.devel/2942">http://comments.gmane.org/gmane.comp.python.lxml.devel/2942</a></p>
-</div></blockquote>
-</li>
-<li><p class="first">compile lxml without threading support by running <tt class="docutils literal"><span class="pre">setup.py</span></tt> with the
-<tt class="docutils literal"><span class="pre">--without-threading</span></tt> option.  While this might be slower in certain
-scenarios on multi-processor systems, it <em>might</em> also keep your application
-from crashing, which should be worth more to you than peek performance.
-Remember that lxml is fast anyway, so concurrency may not even be worth it.</p>
-</li>
-<li><p class="first">look out for fancy XSLT stuff like foreign document access or
-passing in subtrees trough XSLT variables.  This might or might not
-work, depending on your specific usage.  Again, later versions of
-lxml and libxslt provide safer support here.</p>
-</li>
-<li><p class="first">try copying trees at suspicious places in your code and working with
-those instead of a tree shared between threads.  Note that the
-copying must happen inside the target thread to be effective, not in
-the thread that created the tree.  Serialising in one thread and
-parsing in another is also a simple (and fast) way of separating
-thread contexts.</p>
-</li>
-<li><p class="first">try keeping thread-local copies of XSLT stylesheets, i.e. one per thread,
-instead of sharing one.  Also see the question above.</p>
-</li>
-<li><p class="first">you can try to serialise suspicious parts of your code with explicit thread
-locks, thus disabling the concurrency of the runtime system.</p>
-</li>
-<li><p class="first">report back on the mailing list to see if there are other ways to work
-around your specific problems.  Do not forget to report the version numbers
-of lxml, libxml2 and libxslt you are using (see the question on reporting
-a bug).</p>
-</li>
-</ul>
-<p>Note that most of these options will degrade performance and/or your
-code quality.  If you are unsure what to do, please ask on the mailing
-list.</p>
-</div>
-</div>
-<div class="section" id="parsing-and-serialisation">
-<h2><a class="toc-backref" href="#id31">Parsing and Serialisation</a><a class="headerlink" href="#parsing-and-serialisation" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="why-doesn-t-the-pretty-print-option-reformat-my-xml-output">
-<h3><a class="toc-backref" href="#id32">Why doesn&#8217;t the <tt class="docutils literal"><span class="pre">pretty_print</span></tt> option reformat my XML output?</a><a class="headerlink" href="#why-doesn-t-the-pretty-print-option-reformat-my-xml-output" title="Permalink to this headline">¶</a></h3>
-<p>Pretty printing (or formatting) an XML document means adding white space to
-the content.  These modifications are harmless if they only impact elements in
-the document that do not carry (text) data.  They corrupt your data if they
-impact elements that contain data.  If lxml cannot distinguish between
-whitespace and data, it will not alter your data.  Whitespace is therefore
-only added between nodes that do not contain data.  This is always the case
-for trees constructed element-by-element, so no problems should be expected
-here.  For parsed trees, a good way to assure that no conflicting whitespace
-is left in the tree is the <tt class="docutils literal"><span class="pre">remove_blank_text</span></tt> option:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This will allow the parser to drop blank text nodes when constructing the
-tree.  If you now call a serialization function to pretty print this tree,
-lxml can add fresh whitespace to the XML tree to indent it.</p>
-<p>Note that the <tt class="docutils literal"><span class="pre">remove_blank_text</span></tt> option also uses a heuristic if it
-has no definite knowledge about the document&#8217;s ignorable whitespace.
-It will keep blank text nodes that appear after non-blank text nodes
-at the same level.  This is to prevent document-style XML from
-breaking.</p>
-<p>If you want to be sure all blank text is removed, you have to use
-either a DTD to tell the parser which whitespace it can safely ignore,
-or remove the ignorable whitespace manually after parsing, e.g. by
-setting all tail text to None:</p>
-<div class="highlight-python"><pre>.. sourcecode:: python</pre>
-</div>
-<blockquote>
-<div><dl class="docutils">
-<dt>for element in root.iter():</dt>
-<dd>element.tail = None</dd>
-</dl>
-</div></blockquote>
-<p>Fredrik Lundh also has a Python-level function for indenting XML by
-appending whitespace to tags.  It can be found on his <a class="reference external" href="http://effbot.org/zone/element-lib.htm">element
-library</a> recipe page.</p>
-</div>
-<div class="section" id="why-can-t-lxml-parse-my-xml-from-unicode-strings">
-<h3><a class="toc-backref" href="#id33">Why can&#8217;t lxml parse my XML from unicode strings?</a><a class="headerlink" href="#why-can-t-lxml-parse-my-xml-from-unicode-strings" title="Permalink to this headline">¶</a></h3>
-<p>lxml can read Python unicode strings and even tries to support them if libxml2
-does not.  However, if the unicode string declares an XML encoding internally
-(<tt class="docutils literal"><span class="pre">&lt;?xml</span> <span class="pre">encoding=&quot;...&quot;?&gt;</span></tt>), parsing is bound to fail, as this encoding is
-most likely not the real encoding used in Python unicode.  The same is true
-for HTML unicode strings that contain charset meta tags, although the problems
-may be more subtle here.  The libxml2 HTML parser may not be able to parse the
-meta tags in broken HTML and may end up ignoring them, so even if parsing
-succeeds, later handling may still fail with character encoding errors.</p>
-<p>Note that Python uses different encodings for unicode on different platforms,
-so even specifying the real internal unicode encoding is not portable between
-Python interpreters.  Don&#8217;t do it.</p>
-<p>Python unicode strings with XML data or HTML data that carry encoding
-information are broken.  lxml will not parse them.  You must provide parsable
-data in a valid encoding.</p>
-</div>
-<div class="section" id="what-is-the-difference-between-str-xslt-doc-and-xslt-doc-write">
-<h3><a class="toc-backref" href="#id34">What is the difference between str(xslt(doc)) and xslt(doc).write() ?</a><a class="headerlink" href="#what-is-the-difference-between-str-xslt-doc-and-xslt-doc-write" title="Permalink to this headline">¶</a></h3>
-<p>The str() implementation of the XSLTResultTree class (a subclass of the
-ElementTree class) knows about the output method chosen in the stylesheet
-(xsl:output), write() doesn&#8217;t.  If you call write(), the result will be a
-normal XML tree serialization in the requested encoding.  Calling this method
-may also fail for XSLT results that are not XML trees (e.g. string results).</p>
-<p>If you call str(), it will return the serialized result as specified by the
-XSL transform.  This correctly serializes string results to encoded Python
-strings and honours <tt class="docutils literal"><span class="pre">xsl:output</span></tt> options like <tt class="docutils literal"><span class="pre">indent</span></tt>.  This almost
-certainly does what you want, so you should only use <tt class="docutils literal"><span class="pre">write()</span></tt> if you are
-sure that the XSLT result is an XML tree and you want to override the encoding
-and indentation options requested by the stylesheet.</p>
-</div>
-<div class="section" id="why-can-t-i-just-delete-parents-or-clear-the-root-node-in-iterparse">
-<h3><a class="toc-backref" href="#id35">Why can&#8217;t I just delete parents or clear the root node in iterparse()?</a><a class="headerlink" href="#why-can-t-i-just-delete-parents-or-clear-the-root-node-in-iterparse" title="Permalink to this headline">¶</a></h3>
-<p>The <tt class="docutils literal"><span class="pre">iterparse()</span></tt> implementation is based on the libxml2 parser.  It
-requires the tree to be intact to finish parsing.  If you delete or modify
-parents of the current node, chances are you modify the structure in a way
-that breaks the parser.  Normally, this will result in a segfault.  Please
-refer to the <a class="reference external" href="parsing.html#iterparse-and-iterwalk">iterparse section</a> of the lxml API documentation to find out
-what you can do and what you can&#8217;t do.</p>
-</div>
-<div class="section" id="how-do-i-output-null-characters-in-xml-text">
-<h3><a class="toc-backref" href="#id36">How do I output null characters in XML text?</a><a class="headerlink" href="#how-do-i-output-null-characters-in-xml-text" title="Permalink to this headline">¶</a></h3>
-<p>Don&#8217;t.  What you would produce is not well-formed XML.  XML parsers
-will refuse to parse a document that contains null characters.  The
-right way to embed binary data in XML is using a text encoding such as
-uuencode or base64.</p>
-</div>
-<div class="section" id="is-lxml-vulnerable-to-xml-bombs">
-<h3><a class="toc-backref" href="#id37">Is lxml vulnerable to XML bombs?</a><a class="headerlink" href="#is-lxml-vulnerable-to-xml-bombs" title="Permalink to this headline">¶</a></h3>
-<p>This has nothing to do with lxml itself, only with the parser of
-libxml2.  Since libxml2 version 2.7, the parser imposes hard security
-limits on input documents to prevent DoS attacks with forged input
-data.  Since lxml 2.2.1, you can disable these limits with the
-<tt class="docutils literal"><span class="pre">huge_tree</span></tt> parser option if you need to parse <em>really</em> large,
-trusted documents.  All lxml versions will leave these restrictions
-enabled by default.</p>
-<p>Note that libxml2 versions of the 2.6 series do not restrict their
-parser and are therefore vulnerable to DoS attacks.</p>
-</div>
-</div>
-<div class="section" id="xpath-and-document-traversal">
-<h2><a class="toc-backref" href="#id38">XPath and Document Traversal</a><a class="headerlink" href="#xpath-and-document-traversal" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="what-are-the-findall-and-xpath-methods-on-element-tree">
-<h3><a class="toc-backref" href="#id39">What are the <tt class="docutils literal"><span class="pre">findall()</span></tt> and <tt class="docutils literal"><span class="pre">xpath()</span></tt> methods on Element(Tree)?</a><a class="headerlink" href="#what-are-the-findall-and-xpath-methods-on-element-tree" title="Permalink to this headline">¶</a></h3>
-<p><tt class="docutils literal"><span class="pre">findall()</span></tt> is part of the original <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree API</a>.  It supports a
-<a class="reference external" href="http://effbot.org/zone/element-xpath.htm">simple subset of the XPath language</a>, without predicates, conditions and
-other advanced features.  It is very handy for finding specific tags in a
-tree.  Another important difference is namespace handling, which uses the
-<tt class="docutils literal"><span class="pre">{namespace}tagname</span></tt> notation.  This is not supported by XPath.  The
-findall, find and findtext methods are compatible with other ElementTree
-implementations and allow writing portable code that runs on ElementTree,
-cElementTree and lxml.etree.</p>
-<p><tt class="docutils literal"><span class="pre">xpath()</span></tt>, on the other hand, supports the complete power of the XPath
-language, including predicates, XPath functions and Python extension
-functions.  The syntax is defined by the <a class="reference external" href="http://www.w3.org/TR/xpath">XPath specification</a>.  If you need
-the expressiveness and selectivity of XPath, the <tt class="docutils literal"><span class="pre">xpath()</span></tt> method, the
-<tt class="docutils literal"><span class="pre">XPath</span></tt> class and the <tt class="docutils literal"><span class="pre">XPathEvaluator</span></tt> are the best <a class="reference external" href="performance.html#xpath">choice</a>.</p>
-</div>
-<div class="section" id="why-doesn-t-findall-support-full-xpath-expressions">
-<h3><a class="toc-backref" href="#id40">Why doesn&#8217;t <tt class="docutils literal"><span class="pre">findall()</span></tt> support full XPath expressions?</a><a class="headerlink" href="#why-doesn-t-findall-support-full-xpath-expressions" title="Permalink to this headline">¶</a></h3>
-<p>It was decided that it is more important to keep compatibility with
-<a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> to simplify code migration between the libraries.  The main
-difference compared to XPath is the <tt class="docutils literal"><span class="pre">{namespace}tagname</span></tt> notation used in
-<tt class="docutils literal"><span class="pre">findall()</span></tt>, which is not valid XPath.</p>
-<p>ElementTree and lxml.etree use the same implementation, which assures 100%
-compatibility.  Note that <tt class="docutils literal"><span class="pre">findall()</span></tt> is <a class="reference external" href="performance.html#tree-traversal">so fast</a> in lxml that a native
-implementation would not bring any performance benefits.</p>
-</div>
-<div class="section" id="how-can-i-find-out-which-namespace-prefixes-are-used-in-a-document">
-<h3><a class="toc-backref" href="#id41">How can I find out which namespace prefixes are used in a document?</a><a class="headerlink" href="#how-can-i-find-out-which-namespace-prefixes-are-used-in-a-document" title="Permalink to this headline">¶</a></h3>
-<p>You can traverse the document (<tt class="docutils literal"><span class="pre">root.iter()</span></tt>) and collect the prefix
-attributes from all Elements into a set.  However, it is unlikely that you
-really want to do that.  You do not need these prefixes, honestly.  You only
-need the namespace URIs.  All namespace comparisons use these, so feel free to
-make up your own prefixes when you use XPath expressions or extension
-functions.</p>
-<p>The only place where you might consider specifying prefixes is the
-serialization of Elements that were created through the API.  Here, you can
-specify a prefix mapping through the <tt class="docutils literal"><span class="pre">nsmap</span></tt> argument when creating the root
-Element.  Its children will then inherit this prefix for serialization.</p>
-</div>
-<div class="section" id="how-can-i-specify-a-default-namespace-for-xpath-expressions">
-<h3><a class="toc-backref" href="#id42">How can I specify a default namespace for XPath expressions?</a><a class="headerlink" href="#how-can-i-specify-a-default-namespace-for-xpath-expressions" title="Permalink to this headline">¶</a></h3>
-<p>You can&#8217;t.  In XPath, there is no such thing as a default namespace.  Just use
-an arbitrary prefix and let the namespace dictionary of the XPath evaluators
-map it to your namespace.  See also the question above.</p>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">lxml FAQ - Frequently Asked Questions</a><ul>
-<li><a class="reference internal" href="#general-questions">General Questions</a><ul>
-<li><a class="reference internal" href="#is-there-a-tutorial">Is there a tutorial?</a></li>
-<li><a class="reference internal" href="#where-can-i-find-more-documentation-about-lxml">Where can I find more documentation about lxml?</a></li>
-<li><a class="reference internal" href="#what-standards-does-lxml-implement">What standards does lxml implement?</a></li>
-<li><a class="reference internal" href="#who-uses-lxml">Who uses lxml?</a></li>
-<li><a class="reference internal" href="#what-is-the-difference-between-lxml-etree-and-lxml-objectify">What is the difference between lxml.etree and lxml.objectify?</a></li>
-<li><a class="reference internal" href="#how-can-i-make-my-application-run-faster">How can I make my application run faster?</a></li>
-<li><a class="reference internal" href="#what-about-that-trailing-text-on-serialised-elements">What about that trailing text on serialised Elements?</a></li>
-<li><a class="reference internal" href="#how-can-i-find-out-if-an-element-is-a-comment-or-pi">How can I find out if an Element is a comment or PI?</a></li>
-<li><a class="reference internal" href="#how-can-i-map-an-xml-tree-into-a-dict-of-dicts">How can I map an XML tree into a dict of dicts?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#installation">Installation</a><ul>
-<li><a class="reference internal" href="#which-version-of-libxml2-and-libxslt-should-i-use-or-require">Which version of libxml2 and libxslt should I use or require?</a></li>
-<li><a class="reference internal" href="#where-are-the-binary-builds">Where are the binary builds?</a></li>
-<li><a class="reference internal" href="#why-do-i-get-errors-about-missing-ucs4-symbols-when-installing-lxml">Why do I get errors about missing UCS4 symbols when installing lxml?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#contributing">Contributing</a><ul>
-<li><a class="reference internal" href="#why-is-lxml-not-written-in-python">Why is lxml not written in Python?</a></li>
-<li><a class="reference internal" href="#how-can-i-contribute">How can I contribute?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#bugs">Bugs</a><ul>
-<li><a class="reference internal" href="#my-application-crashes">My application crashes!</a></li>
-<li><a class="reference internal" href="#my-application-crashes-on-macos-x">My application crashes on MacOS-X!</a></li>
-<li><a class="reference internal" href="#i-think-i-have-found-a-bug-in-lxml-what-should-i-do">I think I have found a bug in lxml. What should I do?</a></li>
-<li><a class="reference internal" href="#how-do-i-know-a-bug-is-really-in-lxml-and-not-in-libxml2">How do I know a bug is really in lxml and not in libxml2?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#id1">Threading</a><ul>
-<li><a class="reference internal" href="#can-i-use-threads-to-concurrently-access-the-lxml-api">Can I use threads to concurrently access the lxml API?</a></li>
-<li><a class="reference internal" href="#does-my-program-run-faster-if-i-use-threads">Does my program run faster if I use threads?</a></li>
-<li><a class="reference internal" href="#would-my-single-threaded-program-run-faster-if-i-turned-off-threading">Would my single-threaded program run faster if I turned off threading?</a></li>
-<li><a class="reference internal" href="#why-can-t-i-reuse-xslt-stylesheets-in-other-threads">Why can&#8217;t I reuse XSLT stylesheets in other threads?</a></li>
-<li><a class="reference internal" href="#my-program-crashes-when-run-with-mod-python-pyro-zope-plone">My program crashes when run with mod_python/Pyro/Zope/Plone/...</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#parsing-and-serialisation">Parsing and Serialisation</a><ul>
-<li><a class="reference internal" href="#why-doesn-t-the-pretty-print-option-reformat-my-xml-output">Why doesn&#8217;t the <tt class="docutils literal"><span class="pre">pretty_print</span></tt> option reformat my XML output?</a></li>
-<li><a class="reference internal" href="#why-can-t-lxml-parse-my-xml-from-unicode-strings">Why can&#8217;t lxml parse my XML from unicode strings?</a></li>
-<li><a class="reference internal" href="#what-is-the-difference-between-str-xslt-doc-and-xslt-doc-write">What is the difference between str(xslt(doc)) and xslt(doc).write() ?</a></li>
-<li><a class="reference internal" href="#why-can-t-i-just-delete-parents-or-clear-the-root-node-in-iterparse">Why can&#8217;t I just delete parents or clear the root node in iterparse()?</a></li>
-<li><a class="reference internal" href="#how-do-i-output-null-characters-in-xml-text">How do I output null characters in XML text?</a></li>
-<li><a class="reference internal" href="#is-lxml-vulnerable-to-xml-bombs">Is lxml vulnerable to XML bombs?</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xpath-and-document-traversal">XPath and Document Traversal</a><ul>
-<li><a class="reference internal" href="#what-are-the-findall-and-xpath-methods-on-element-tree">What are the <tt class="docutils literal"><span class="pre">findall()</span></tt> and <tt class="docutils literal"><span class="pre">xpath()</span></tt> methods on Element(Tree)?</a></li>
-<li><a class="reference internal" href="#why-doesn-t-findall-support-full-xpath-expressions">Why doesn&#8217;t <tt class="docutils literal"><span class="pre">findall()</span></tt> support full XPath expressions?</a></li>
-<li><a class="reference internal" href="#how-can-i-find-out-which-namespace-prefixes-are-used-in-a-document">How can I find out which namespace prefixes are used in a document?</a></li>
-<li><a class="reference internal" href="#how-can-i-specify-a-default-namespace-for-xpath-expressions">How can I specify a default namespace for XPath expressions?</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/FAQ.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/Makefile b/doc/sphinx/Makefile
deleted file mode 100644 (file)
index f219a2f..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# Makefile for Sphinx LaTeX output
-
-ALLDOCS = $(basename $(wildcard *.tex))
-ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
-ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
-
-# Prefix for archive names
-ARCHIVEPRREFIX =
-# Additional LaTeX options
-LATEXOPTS =
-
-all: $(ALLPDF)
-all-pdf: $(ALLPDF)
-all-dvi: $(ALLDVI)
-all-ps: all-dvi
-       for f in *.dvi; do dvips $$f; done
-all-pdf-ja: $(wildcard *.tex)
-       ebb $(wildcard *.pdf *.png *.gif *.jpeg)
-       platex -kanji=utf8 $(LATEXOPTS) '$<'
-       platex -kanji=utf8 $(LATEXOPTS) '$<'
-       platex -kanji=utf8 $(LATEXOPTS) '$<'
-       -mendex -U -f -d '$(basename $<).dic' -s python.ist '$(basename $<).idx'
-       platex -kanji=utf8 $(LATEXOPTS) '$<'
-       platex -kanji=utf8 $(LATEXOPTS) '$<'
-       dvipdfmx '$(basename $<).dvi'
-
-zip: all-$(FMT)
-       mkdir $(ARCHIVEPREFIX)docs-$(FMT)
-       cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
-       zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT)
-       rm -r $(ARCHIVEPREFIX)docs-$(FMT)
-
-tar: all-$(FMT)
-       mkdir $(ARCHIVEPREFIX)docs-$(FMT)
-       cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
-       tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT)
-       rm -r $(ARCHIVEPREFIX)docs-$(FMT)
-
-bz2: tar
-       bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
-
-# The number of LaTeX runs is quite conservative, but I don't expect it
-# to get run often, so the little extra time won't hurt.
-%.dvi: %.tex
-       latex $(LATEXOPTS) '$<'
-       latex $(LATEXOPTS) '$<'
-       latex $(LATEXOPTS) '$<'
-       -makeindex -s python.ist '$(basename $<).idx'
-       latex $(LATEXOPTS) '$<'
-       latex $(LATEXOPTS) '$<'
-
-%.pdf: %.tex
-       pdflatex $(LATEXOPTS) '$<'
-       pdflatex $(LATEXOPTS) '$<'
-       pdflatex $(LATEXOPTS) '$<'
-       -makeindex -s python.ist '$(basename $<).idx'
-       pdflatex $(LATEXOPTS) '$<'
-       pdflatex $(LATEXOPTS) '$<'
-
-clean:
-       rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla
-
-.PHONY: all all-pdf all-dvi all-ps clean
-
diff --git a/doc/sphinx/_images/tagpython.png b/doc/sphinx/_images/tagpython.png
deleted file mode 100644 (file)
index 1bedfc8..0000000
Binary files a/doc/sphinx/_images/tagpython.png and /dev/null differ
diff --git a/doc/sphinx/_sources/FAQ.txt b/doc/sphinx/_sources/FAQ.txt
deleted file mode 100644 (file)
index f29498e..0000000
+++ /dev/null
@@ -1,989 +0,0 @@
-=====================================
-lxml FAQ - Frequently Asked Questions
-=====================================
-
-.. meta::
-  :description: Frequently Asked Questions about lxml (FAQ)
-  :keywords: lxml, lxml.etree, FAQ, frequently asked questions
-
-Frequently asked questions on lxml.  See also the notes on compatibility_ to
-ElementTree_.
-
-.. _compatibility: compatibility.html
-.. _ElementTree:   http://effbot.org/zone/element-index.htm
-.. _`build instructions`: build.html
-.. _`MacOS-X` : build.html#building-lxml-on-macos-x
-
-.. contents::
-..
-   1  General Questions
-     1.1  Is there a tutorial?
-     1.2  Where can I find more documentation about lxml?
-     1.3  What standards does lxml implement?
-     1.4  Who uses lxml?
-     1.5  What is the difference between lxml.etree and lxml.objectify?
-     1.6  How can I make my application run faster?
-     1.7  What about that trailing text on serialised Elements?
-     1.8  How can I find out if an Element is a comment or PI?
-     1.9  How can I map an XML tree into a dict of dicts?
-   2  Installation
-     2.1  Which version of libxml2 and libxslt should I use or require?
-     2.2  Where are the binary builds?
-     2.3  Why do I get errors about missing UCS4 symbols when installing lxml?
-   3  Contributing
-     3.1  Why is lxml not written in Python?
-     3.2  How can I contribute?
-   4  Bugs
-     4.1  My application crashes!
-     4.2  My application crashes on MacOS-X!
-     4.3  I think I have found a bug in lxml. What should I do?
-     4.4  How do I know a bug is really in lxml and not in libxml2?
-   5  Threading
-     5.1  Can I use threads to concurrently access the lxml API?
-     5.2  Does my program run faster if I use threads?
-     5.3  Would my single-threaded program run faster if I turned off threading?
-     5.4  Why can't I reuse XSLT stylesheets in other threads?
-     5.5  My program crashes when run with mod_python/Pyro/Zope/Plone/...
-   6  Parsing and Serialisation
-     6.1  Why doesn't the ``pretty_print`` option reformat my XML output?
-     6.2  Why can't lxml parse my XML from unicode strings?
-     6.3  What is the difference between str(xslt(doc)) and xslt(doc).write() ?
-     6.4  Why can't I just delete parents or clear the root node in iterparse()?
-     6.5  How do I output null characters in XML text?
-     6.6  Is lxml vulnerable to XML bombs?
-   7  XPath and Document Traversal
-     7.1  What are the ``findall()`` and ``xpath()`` methods on Element(Tree)?
-     7.2  Why doesn't ``findall()`` support full XPath expressions?
-     7.3  How can I find out which namespace prefixes are used in a document?
-     7.4  How can I specify a default namespace for XPath expressions?
-
-..
-  >>> import sys
-  >>> from lxml import etree as _etree
-  >>> if sys.version_info[0] >= 3:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if isinstance(s, bytes): s = s.decode("utf-8") # CR
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  ... else:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  >>> etree = etree_mock()
-
-
-General Questions
-=================
-
-Is there a tutorial?
---------------------
-
-Read the `lxml.etree Tutorial`_.  While this is still work in progress
-(just as any good documentation), it provides an overview of the most
-important concepts in ``lxml.etree``.  If you want to help out,
-improving the tutorial is a very good place to start.
-
-There is also a `tutorial for ElementTree`_ which works for
-``lxml.etree``.  The documentation of the `extended etree API`_ also
-contains many examples for ``lxml.etree``.  Fredrik Lundh's `element
-library`_ contains a lot of nice recipes that show how to solve common
-tasks in ElementTree and lxml.etree.  To learn using
-``lxml.objectify``, read the `objectify documentation`_.
-
-John Shipman has written another tutorial called `Python XML
-processing with lxml`_ that contains lots of examples.  Liza Daly
-wrote a nice article about high-performance aspects when `parsing
-large files with lxml`_.
-
-.. _`lxml.etree Tutorial`:      tutorial.html
-.. _`tutorial for ElementTree`: http://effbot.org/zone/element.htm
-.. _`extended etree API`:        api.html
-.. _`objectify documentation`:  objectify.html
-.. _`Python XML processing with lxml`: http://www.nmt.edu/tcc/help/pubs/pylxml/
-.. _`element library`:          http://effbot.org/zone/element-lib.htm
-.. _`parsing large files with lxml`: http://www.ibm.com/developerworks/xml/library/x-hiperfparse/
-
-
-Where can I find more documentation about lxml?
------------------------------------------------
-
-There is a lot of documentation on the web and also in the Python
-standard library documentation, as lxml implements the well-known
-`ElementTree API`_ and tries to follow its documentation as closely as
-possible.  The recipes in Fredrik Lundh's `element library`_ are
-generally worth taking a look at.  There are a couple of issues where
-lxml cannot keep up compatibility.  They are described in the
-compatibility_ documentation.
-
-The lxml specific extensions to the API are described by individual
-files in the ``doc`` directory of the source distribution and on `the
-web page`_.
-
-The `generated API documentation`_ is a comprehensive API reference
-for the lxml package.
-
-.. _`ElementTree API`: http://effbot.org/zone/element-index.htm
-.. _`the web page`:    http://codespeak.net/lxml/#documentation
-.. _`generated API documentation`: api/index.html
-
-
-What standards does lxml implement?
------------------------------------
-
-The compliance to XML Standards depends on the support in libxml2 and libxslt.
-Here is a quote from `http://xmlsoft.org/ <http://xmlsoft.org/>`_:
-
-  In most cases libxml2 tries to implement the specifications in a relatively
-  strictly compliant way. As of release 2.4.16, libxml2 passed all 1800+ tests
-  from the OASIS XML Tests Suite.
-
-lxml currently supports libxml2 2.6.20 or later, which has even better
-support for various XML standards.  The important ones are:
-
-* XML 1.0
-* HTML 4
-* XML namespaces
-* XML Schema 1.0
-* XPath 1.0
-* XInclude 1.0
-* XSLT 1.0
-* EXSLT
-* XML catalogs
-* canonical XML
-* RelaxNG
-* xml:id
-* xml:base
-
-Support for XML Schema is currently not 100% complete in libxml2, but
-is definitely very close to compliance.  Schematron is supported in
-two ways, the best being the original ISO Schematron reference
-implementation via XSLT.  libxml2 also supports loading documents
-through HTTP and FTP.
-
-
-Who uses lxml?
---------------
-
-As an XML library, lxml is often used under the hood of in-house
-server applications, such as web servers or applications that
-facilitate some kind of document management.  Many people who deploy
-Zope_ or Plone_ use it together with lxml.  Therefore, it is hard to
-get an idea of who uses it, and the following list of 'users and
-projects we know of' is very far from a complete list of lxml's users.
-
-Also note that the compatibility to the ElementTree library does not
-require projects to set a hard dependency on lxml - as long as they do
-not take advantage of lxml's enhanced feature set.
-
-* cssutils_, a CSS parser and toolkit, can be used with ``lxml.cssselect``
-* Deliverance_, a content theming tool
-* `Enfold Proxy 4`_, a web server accelerator with on-the-fly XSLT processing
-* Inteproxy_, a secure HTTP proxy
-* lwebstring_, an XML template engine
-* OpenXMLlib_, a library for handling OpenXML document meta data
-* Pycoon_, a WSGI web development framework based on XML pipelines
-* PyQuery_, a query framework for XML/HTML, similar to jQuery for JavaScript
-* `python-docx`_, a package for handling Microsoft's Word OpenXML format
-* Rambler_, a meta search engine that aggregates different data sources
-* rdfadict_, an RDFa parser with a simple dictionary-like interface.
-* `xupdate-processor`_, an XUpdate implementation for lxml.etree
-
-Zope3 and some of its extensions have good support for lxml:
-
-* gocept.lxml_, Zope3 interface bindings for lxml
-* z3c.rml_, an implementation of ReportLab's RML format
-* zif.sedna_, an XQuery based interface to the Sedna OpenSource XML database
-
-And don't miss the quotes by our generally happy_ users_, and other
-`sites that link to lxml`_.  As `Liza Daly`_ puts it: "Many software
-products come with the pick-two caveat, meaning that you must choose
-only two: speed, flexibility, or readability.  When used carefully,
-lxml can provide all three."
-
-.. _Zope: http://www.zope.org/
-.. _Plone: http://www.plone.org/
-.. _cssutils: http://code.google.com/p/cssutils/source/browse/trunk/examples/style.py?r=917
-.. _Deliverance: http://www.openplans.org/projects/deliverance/project-home
-.. _`Enfold Proxy 4`: http://www.enfoldsystems.com/Products/Proxy/4
-.. _gocept.lxml: http://pypi.python.org/pypi/gocept.lxml
-.. _Inteproxy: http://lists.wald.intevation.org/pipermail/inteproxy-devel/2007-February/000000.html
-.. _lwebstring: http://pypi.python.org/pypi/lwebstring
-.. _OpenXMLlib: http://permalink.gmane.org/gmane.comp.python.lxml.devel/3250
-.. _Pycoon: http://pypi.python.org/pypi/pycoon
-.. _PyQuery: http://pypi.python.org/pypi/pyquery
-.. _Rambler: http://beta.rambler.ru/srch?query=python+lxml&searchtype=web
-.. _rdfadict: http://pypi.python.org/pypi/rdfadict
-.. _z3c.rml: http://pypi.python.org/pypi/z3c.rml
-.. _zif.sedna: http://pypi.python.org/pypi/zif.sedna
-.. _`python-docx`: http://github.com/mikemaccana/python-docx
-.. _`xupdate-processor`: http://pypi.python.org/pypi/xupdate-processor
-
-.. _happy: http://thread.gmane.org/gmane.comp.python.lxml.devel/3244/focus=3244
-.. _users: http://article.gmane.org/gmane.comp.python.lxml.devel/3246
-.. _`sites that link to lxml`: http://www.google.com/search?as_lq=http:%2F%2Flxml.de%2F
-.. _`Liza Daly`: http://www.ibm.com/developerworks/xml/library/x-hiperfparse/
-
-
-What is the difference between lxml.etree and lxml.objectify?
--------------------------------------------------------------
-
-The two modules provide different ways of handling XML.  However, objectify
-builds on top of lxml.etree and therefore inherits most of its capabilities
-and a large portion of its API.
-
-* lxml.etree is a generic API for XML and HTML handling.  It aims for
-  ElementTree compatibility_ and supports the entire XML infoset.  It is well
-  suited for both mixed content and data centric XML.  Its generality makes it
-  the best choice for most applications.
-
-* lxml.objectify is a specialized API for XML data handling in a Python object
-  syntax.  It provides a very natural way to deal with data fields stored in a
-  structurally well defined XML format.  Data is automatically converted to
-  Python data types and can be manipulated with normal Python operators.  Look
-  at the examples in the `objectify documentation`_ to see what it feels like
-  to use it.
-
-  Objectify is not well suited for mixed contents or HTML documents.  As it is
-  built on top of lxml.etree, however, it inherits the normal support for
-  XPath, XSLT or validation.
-
-
-How can I make my application run faster?
------------------------------------------
-
-lxml.etree is a very fast library for processing XML.  There are, however, `a
-few caveats`_ involved in the mapping of the powerful libxml2 library to the
-simple and convenient ElementTree API.  Not all operations are as fast as the
-simplicity of the API might suggest, while some use cases can heavily benefit
-from finding the right way of doing them.  The `benchmark page`_ has a
-comparison to other ElementTree implementations and a number of tips for
-performance tweaking.  As with any Python application, the rule of thumb is:
-the more of your processing runs in C, the faster your application gets.  See
-also the section on threading_.
-
-.. _`a few caveats`:  performance.html#the-elementtree-api
-.. _`benchmark page`: performance.html
-.. _threading:        #threading
-
-
-What about that trailing text on serialised Elements?
------------------------------------------------------
-
-The ElementTree tree model defines an Element as a container with a tag name,
-contained text, child Elements and a tail text.  This means that whenever you
-serialise an Element, you will get all parts of that Element:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.XML("<root><tag>text<child/></tag>tail</root>")
-    >>> print(etree.tostring(root[0]))
-    <tag>text<child/></tag>tail
-
-Here is an example that shows why not serialising the tail would be
-even more surprising from an object point of view:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.Element("test")
-
-    >>> root.text = "TEXT"
-    >>> print(etree.tostring(root))
-    <test>TEXT</test>
-
-    >>> root.tail = "TAIL"
-    >>> print(etree.tostring(root))
-    <test>TEXT</test>TAIL
-
-    >>> root.tail = None
-    >>> print(etree.tostring(root))
-    <test>TEXT</test>
-
-Just imagine a Python list where you append an item and it doesn't
-show up when you look at the list.
-
-The ``.tail`` property is a huge simplification for the tree model as
-it avoids text nodes to appear in the list of children and makes
-access to them quick and simple.  So this is a benefit in most
-applications and simplifies many, many XML tree algorithms.
-
-However, in document-like XML (and especially HTML), the above result can be
-unexpected to new users and can sometimes require a bit more overhead.  A good
-way to deal with this is to use helper functions that copy the Element without
-its tail.  The ``lxml.html`` package also deals with this in a couple of
-places, as most HTML algorithms benefit from a tail-free behaviour.
-
-
-How can I find out if an Element is a comment or PI?
-----------------------------------------------------
-
-.. sourcecode:: pycon
-
-    >>> root = etree.XML("<?my PI?><root><!-- empty --></root>")
-
-    >>> root.tag
-    'root'
-    >>> root.getprevious().tag is etree.PI
-    True
-    >>> root[0].tag is etree.Comment
-    True
-
-
-How can I map an XML tree into a dict of dicts?
------------------------------------------------
-
-I'm glad you asked.
-
-.. sourcecode:: python
-
-    def recursive_dict(element):
-         return element.tag, \
-                dict(map(recursive_dict, element)) or element.text
-
-
-Installation
-============
-
-Which version of libxml2 and libxslt should I use or require?
--------------------------------------------------------------
-
-It really depends on your application, but the rule of thumb is: more recent
-versions contain less bugs and provide more features.
-
-* Do not use libxml2 2.6.27 if you want to use XPath (including XSLT).  You
-  will get crashes when XPath errors occur during the evaluation (e.g. for
-  unknown functions).  This happens inside the evaluation call to libxml2, so
-  there is nothing that lxml can do about it.
-
-* Try to use versions of both libraries that were released together.  At least
-  the libxml2 version should not be older than the libxslt version.
-
-* If you use XML Schema or Schematron which are still under development, the
-  most recent version of libxml2 is usually a good bet.
-
-* The same applies to XPath, where a substantial number of bugs and memory
-  leaks were fixed over time.  If you encounter crashes or memory leaks in
-  XPath applications, try a more recent version of libxml2.
-
-* For parsing and fixing broken HTML, lxml requires at least libxml2 2.6.21.
-
-* For the normal tree handling, however, any libxml2 version starting with
-  2.6.20 should do.
-
-Read the `release notes of libxml2`_ and the `release notes of libxslt`_ to
-see when (or if) a specific bug has been fixed.
-
-.. _`release notes of libxml2`: http://xmlsoft.org/news.html
-.. _`release notes of libxslt`: http://xmlsoft.org/XSLT/news.html
-
-
-Where are the binary builds?
-----------------------------
-
-Sidnei da Silva regularly contributes Windows binaries for new
-releases.  This is because two of the major problems of Microsoft
-Windows make it non-trivial for users to build lxml on this platform:
-the lack of a pre-installed standard compiler and the missing package
-management.
-
-If there is not currently a binary distribution of the most recent
-lxml release for this platform available from the Python Package Index
-(PyPI), please look through the older versions to see if they provide
-a binary build.  This is done by appending the version number to the
-PyPI URL, e.g.::
-
-         http://pypi.python.org/pypi/lxml/2.1.5
-
-Christoph Gohlke also provides `unofficial lxml binary builds for
-Windows <http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml>`_ that are
-usually very up to date.
-
-Apart from that, we generally do not provide binary builds of lxml, as
-most of the other operating systems out there can build lxml without
-problems (with the exception of `MacOS-X`_), and the sheer mass of
-variations between platforms makes it futile to provide builds for
-everyone.
-
-
-Why do I get errors about missing UCS4 symbols when installing lxml?
---------------------------------------------------------------------
-
-Most likely, you use a Python installation that was configured for internal
-use of UCS2 unicode, meaning 16-bit unicode.  The lxml egg distributions are
-generally compiled on platforms that use UCS4, a 32-bit unicode encoding, as
-this is used on the majority of platforms.  Sadly, both are not compatible, so
-the eggs can only support the one they were compiled with.
-
-This means that you have to compile lxml from sources for your system.  Note
-that you do not need Cython for this, the lxml source distribution is directly
-compilable on both platform types.  See the `build instructions`_ on how to do
-this.
-
-
-Contributing
-============
-
-Why is lxml not written in Python?
-----------------------------------
-
-It *almost* is.
-
-lxml is not written in plain Python, because it interfaces with two C
-libraries: libxml2 and libxslt.  Accessing them at the C-level is
-required for performance reasons.
-
-However, to avoid writing plain C-code and caring too much about the
-details of built-in types and reference counting, lxml is written in
-Cython_, a Python-like language that is translated into C-code.
-Chances are that if you know Python, you can write `code that Cython
-accepts`_.  Again, the C-ish style used in the lxml code is just for
-performance optimisations.  If you want to contribute, don't bother
-with the details, a Python implementation of your contribution is
-better than none.  And keep in mind that lxml's flexible API often
-favours an implementation of features in pure Python, without
-bothering with C-code at all.  For example, the ``lxml.html`` package
-is entirely written in Python.
-
-Please contact the `mailing list`_ if you need any help.
-
-.. _Cython: http://www.cython.org/
-.. _`code that Cython accepts`: http://docs.cython.org/docs/tutorial.html
-
-
-How can I contribute?
----------------------
-
-If you find something that you would like lxml to do (or do better),
-then please tell us about it on the `mailing list`_.  Patches are
-always appreciated, especially when accompanied by unit tests and
-documentation (doctests would be great).  See the ``tests``
-subdirectories in the lxml source tree (below the ``src`` directory)
-and the ReST_ `text files`_ in the ``doc`` directory.
-
-We also have a `list of missing features`_ that we would like to
-implement but didn't due to lack if time.  If *you* find the time,
-patches are very welcome.
-
-.. _ReST: http://docutils.sourceforge.net/rst.html
-.. _`text files`: http://codespeak.net/svn/lxml/trunk/doc/
-.. _`list of missing features`: http://codespeak.net/svn/lxml/trunk/IDEAS.txt
-
-Besides enhancing the code, there are a lot of places where you can help the
-project and its user base.  You can
-
-* spread the word and write about lxml.  Many users (especially new Python
-  users) have not yet heared about lxml, although our user base is constantly
-  growing.  If you write your own blog and feel like saying something about
-  lxml, go ahead and do so.  If we think your contribution or criticism is
-  valuable to other users, we may even put a link or a quote on the project
-  page.
-
-* provide code examples for the general usage of lxml or specific problems
-  solved with lxml.  Readable code is a very good way of showing how a library
-  can be used and what great things you can do with it.  Again, if we hear
-  about it, we can set a link on the project page.
-
-* work on the documentation.  The web page is generated from a set of ReST_
-  `text files`_.  It is meant both as a representative project page for lxml
-  and as a site for documenting lxml's API and usage.  If you have questions
-  or an idea how to make it more readable and accessible while you are reading
-  it, please send a comment to the `mailing list`_.
-
-* enhance the web site. We put some work into making the web site
-  usable, understandable and also easy to find, but there's always
-  things that can be done better.  You may notice that we are not
-  top-ranked when searching the web for "Python and XML", so maybe you
-  have an idea how to improve that.
-
-* help with the tutorial.  A tutorial is the most important stating point for
-  new users, so it is important for us to provide an easy to understand guide
-  into lxml.  As allo documentation, the tutorial is work in progress, so we
-  appreciate every helping hand.
-
-* improve the docstrings.  lxml uses docstrings to support Python's integrated
-  online ``help()`` function.  However, sometimes these are not sufficient to
-  grasp the details of the function in question.  If you find such a place,
-  you can try to write up a better description and send it to the `mailing
-  list`_.
-
-
-Bugs
-====
-
-My application crashes!
------------------------
-
-One of the goals of lxml is "no segfaults", so if there is no clear
-warning in the documentation that you were doing something potentially
-harmful, you have found a bug and we would like to hear about it.
-Please report this bug to the `mailing list`_.  See the section on bug
-reporting to learn how to do that.
-
-If your application (or e.g. your web container) uses threads, please
-see the FAQ section on threading_ to check if you touch on one of the
-potential pitfalls.
-
-In any case, try to reproduce the problem with the latest versions of
-libxml2 and libxslt.  From time to time, bugs and race conditions are found
-in these libraries, so a more recent version might already contain a fix for
-your problem.
-
-Remember: even if you see lxml appear in a crash stack trace, it is
-not necessarily lxml that *caused* the crash.
-
-
-My application crashes on MacOS-X!
-----------------------------------
-
-This was a common problem up to lxml 2.1.x.  Since lxml 2.2, the only
-officially supported way to use it on this platform is through a
-static build against freshly downloaded versions of libxml2 and
-libxslt.  See the build instructions for `MacOS-X`_.
-
-
-I think I have found a bug in lxml. What should I do?
------------------------------------------------------
-
-First, you should look at the `current developer changelog`_ to see if this
-is a known problem that has already been fixed in the SVN trunk since the
-release you are using.
-
-.. _`current developer changelog`: http://codespeak.net/svn/lxml/trunk/CHANGES.txt
-
-Also, the 'crash' section above has a few good advices what to try to see if
-the problem is really in lxml - and not in your setup.  Believe it or not,
-that happens more often than you might think, especially when old libraries
-or even multiple library versions are installed.
-
-You should always try to reproduce the problem with the latest
-versions of libxml2 and libxslt - and make sure they are used.
-``lxml.etree`` can tell you what it runs with:
-
-.. sourcecode:: python
-
-   import sys
-   from lxml import etree
-
-   print("%-20s: %s" % ('Python',           sys.version_info))
-   print("%-20s: %s" % ('lxml.etree',       etree.LXML_VERSION))
-   print("%-20s: %s" % ('libxml used',      etree.LIBXML_VERSION))
-   print("%-20s: %s" % ('libxml compiled',  etree.LIBXML_COMPILED_VERSION))
-   print("%-20s: %s" % ('libxslt used',     etree.LIBXSLT_VERSION))
-   print("%-20s: %s" % ('libxslt compiled', etree.LIBXSLT_COMPILED_VERSION))
-
-If you can figure that the problem is not in lxml but in the
-underlying libxml2 or libxslt, you can ask right on the respective
-mailing lists, which may considerably reduce the time to find a fix or
-work-around.  See the next question for some hints on how to do that.
-
-Otherwise, we would really like to hear about it.  Please report it to
-the `mailing list`_ so that we can fix it.  It is very helpful in this
-case if you can come up with a short code snippet that demonstrates
-your problem.  If others can reproduce and see the problem, it is much
-easier for them to fix it - and maybe even easier for you to describe
-it and get people convinced that it really is a problem to fix.
-
-It is important that you always report the version of lxml, libxml2
-and libxslt that you get from the code snippet above.  If we do not
-know the library versions you are using, we will ask back, so it will
-take longer for you to get a helpful answer.
-
-Since as a user of lxml you are likely a programmer, you might find
-`this article on bug reports`_ an interesting read.
-
-.. _`mailing list`: http://codespeak.net/mailman/listinfo/lxml-dev
-.. _`this article on bug reports`: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
-
-
-How do I know a bug is really in lxml and not in libxml2?
----------------------------------------------------------
-
-A large part of lxml's functionality is implemented by libxml2 and
-libxslt, so problems that you encounter may be in one or the other.
-Knowing the right place to ask will reduce the time it takes to fix
-the problem, or to find a work-around.
-
-Both libxml2 and libxslt come with their own command line frontends,
-namely ``xmllint`` and ``xsltproc``.  If you encounter problems with
-XSLT processing for specific stylesheets or with validation for
-specific schemas, try to run the XSLT with ``xsltproc`` or the
-validation with ``xmllint`` respectively to find out if it fails there
-as well.  If it does, please report directly to the mailing lists of
-the respective project, namely:
-
-* `libxml2 mailing list <http://mail.gnome.org/mailman/listinfo/xml>`_
-* `libxslt mailing list <http://mail.gnome.org/mailman/listinfo/xslt>`_
-
-On the other hand, everything that seems to be related to Python code,
-including custom resolvers, custom XPath functions, etc. is likely
-outside of the scope of libxml2/libxslt.  If you encounter problems
-here or you are not sure where there the problem may come from, please
-ask on the lxml mailing list first.
-
-In any case, a good explanation of the problem including some simple
-test code and some input data will help us (or the libxml2 developers)
-see and understand the problem, which largely increases your chance of
-getting help.  See the question above for a few hints on what is
-helpful here.
-
-
-Threading
-=========
-
-Can I use threads to concurrently access the lxml API?
-------------------------------------------------------
-
-Short answer: yes, if you use lxml 2.2 and later.
-
-Since version 1.1, lxml frees the GIL (Python's global interpreter
-lock) internally when parsing from disk and memory, as long as you use
-either the default parser (which is replicated for each thread) or
-create a parser for each thread yourself.  lxml also allows
-concurrency during validation (RelaxNG and XMLSchema) and XSL
-transformation.  You can share RelaxNG, XMLSchema and XSLT objects
-between threads.
-
-While you can also share parsers between threads, this will serialize
-the access to each of them, so it is better to ``.copy()`` parsers or
-to just use the default parser if you do not need any special
-configuration.  The same applies to the XPath evaluators, which use an
-internal lock to protect their prepared evaluation contexts.  It is
-therefore best to use separate evaluator instances in threads.
-
-Warning: Before lxml 2.2, and especially before 2.1, there were
-various issues when moving subtrees between different threads, or when
-applying XSLT objects from one thread to trees parsed or modified in
-another.  If you need code to run with older versions, you should
-generally avoid modifying trees in other threads than the one it was
-generated in.  Although this should work in many cases, there are
-certain scenarios where the termination of a thread that parsed a tree
-can crash the application if subtrees of this tree were moved to other
-documents.  You should be on the safe side when passing trees between
-threads if you either
-
-- do not modify these trees and do not move their elements to other
-  trees, or
-
-- do not terminate threads while the trees they parsed are still in
-  use (e.g. by using a fixed size thread-pool or long-running threads
-  in processing chains)
-
-Since lxml 2.2, even multi-thread pipelines are supported. However,
-note that it is more efficient to do all tree work inside one thread,
-than to let multiple threads work on a tree one after the other. This
-is because trees inherit state from the thread that created them,
-which must be maintained when the tree is modified inside another
-thread.
-
-
-Does my program run faster if I use threads?
---------------------------------------------
-
-Depends.  The best way to answer this is timing and profiling.
-
-The global interpreter lock (GIL) in Python serializes access to the
-interpreter, so if the majority of your processing is done in Python
-code (walking trees, modifying elements, etc.), your gain will be
-close to zero.  The more of your XML processing moves into lxml,
-however, the higher your gain.  If your application is bound by XML
-parsing and serialisation, or by very selective XPath expressions and
-complex XSLTs, your speedup on multi-processor machines can be
-substantial.
-
-See the question above to learn which operations free the GIL to support
-multi-threading.
-
-
-Would my single-threaded program run faster if I turned off threading?
-----------------------------------------------------------------------
-
-Possibly, yes.  You can see for yourself by compiling lxml entirely
-without threading support.  Pass the ``--without-threading`` option to
-setup.py when building lxml from source.  You can also build libxml2
-without pthread support (``--without-pthreads`` option), which may add
-another bit of performance.  Note that this will leave internal data
-structures entirely without thread protection, so make sure you really
-do not use lxml outside of the main application thread in this case.
-
-
-Why can't I reuse XSLT stylesheets in other threads?
-----------------------------------------------------
-
-Since later lxml 2.0 versions, you can do this.  There is some
-overhead involved as the result document needs an additional cleanup
-traversal when the input document and/or the stylesheet were created
-in other threads.  However, on a multi-processor machine, the gain of
-freeing the GIL easily covers this drawback.
-
-If you need even the last bit of performance, consider keeping (a copy
-of) the stylesheet in thread-local storage, and try creating the input
-document(s) in the same thread.  And do not forget to benchmark your
-code to see if the increased code complexity is really worth it.
-
-
-My program crashes when run with mod_python/Pyro/Zope/Plone/...
----------------------------------------------------------------
-
-These environments can use threads in a way that may not make it obvious when
-threads are created and what happens in which thread.  This makes it hard to
-ensure lxml's threading support is used in a reliable way.  Sadly, if problems
-arise, they are as diverse as the applications, so it is difficult to provide
-any generally applicable solution.  Also, these environments are so complex
-that problems become hard to debug and even harder to reproduce in a
-predictable way.  If you encounter crashes in one of these systems, but your
-code runs perfectly when started by hand, the following gives you a few hints
-for possible approaches to solve your specific problem:
-
-* make sure you use recent versions of libxml2, libxslt and lxml.  The
-  libxml2 developers keep fixing bugs in each release, and lxml also
-  tries to become more robust against possible pitfalls.  So newer
-  versions might already fix your problem in a reliable way.  Version
-  2.2 of lxml contains many improvements.
-
-* make sure the library versions you installed are really used.  Do
-  not rely on what your operating system tells you!  Print the version
-  constants in ``lxml.etree`` from within your runtime environment to
-  make sure it is the case.  This is especially a problem under
-  MacOS-X when newer library versions were installed in addition to
-  the outdated system libraries.  Please read the bugs section
-  regarding MacOS-X in this FAQ.
-
-* if you use ``mod_python``, try setting this option:
-
-      PythonInterpreter main_interpreter
-
-  There was a discussion on the mailing list about this problem:
-
-      http://comments.gmane.org/gmane.comp.python.lxml.devel/2942
-
-* compile lxml without threading support by running ``setup.py`` with the
-  ``--without-threading`` option.  While this might be slower in certain
-  scenarios on multi-processor systems, it *might* also keep your application
-  from crashing, which should be worth more to you than peek performance.
-  Remember that lxml is fast anyway, so concurrency may not even be worth it.
-
-* look out for fancy XSLT stuff like foreign document access or
-  passing in subtrees trough XSLT variables.  This might or might not
-  work, depending on your specific usage.  Again, later versions of
-  lxml and libxslt provide safer support here.
-
-* try copying trees at suspicious places in your code and working with
-  those instead of a tree shared between threads.  Note that the
-  copying must happen inside the target thread to be effective, not in
-  the thread that created the tree.  Serialising in one thread and
-  parsing in another is also a simple (and fast) way of separating
-  thread contexts.
-
-* try keeping thread-local copies of XSLT stylesheets, i.e. one per thread,
-  instead of sharing one.  Also see the question above.
-
-* you can try to serialise suspicious parts of your code with explicit thread
-  locks, thus disabling the concurrency of the runtime system.
-
-* report back on the mailing list to see if there are other ways to work
-  around your specific problems.  Do not forget to report the version numbers
-  of lxml, libxml2 and libxslt you are using (see the question on reporting
-  a bug).
-
-Note that most of these options will degrade performance and/or your
-code quality.  If you are unsure what to do, please ask on the mailing
-list.
-
-
-Parsing and Serialisation
-=========================
-
-..
-    making doctest happy:
-
-    >>> try: from StringIO import StringIO
-    ... except ImportError: from io import StringIO # Py3
-    >>> filename = StringIO("<root/>")
-
-
-Why doesn't the ``pretty_print`` option reformat my XML output?
----------------------------------------------------------------
-
-Pretty printing (or formatting) an XML document means adding white space to
-the content.  These modifications are harmless if they only impact elements in
-the document that do not carry (text) data.  They corrupt your data if they
-impact elements that contain data.  If lxml cannot distinguish between
-whitespace and data, it will not alter your data.  Whitespace is therefore
-only added between nodes that do not contain data.  This is always the case
-for trees constructed element-by-element, so no problems should be expected
-here.  For parsed trees, a good way to assure that no conflicting whitespace
-is left in the tree is the ``remove_blank_text`` option:
-
-.. sourcecode:: pycon
-
-   >>> parser = etree.XMLParser(remove_blank_text=True)
-   >>> tree = etree.parse(filename, parser)
-
-This will allow the parser to drop blank text nodes when constructing the
-tree.  If you now call a serialization function to pretty print this tree,
-lxml can add fresh whitespace to the XML tree to indent it.
-
-Note that the ``remove_blank_text`` option also uses a heuristic if it
-has no definite knowledge about the document's ignorable whitespace.
-It will keep blank text nodes that appear after non-blank text nodes
-at the same level.  This is to prevent document-style XML from
-breaking.
-
-If you want to be sure all blank text is removed, you have to use
-either a DTD to tell the parser which whitespace it can safely ignore,
-or remove the ignorable whitespace manually after parsing, e.g. by
-setting all tail text to None::
-
-.. sourcecode:: python
-
-   for element in root.iter():
-       element.tail = None
-
-Fredrik Lundh also has a Python-level function for indenting XML by
-appending whitespace to tags.  It can be found on his `element
-library`_ recipe page.
-
-
-Why can't lxml parse my XML from unicode strings?
--------------------------------------------------
-
-lxml can read Python unicode strings and even tries to support them if libxml2
-does not.  However, if the unicode string declares an XML encoding internally
-(``<?xml encoding="..."?>``), parsing is bound to fail, as this encoding is
-most likely not the real encoding used in Python unicode.  The same is true
-for HTML unicode strings that contain charset meta tags, although the problems
-may be more subtle here.  The libxml2 HTML parser may not be able to parse the
-meta tags in broken HTML and may end up ignoring them, so even if parsing
-succeeds, later handling may still fail with character encoding errors.
-
-Note that Python uses different encodings for unicode on different platforms,
-so even specifying the real internal unicode encoding is not portable between
-Python interpreters.  Don't do it.
-
-Python unicode strings with XML data or HTML data that carry encoding
-information are broken.  lxml will not parse them.  You must provide parsable
-data in a valid encoding.
-
-
-What is the difference between str(xslt(doc)) and xslt(doc).write() ?
----------------------------------------------------------------------
-
-The str() implementation of the XSLTResultTree class (a subclass of the
-ElementTree class) knows about the output method chosen in the stylesheet
-(xsl:output), write() doesn't.  If you call write(), the result will be a
-normal XML tree serialization in the requested encoding.  Calling this method
-may also fail for XSLT results that are not XML trees (e.g. string results).
-
-If you call str(), it will return the serialized result as specified by the
-XSL transform.  This correctly serializes string results to encoded Python
-strings and honours ``xsl:output`` options like ``indent``.  This almost
-certainly does what you want, so you should only use ``write()`` if you are
-sure that the XSLT result is an XML tree and you want to override the encoding
-and indentation options requested by the stylesheet.
-
-
-Why can't I just delete parents or clear the root node in iterparse()?
-----------------------------------------------------------------------
-
-The ``iterparse()`` implementation is based on the libxml2 parser.  It
-requires the tree to be intact to finish parsing.  If you delete or modify
-parents of the current node, chances are you modify the structure in a way
-that breaks the parser.  Normally, this will result in a segfault.  Please
-refer to the `iterparse section`_ of the lxml API documentation to find out
-what you can do and what you can't do.
-
-.. _`iterparse section`: parsing.html#iterparse-and-iterwalk
-
-
-How do I output null characters in XML text?
---------------------------------------------
-
-Don't.  What you would produce is not well-formed XML.  XML parsers
-will refuse to parse a document that contains null characters.  The
-right way to embed binary data in XML is using a text encoding such as
-uuencode or base64.
-
-
-Is lxml vulnerable to XML bombs?
---------------------------------
-
-This has nothing to do with lxml itself, only with the parser of
-libxml2.  Since libxml2 version 2.7, the parser imposes hard security
-limits on input documents to prevent DoS attacks with forged input
-data.  Since lxml 2.2.1, you can disable these limits with the
-``huge_tree`` parser option if you need to parse *really* large,
-trusted documents.  All lxml versions will leave these restrictions
-enabled by default.
-
-Note that libxml2 versions of the 2.6 series do not restrict their
-parser and are therefore vulnerable to DoS attacks.
-
-
-XPath and Document Traversal
-============================
-
-What are the ``findall()`` and ``xpath()`` methods on Element(Tree)?
---------------------------------------------------------------------
-
-``findall()`` is part of the original `ElementTree API`_.  It supports a
-`simple subset of the XPath language`_, without predicates, conditions and
-other advanced features.  It is very handy for finding specific tags in a
-tree.  Another important difference is namespace handling, which uses the
-``{namespace}tagname`` notation.  This is not supported by XPath.  The
-findall, find and findtext methods are compatible with other ElementTree
-implementations and allow writing portable code that runs on ElementTree,
-cElementTree and lxml.etree.
-
-``xpath()``, on the other hand, supports the complete power of the XPath
-language, including predicates, XPath functions and Python extension
-functions.  The syntax is defined by the `XPath specification`_.  If you need
-the expressiveness and selectivity of XPath, the ``xpath()`` method, the
-``XPath`` class and the ``XPathEvaluator`` are the best choice_.
-
-.. _`simple subset of the XPath language`: http://effbot.org/zone/element-xpath.htm
-.. _`XPath specification`:                 http://www.w3.org/TR/xpath
-.. _choice:                                performance.html#xpath
-
-
-Why doesn't ``findall()`` support full XPath expressions?
----------------------------------------------------------
-
-It was decided that it is more important to keep compatibility with
-ElementTree_ to simplify code migration between the libraries.  The main
-difference compared to XPath is the ``{namespace}tagname`` notation used in
-``findall()``, which is not valid XPath.
-
-ElementTree and lxml.etree use the same implementation, which assures 100%
-compatibility.  Note that ``findall()`` is `so fast`_ in lxml that a native
-implementation would not bring any performance benefits.
-
-.. _`so fast`: performance.html#tree-traversal
-
-
-How can I find out which namespace prefixes are used in a document?
--------------------------------------------------------------------
-
-You can traverse the document (``root.iter()``) and collect the prefix
-attributes from all Elements into a set.  However, it is unlikely that you
-really want to do that.  You do not need these prefixes, honestly.  You only
-need the namespace URIs.  All namespace comparisons use these, so feel free to
-make up your own prefixes when you use XPath expressions or extension
-functions.
-
-The only place where you might consider specifying prefixes is the
-serialization of Elements that were created through the API.  Here, you can
-specify a prefix mapping through the ``nsmap`` argument when creating the root
-Element.  Its children will then inherit this prefix for serialization.
-
-
-How can I specify a default namespace for XPath expressions?
-------------------------------------------------------------
-
-You can't.  In XPath, there is no such thing as a default namespace.  Just use
-an arbitrary prefix and let the namespace dictionary of the XPath evaluators
-map it to your namespace.  See also the question above.
diff --git a/doc/sphinx/_sources/api.txt b/doc/sphinx/_sources/api.txt
deleted file mode 100644 (file)
index a3aa280..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-===========================
-APIs specific to lxml.etree
-===========================
-
-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
-new API.  This page describes the major differences and a few additions to the
-main ElementTree API.
-
-For a complete reference of the API, see the `generated API
-documentation`_.
-
-Separate pages describe the support for `parsing XML`_, executing `XPath and
-XSLT`_, `validating XML`_ and interfacing with other XML tools through the
-`SAX-API`_.
-
-lxml is extremely extensible through `XPath functions in Python`_, custom
-`Python element classes`_, custom `URL resolvers`_ and even `at the C-level`_.
-
-.. _`parsing XML`: parsing.html
-.. _`XPath and XSLT`: xpathxslt.html
-.. _`validating XML`: validation.html
-.. _`SAX-API`: sax.html
-.. _`XPath functions in Python`: extensions.html
-.. _`Python element classes`: element_classes.html
-.. _`at the C-level`: capi.html
-.. _`URL resolvers`: resolvers.html
-.. _`generated API documentation`: api/index.html
-
-
-.. contents::
-.. 
-   1   lxml.etree
-   2   Other Element APIs
-   3   Trees and Documents
-   4   Iteration
-   5   Error handling on exceptions
-   6   Error logging
-   7   Serialisation
-   8   CDATA
-   9   XInclude and ElementInclude
-   10  write_c14n on ElementTree
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s=None):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-  >>> try: from collections import deque
-  ... except ImportError:
-  ...    class deque(list):
-  ...        def popleft(self): return self.pop(0)
-
-  >>> try: unicode = __builtins__["unicode"]
-  ... except (NameError, KeyError): unicode = str
-
-
-lxml.etree
-----------
-
-lxml.etree tries to follow the `ElementTree API`_ wherever it can.  There are
-however some incompatibilities (see `compatibility`_).  The extensions are
-documented here.
-
-.. _`ElementTree API`: http://effbot.org/zone/element-index.htm
-.. _`compatibility`:   compatibility.html
-
-If you need to know which version of lxml is installed, you can access the
-``lxml.etree.LXML_VERSION`` attribute to retrieve a version tuple.  Note,
-however, that it did not exist before version 1.0, so you will get an
-AttributeError in older versions.  The versions of libxml2 and libxslt are
-available through the attributes ``LIBXML_VERSION`` and ``LIBXSLT_VERSION``.
-
-The following examples usually assume this to be executed first:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-
-..
-  >>> import sys
-  >>> from lxml import etree as _etree
-  >>> if sys.version_info[0] >= 3:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if isinstance(s, bytes) and bytes([10]) in s: s = s.decode("utf-8") # CR
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  ... else:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  >>> etree = etree_mock()
-
-
-Other Element APIs
-------------------
-
-While lxml.etree itself uses the ElementTree API, it is possible to replace
-the Element implementation by `custom element subclasses`_.  This has been
-used to implement well-known XML APIs on top of lxml.  For example, lxml ships
-with a data-binding implementation called `objectify`_, which is similar to
-the `Amara bindery`_ tool.
-
-lxml.etree comes with a number of `different lookup schemes`_ to customize the
-mapping between libxml2 nodes and the Element classes used by lxml.etree.
-
-.. _`custom element subclasses`: element_classes.html
-.. _`objectify`: objectify.html
-.. _`different lookup schemes`: element_classes.html#setting-up-a-class-lookup-scheme
-.. _`Amara bindery`: http://uche.ogbuji.net/tech/4suite/amara/
-
-
-Trees and Documents
--------------------
-
-Compared to the original ElementTree API, lxml.etree has an extended tree
-model.  It knows about parents and siblings of elements:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.Element("root")
-  >>> a = etree.SubElement(root, "a")
-  >>> b = etree.SubElement(root, "b")
-  >>> c = etree.SubElement(root, "c")
-  >>> d = etree.SubElement(root, "d")
-  >>> e = etree.SubElement(d,    "e")
-  >>> b.getparent() == root
-  True
-  >>> print(b.getnext().tag)
-  c
-  >>> print(c.getprevious().tag)
-  b
-
-Elements always live within a document context in lxml.  This implies that
-there is also a notion of an absolute document root.  You can retrieve an
-ElementTree for the root node of a document from any of its elements.
-
-.. sourcecode:: pycon
-
-  >>> tree = d.getroottree()
-  >>> print(tree.getroot().tag)
-  root
-
-Note that this is different from wrapping an Element in an ElementTree.  You
-can use ElementTrees to create XML trees with an explicit root node:
-
-.. sourcecode:: pycon
-
-  >>> tree = etree.ElementTree(d)
-  >>> print(tree.getroot().tag)
-  d
-  >>> etree.tostring(tree)
-  b'<d><e/></d>'
-
-ElementTree objects are serialised as complete documents, including
-preceding or trailing processing instructions and comments.
-
-All operations that you run on such an ElementTree (like XPath, XSLT, etc.)
-will understand the explicitly chosen root as root node of a document.  They
-will not see any elements outside the ElementTree.  However, ElementTrees do
-not modify their Elements:
-
-.. sourcecode:: pycon
-
-  >>> element = tree.getroot()
-  >>> print(element.tag)
-  d
-  >>> print(element.getparent().tag)
-  root
-  >>> print(element.getroottree().getroot().tag)
-  root
-
-The rule is that all operations that are applied to Elements use either the
-Element itself as reference point, or the absolute root of the document that
-contains this Element (e.g. for absolute XPath expressions).  All operations
-on an ElementTree use its explicit root node as reference.
-
-
-Iteration
----------
-
-The ElementTree API makes Elements iterable to supports iteration over their
-children.  Using the tree defined above, we get:
-
-.. sourcecode:: pycon
-
-  >>> [ child.tag for child in root ]
-  ['a', 'b', 'c', 'd']
-
-To iterate in the opposite direction, use the ``reversed()`` function
-that exists in Python 2.4 and later.
-
-Tree traversal should use the ``element.iter()`` method:
-
-.. sourcecode:: pycon
-
-  >>> [ el.tag for el in root.iter() ]
-  ['root', 'a', 'b', 'c', 'd', 'e']
-
-lxml.etree also supports this, but additionally features an extended API for
-iteration over the children, following/preceding siblings, ancestors and
-descendants of an element, as defined by the respective XPath axis:
-
-.. sourcecode:: pycon
-
-  >>> [ child.tag for child in root.iterchildren() ]
-  ['a', 'b', 'c', 'd']
-  >>> [ child.tag for child in root.iterchildren(reversed=True) ]
-  ['d', 'c', 'b', 'a']
-  >>> [ sibling.tag for sibling in b.itersiblings() ]
-  ['c', 'd']
-  >>> [ sibling.tag for sibling in c.itersiblings(preceding=True) ]
-  ['b', 'a']
-  >>> [ ancestor.tag for ancestor in e.iterancestors() ]
-  ['d', 'root']
-  >>> [ el.tag for el in root.iterdescendants() ]
-  ['a', 'b', 'c', 'd', 'e']
-
-Note how ``element.iterdescendants()`` does not include the element
-itself, as opposed to ``element.iter()``.  The latter effectively
-implements the 'descendant-or-self' axis in XPath.
-
-All of these iterators support an additional ``tag`` keyword argument that
-filters the generated elements by tag name:
-
-.. sourcecode:: pycon
-
-  >>> [ child.tag for child in root.iterchildren(tag='a') ]
-  ['a']
-  >>> [ child.tag for child in d.iterchildren(tag='a') ]
-  []
-  >>> [ el.tag for el in root.iterdescendants(tag='d') ]
-  ['d']
-  >>> [ el.tag for el in root.iter(tag='d') ]
-  ['d']
-
-The most common way to traverse an XML tree is depth-first, which
-traverses the tree in document order.  This is implemented by the
-``.iter()`` method.  While there is no dedicated method for
-breadth-first traversal, it is almost as simple if you use the
-``collections.deque`` type from Python 2.4.
-
-.. sourcecode:: pycon
-
-    >>> root = etree.XML('<root><a><b/><c/></a><d><e/></d></root>')
-    >>> print(etree.tostring(root, pretty_print=True, encoding=unicode))
-    <root>
-      <a>
-        <b/>
-        <c/>
-      </a>
-      <d>
-        <e/>
-      </d>
-    </root>
-
-    >>> queue = deque([root])
-    >>> while queue:
-    ...    el = queue.popleft()  # pop next element
-    ...    queue.extend(el)      # append its children
-    ...    print(el.tag)
-    root
-    a
-    d
-    b
-    c
-    e
-
-See also the section on the utility functions ``iterparse()`` and
-``iterwalk()`` in the `parser documentation`_.
-
-.. _`parser documentation`: parsing.html#iterparse-and-iterwalk
-
-
-Error handling on exceptions
-----------------------------
-
-Libxml2 provides error messages for failures, be it during parsing, XPath
-evaluation or schema validation.  The preferred way of accessing them is
-through the local ``error_log`` property of the respective evaluator or
-transformer object.  See their documentation for details.
-
-However, lxml also keeps a global error log of all errors that occurred at the
-application level.  Whenever an exception is raised, you can retrieve the
-errors that occured and "might have" lead to the problem from the error log
-copy attached to the exception:
-
-.. sourcecode:: pycon
-
-  >>> etree.clear_error_log()
-  >>> broken_xml = '''
-  ... <root>
-  ...   <a>
-  ... </root>
-  ... '''
-  >>> try:
-  ...   etree.parse(StringIO(broken_xml))
-  ... except etree.XMLSyntaxError, e:
-  ...   pass # just put the exception into e
-
-..
-  >>> etree.clear_error_log()
-  >>> try:
-  ...   etree.parse(StringIO(broken_xml))
-  ... except etree.XMLSyntaxError:
-  ...   import sys; e = sys.exc_info()[1]
-
-Once you have caught this exception, you can access its ``error_log`` property
-to retrieve the log entries or filter them by a specific type, error domain or
-error level:
-
-.. sourcecode:: pycon
-
-  >>> log = e.error_log.filter_from_level(etree.ErrorLevels.FATAL)
-  >>> print(log)
-  <string>:4:8:FATAL:PARSER:ERR_TAG_NAME_MISMATCH: Opening and ending tag mismatch: a line 3 and root
-  <string>:5:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag root line 2
-
-This might look a little cryptic at first, but it is the information that
-libxml2 gives you.  At least the message at the end should give you a hint
-what went wrong and you can see that the fatal errors (FATAL) happened during
-parsing (PARSER) lines 4, column 8 and line 5, column 1 of a string (<string>,
-or the filename if available).  Here, PARSER is the so-called error domain,
-see ``lxml.etree.ErrorDomains`` for that.  You can get it from a log entry
-like this:
-
-.. sourcecode:: pycon
-
-  >>> entry = log[0]
-  >>> print(entry.domain_name)
-  PARSER
-  >>> print(entry.type_name)
-  ERR_TAG_NAME_MISMATCH
-  >>> print(entry.filename)
-  <string>
-
-There is also a convenience attribute ``last_error`` that returns the last
-error or fatal error that occurred:
-
-.. sourcecode:: pycon
-
-  >>> entry = e.error_log.last_error
-  >>> print(entry.domain_name)
-  PARSER
-  >>> print(entry.type_name)
-  ERR_TAG_NOT_FINISHED
-  >>> print(entry.filename)
-  <string>
-
-
-Error logging
--------------
-
-lxml.etree supports logging libxml2 messages to the Python stdlib logging
-module.  This is done through the ``etree.PyErrorLog`` class.  It disables the
-error reporting from exceptions and forwards log messages to a Python logger.
-To use it, see the descriptions of the function ``etree.useGlobalPythonLog``
-and the class ``etree.PyErrorLog`` for help.  Note that this does not affect
-the local error logs of XSLT, XMLSchema, etc.
-
-
-Serialisation
--------------
-
-lxml.etree has direct support for pretty printing XML output.  Functions like
-``ElementTree.write()`` and ``tostring()`` support it through a keyword
-argument:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<root><test/></root>")
-  >>> etree.tostring(root)
-  b'<root><test/></root>'
-
-  >>> print(etree.tostring(root, pretty_print=True))
-  <root>
-    <test/>
-  </root>
-
-Note the newline that is appended at the end when pretty printing the
-output.  It was added in lxml 2.0.
-
-By default, lxml (just as ElementTree) outputs the XML declaration only if it
-is required by the standard:
-
-.. sourcecode:: pycon
-
-  >>> unicode_root = etree.Element( u"t\u3120st" )
-  >>> unicode_root.text = u"t\u0A0Ast"
-  >>> etree.tostring(unicode_root, encoding="utf-8")
-  b'<t\xe3\x84\xa0st>t\xe0\xa8\x8ast</t\xe3\x84\xa0st>'
-
-  >>> print(etree.tostring(unicode_root, encoding="iso-8859-1"))
-  <?xml version='1.0' encoding='iso-8859-1'?>
-  <t&#12576;st>t&#2570;st</t&#12576;st>
-
-Also see the general remarks on `Unicode support`_.
-
-.. _`Unicode support`: parsing.html#python-unicode-strings
-
-You can enable or disable the declaration explicitly by passing another
-keyword argument for the serialisation:
-
-.. sourcecode:: pycon
-
-  >>> print(etree.tostring(root, xml_declaration=True))
-  <?xml version='1.0' encoding='ASCII'?>
-  <root><test/></root>
-
-  >>> unicode_root.clear()
-  >>> etree.tostring(unicode_root, encoding="UTF-16LE",
-  ...                              xml_declaration=False)
-  b'<\x00t\x00 1s\x00t\x00/\x00>\x00'
-
-Note that a standard compliant XML parser will not consider the last line
-well-formed XML if the encoding is not explicitly provided somehow, e.g. in an
-underlying transport protocol:
-
-.. sourcecode:: pycon
-
-  >>> notxml = etree.tostring(unicode_root, encoding="UTF-16LE",
-  ...                                       xml_declaration=False)
-  >>> root = etree.XML(notxml)        #doctest: +ELLIPSIS
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XMLSyntaxError: ...
-
-Since version 2.3, the serialisation can override the internal subset
-of the document with a user provided DOCTYPE:
-
-.. sourcecode:: pycon
-
-  >>> xml = '<!DOCTYPE root>\n<root/>'
-  >>> tree = etree.parse(StringIO(xml))
-
-  >>> print(etree.tostring(tree))
-  <!DOCTYPE root>
-  <root/>
-
-  >>> print(etree.tostring(tree,
-  ...     doctype='<!DOCTYPE root SYSTEM "/tmp/test.dtd">'))
-  <!DOCTYPE root SYSTEM "/tmp/test.dtd">
-  <root/>
-
-The content will be encoded, but otherwise copied verbatimly into the
-output stream.  It is therefore left to the user to take care for a
-correct doctype format, including the name of the root node.
-
-
-CDATA
------
-
-By default, lxml's parser will strip CDATA sections from the tree and
-replace them by their plain text content.  As real applications for
-CDATA are rare, this is the best way to deal with this issue.
-
-However, in some cases, keeping CDATA sections or creating them in a
-document is required to adhere to existing XML language definitions.
-For these special cases, you can instruct the parser to leave CDATA
-sections in the document:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser(strip_cdata=False)
-  >>> root = etree.XML('<root><![CDATA[test]]></root>', parser)
-  >>> root.text
-  'test'
-
-  >>> etree.tostring(root)
-  b'<root><![CDATA[test]]></root>'
-
-Note how the ``.text`` property does not give any indication that the
-text content is wrapped by a CDATA section.  If you want to make sure
-your data is wrapped by a CDATA block, you can use the ``CDATA()``
-text wrapper:
-
-.. sourcecode:: pycon
-
-  >>> root.text = 'test'
-
-  >>> root.text
-  'test'
-  >>> etree.tostring(root)
-  b'<root>test</root>'
-
-  >>> root.text = etree.CDATA(root.text)
-
-  >>> root.text
-  'test'
-  >>> etree.tostring(root)
-  b'<root><![CDATA[test]]></root>'
-
-
-XInclude and ElementInclude
----------------------------
-
-You can let lxml process xinclude statements in a document by calling the
-xinclude() method on a tree:
-
-.. sourcecode:: pycon
-
-  >>> data = StringIO('''\
-  ... <doc xmlns:xi="http://www.w3.org/2001/XInclude">
-  ... <foo/>
-  ... <xi:include href="doc/test.xml" />
-  ... </doc>''')
-
-  >>> tree = etree.parse(data)
-  >>> tree.xinclude()
-  >>> print(etree.tostring(tree.getroot()))
-  <doc xmlns:xi="http://www.w3.org/2001/XInclude">
-  <foo/>
-  <a xml:base="doc/test.xml"/>
-  </doc>
-
-Note that the ElementTree compatible ElementInclude_ module is also supported
-as ``lxml.ElementInclude``.  It has the additional advantage of supporting
-custom `URL resolvers`_ at the Python level.  The normal XInclude mechanism
-cannot deploy these.  If you need ElementTree compatibility or custom
-resolvers, you have to stick to the external Python module.
-
-.. _ElementInclude: http://effbot.org/zone/element-xinclude.htm
-
-
-write_c14n on ElementTree
--------------------------
-
-The lxml.etree.ElementTree class has a method write_c14n, which takes a file
-object as argument.  This file object will receive an UTF-8 representation of
-the canonicalized form of the XML, following the W3C C14N recommendation.  For
-example:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('<a><b/></a>')
-  >>> tree = etree.parse(f)
-  >>> f2 = StringIO()
-  >>> tree.write_c14n(f2)
-  >>> print(f2.getvalue().decode("utf-8"))
-  <a><b></b></a>
diff --git a/doc/sphinx/_sources/build.txt b/doc/sphinx/_sources/build.txt
deleted file mode 100644 (file)
index 3791b85..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-How to build lxml from source
-=============================
-
-To build lxml from source, you need libxml2 and libxslt properly
-installed, *including the header files*.  These are likely shipped in
-separate ``-dev`` or ``-devel`` packages like ``libxml2-dev``, which
-you must install before trying to build lxml.  The build process also
-requires setuptools_.  The lxml source distribution comes with a
-script called ``ez_setup.py`` that can be used to install them.
-
-.. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools
-
-.. contents::
-..
-   1  Cython
-   2  Github, git and hg
-   3  Setuptools
-   4  Running the tests and reporting errors
-   5  Building an egg
-   6  Building lxml on MacOS-X
-   7  Static linking on Windows
-   8  Building Debian packages from SVN sources
-
-
-Cython
-------
-
-.. _EasyInstall: http://peak.telecommunity.com/DevCenter/EasyInstall
-.. _Cython: http://www.cython.org
-
-The lxml.etree and lxml.objectify modules are written in Cython_.
-Since we distribute the Cython-generated .c files with lxml releases,
-however, you do not need Cython to build lxml from the normal release
-sources.  We even encourage you to *not install Cython* for a normal
-release build, as the generated C code can vary quite heavily between
-Cython versions, which may or may not generate correct code for lxml.
-The pre-generated release sources were tested and therefore are known
-to work.
-
-So, if you want a reliable build of lxml, we suggest to a) use a
-source release of lxml and b) disable or uninstall Cython for the
-build.
-
-*Only* if you are interested in building lxml from a checkout of the
-developer sources (e.g. to test a bug fix that has not been release
-yet) or if you want to be an lxml developer, then you do need a
-working Cython installation.  You can use EasyInstall_ to install it::
-
-    easy_install "Cython>=0.14.1"
-
-lxml currently requires Cython 0.14.1, later release versions should
-work as well.
-
-
-Github, git and hg
--------------------
-
-The lxml package is developed in a repository on Github_ using
-Mercurial_ and the `hg-git`_ plugin.  You can retrieve the current
-developer version using::
-
-  hg clone git://github.com/lxml/lxml.git lxml
-
-This will create a directory ``lxml`` and download the source into it,
-including the complete development history.  Don't be afraid, the
-download is fairly quick.  You can also browse the `lxml repository`_
-through the web.
-
-.. _Github: https://github.com/lxml/
-.. _Mercurial: http://mercurial.selenic.com/
-.. _`hg-git`: http://hg-git.github.com/
-.. _`lxml repository`: https://github.com/lxml/lxml
-.. _`source tar-ball`: https://github.com/lxml/lxml/tarball/master
-
-
-Setuptools
-----------
-
-Usually, building lxml is done through setuptools.  Clone the source
-repository as described above (or download the `source tar-ball`_ and
-unpack it) and then type::
-
-  python setup.py build
-
-or::
-
-  python setup.py bdist_egg
-
-If you want to test lxml from the source directory, it is better to build it
-in-place like this::
-
-  python setup.py  build_ext -i
-
-or, in Unix-like environments::
-
-  make
-
-If you get errors about missing header files (e.g. ``Python.h`` or
-``libxml/xmlversion.h``) then you need to make sure the development
-packages of Python, libxml2 and libxslt are properly installed.  On
-Linux distributions, they are usually called something like
-``libxml2-dev`` or ``libxslt-devel``.  If these packages were
-installed in non-standard places, try passing the following option to
-setup.py to make sure the right config is found::
-
-  python setup.py build --with-xslt-config=/path/to/xslt-config
-
-If this doesn't help, you may have to add the location of the header
-files to the include path like::
-
-  python setup.py build_ext -i  -I /usr/include/libxml2
-
-where the file is in ``/usr/include/libxml2/libxml/xmlversion.h``
-
-To use lxml.etree in-place, you can place lxml's ``src`` directory on your
-Python module search path (PYTHONPATH) and then import ``lxml.etree`` to play
-with it::
-
-  # cd lxml
-  # PYTHONPATH=src python
-  Python 2.5.1
-  Type "help", "copyright", "credits" or "license" for more information.
-  >>> from lxml import etree
-  >>>
-
-To make sure everything gets recompiled cleanly after changes, you can
-run ``make clean`` or delete the file ``src/lxml/etree.c``.  Distutils
-do not automatically pick up changes that affect files other than the
-main file ``src/lxml/etree.pyx``.
-
-
-Running the tests and reporting errors
---------------------------------------
-
-The source distribution (tgz) and the source repository contain a test
-suite for lxml.  You can run it from the top-level directory::
-
-  python test.py
-
-Note that the test script only tests the in-place build (see distutils
-building above), as it searches the ``src`` directory.  You can use the
-following one-step command to trigger an in-place build and test it::
-
-  make test
-
-This also runs the ElementTree and cElementTree compatibility tests.  To call
-them separately, make sure you have lxml on your PYTHONPATH first, then run::
-
-  python selftest.py
-
-and::
-
-  python selftest2.py
-
-If the tests give failures, errors, or worse, segmentation faults, we'd really
-like to know.  Please contact us on the `mailing list`_, and please specify
-the version of lxml, libxml2, libxslt and Python you were using, as well as
-your operating system type (Linux, Windows, MacOs, ...).
-
-.. _`mailing list`: http://codespeak.net/mailman/listinfo/lxml-dev
-
-
-Building an egg
----------------
-
-This is the procedure to make an lxml egg for your platform (assuming
-that you have setuptools_ installed):
-
-* Download the lxml-x.y.tar.gz release.  This contains the pregenerated C so
-  that you can be sure you build exactly from the release sources.  Unpack
-  them and cd into the resulting directory.
-
-* python setup.py build
-
-* If you're on a unixy platform, cd into ``build/lib.your.platform`` and strip
-  any ``.so`` file you find there.  This reduces the size of the egg
-  considerably.
-
-* ``python setup.py bdist_egg``
-
-This will put the egg into the ``dist`` directory.
-
-
-Building lxml on MacOS-X
-------------------------
-
-Apple regularly ships new system releases with horribly outdated
-system libraries.  This is specifically the case for libxml2 and
-libxslt, where the system provided versions are too old to build lxml.
-
-While the Unix environment in MacOS-X makes it relatively easy to
-install Unix/Linux style package management tools and new software, it
-actually seems to be hard to get libraries set up for exclusive usage
-that MacOS-X ships in an older version.  Alternative distributions
-(like macports) install their libraries in addition to the system
-libraries, but the compiler and the runtime loader on MacOS still sees
-the system libraries before the new libraries.  This can lead to
-undebuggable crashes where the newer library seems to be loaded but
-the older system library is used.
-
-Apple discourages static building against libraries, which would help
-working around this problem.  Apple does not ship static library
-binaries with its system and several package management systems follow
-this decision.  Therefore, building static binaries requires building
-the dependencies first.  The ``setup.py`` script does this
-automatically when you call it like this::
-
-  python setup.py build --static-deps
-
-This will download and build the latest versions of libxml2 and
-libxslt from the official FTP download site.  If you want to use
-specific versions, or want to prevent any online access, you can
-download both ``tar.gz`` release files yourself, place them into a
-subdirectory ``libs`` in the lxml distribution, and call ``setup.py``
-with the desired target versions like this::
-
-  python setup.py build --static-deps \
-         --libxml2-version=2.7.3 \
-         --libxslt-version=1.1.24 \
-
-  sudo python setup.py install
-
-Instead of ``build``, you can use any target, like ``bdist_egg`` if
-you want to use setuptools to build an installable egg.
-
-Note that this also works with EasyInstall_.  Since you can't pass
-command line options in this case, you have to use an environment
-variable instead::
-
-  STATIC_DEPS=true easy_install lxml
-
-Some machines may require an additional run with "sudo" to install the
-package into the Python package directory::
-
-  STATIC_DEPS=true sudo easy_install lxml
-
-The ``STATICBUILD`` environment variable is handled equivalently to
-the ``STATIC_DEPS`` variable, but is used by some other extension
-packages, too.
-
-
-Static linking on Windows
--------------------------
-
-Most operating systems have proper package management that makes installing
-current versions of libxml2 and libxslt easy.  The most famous exception is
-Microsoft Windows, which entirely lacks these capabilities.  It can therefore
-be interesting to statically link the external libraries into lxml.etree to
-avoid having to install them separately.
-
-Download lxml and all required libraries to the same directory.  The iconv,
-libxml2, libxslt, and zlib libraries are all available from the ftp site
-ftp://ftp.zlatkovic.com/pub/libxml/.
-
-Your directory should now have the following files in it (although most likely
-different versions)::
-
-  iconv-1.9.1.win32.zip
-  libxml2-2.6.23.win32.zip
-  libxslt-1.1.15.win32.zip
-  lxml-1.0.0.tgz
-  zlib-1.2.3.win32.zip
-
-Now extract each of those files in the *same* directory.  This should give you
-something like this::
-
-  iconv-1.9.1.win32/
-  iconv-1.9.1.win32.zip
-  libxml2-2.6.23.win32/
-  libxml2-2.6.23.win32.zip
-  libxslt-1.1.15.win32/
-  libxslt-1.1.15.win32.zip
-  lxml-1.0.0/
-  lxml-1.0.0.tgz
-  zlib-1.2.3.win32/
-  zlib-1.2.3.win32.zip
-
-Go to the lxml directory and edit the file ``setup.py``.  There should
-be a section near the top that looks like this::
-
-  STATIC_INCLUDE_DIRS = []
-  STATIC_LIBRARY_DIRS = []
-  STATIC_CFLAGS = []
-
-Change this section to something like this, but take care to use the correct
-version numbers::
-
-  STATIC_INCLUDE_DIRS = [
-         "..\\libxml2-2.6.23.win32\\include",
-         "..\\libxslt-1.1.15.win32\\include",
-         "..\\zlib-1.2.3.win32\\include",
-         "..\\iconv-1.9.1.win32\\include"
-         ]
-
-  STATIC_LIBRARY_DIRS = [
-         "..\\libxml2-2.6.23.win32\\lib",
-         "..\\libxslt-1.1.15.win32\\lib",
-         "..\\zlib-1.2.3.win32\\lib",
-         "..\\iconv-1.9.1.win32\\lib"
-         ]
-
-  STATIC_CFLAGS = []
-
-Add any CFLAGS you might consider useful to the third list.  Now you
-should be able to pass the ``--static`` option to setup.py and
-everything should work well.  Try calling::
-
-  python setup.py bdist_wininst --static
-
-This will create a windows installer in the ``pkg`` directory.
-
-
-Building Debian packages from SVN sources
------------------------------------------
-
-`Andreas Pakulat`_ proposed the following approach.
-
-.. _`Andreas Pakulat`: http://codespeak.net/pipermail/lxml-dev/2006-May/001254.html
-
-* ``apt-get source lxml``
-* remove the unpacked directory
-* tar.gz the lxml SVN version and replace the orig.tar.gz that lies in the
-  directory
-* check md5sum of created tar.gz file and place new sum and size in dsc file
-* do ``dpkg-source -x lxml-[VERSION].dsc`` and cd into the newly created directory
-* run ``dch -i`` and add a comment like "use trunk version", this will
-  increase the debian version number so apt/dpkg won't get confused
-* run ``dpkg-buildpackage -rfakeroot -us -uc`` to build the package
-
-In case ``dpkg-buildpackage`` tells you that some dependecies are missing, you
-can either install them manually or run ``apt-get build-dep lxml``.
-
-That will give you .deb packages in the parent directory which can be
-installed using ``dpkg -i``.
diff --git a/doc/sphinx/_sources/capi.txt b/doc/sphinx/_sources/capi.txt
deleted file mode 100644 (file)
index 4b9c808..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-==============================
-The public C-API of lxml.etree
-==============================
-
-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,
-without going through the Python API.
-
-The API is described in the file `etreepublic.pxd`_, which is directly
-c-importable by extension modules implemented in Pyrex_ or Cython_.
-
-.. _`etreepublic.pxd`: http://codespeak.net/svn/lxml/trunk/src/lxml/etreepublic.pxd
-.. _Cython: http://www.cython.org
-.. _Pyrex: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/
-
-.. contents::
-..
-   1  Writing external modules in Cython
-   2  Writing external modules in C
-
-
-Writing external modules in Cython
-----------------------------------
-
-This is the easiest way of extending lxml at the C level.  A Cython_
-(or Pyrex_) module should start like this::
-
-    # My Cython extension
-
-    # import the public functions and classes of lxml.etree
-    cimport etreepublic as cetree
-
-    # import the lxml.etree module in Python
-    cdef object etree
-    from lxml import etree
-
-    # initialize the access to the C-API of lxml.etree
-    cetree.import_lxml__etree()
-
-From this line on, you can access all public functions of lxml.etree
-from the ``cetree`` namespace like this::
-
-    # build a tag name from namespace and element name
-    py_tag = cetree.namespacedNameFromNsName("http://some/url", "myelement")
-
-Public lxml classes are easily subclassed.  For example, to implement
-and set a new default element class, you can write Cython code like
-the following::
-
-    from etreepublic cimport ElementBase
-    cdef class NewElementClass(ElementBase):
-         def set_value(self, myval):
-             self.set("my_attribute", myval)
-
-    etree.set_element_class_lookup(
-         etree.DefaultElementClassLookup(element=NewElementClass))
-
-
-Writing external modules in C
------------------------------
-
-If you really feel like it, you can also interface with lxml.etree straight
-from C code.  All you have to do is include the header file for the public
-API, import the ``lxml.etree`` module and then call the import function:
-
-.. sourcecode:: c
-
-    /* My C extension */
-
-    /* common includes */
-    #include "Python.h"
-    #include "stdio.h"
-    #include "string.h"
-    #include "stdarg.h"
-    #include "libxml/xmlversion.h"
-    #include "libxml/encoding.h"
-    #include "libxml/hash.h"
-    #include "libxml/tree.h"
-    #include "libxml/xmlIO.h"
-    #include "libxml/xmlsave.h"
-    #include "libxml/globals.h"
-    #include "libxml/xmlstring.h"
-
-    /* lxml.etree specific includes */
-    #include "lxml-version.h"
-    #include "etree_defs.h"
-    #include "etree.h"
-
-    /* setup code */
-    import_lxml__etree()
-
-Note that including ``etree.h`` does not automatically include the
-header files it requires.  Note also that the above list of common
-includes may not be sufficient.
diff --git a/doc/sphinx/_sources/compatibility.txt b/doc/sphinx/_sources/compatibility.txt
deleted file mode 100644 (file)
index e23d181..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-=======================================
-ElementTree compatibility of lxml.etree
-=======================================
-
-A lot of care has been taken to ensure compatibility between etree and
-ElementTree.  Nonetheless, some differences and incompatibilities exist:
-
-* Importing etree is obviously different; etree uses a lower-case
-  package name, while ElementTree uses a combination of upper-case and
-  lower case in imports:
-
-  .. sourcecode:: python
-
-    # etree
-    from lxml.etree import Element
-
-    # ElementTree
-    from elementtree.ElementTree import Element
-
-    # ElementTree in the Python 2.5 standard library
-    from xml.etree.ElementTree import Element
-
-  When switching over code from ElementTree to lxml.etree, and you're using
-  the package name prefix 'ElementTree', you can do the following:
-
-  .. sourcecode:: python
-
-    # instead of
-    from elementtree import ElementTree
-    # use
-    from lxml import etree as ElementTree
-
-* lxml.etree offers a lot more functionality, such as XPath, XSLT, Relax NG,
-  and XML Schema support, which (c)ElementTree does not offer.
-
-* etree has a different idea about Python unicode strings than ElementTree.
-  In most parts of the API, ElementTree uses plain strings and unicode strings
-  as what they are.  This includes Element.text, Element.tail and many other
-  places.  However, the ElementTree parsers assume by default that any string
-  (`str` or `unicode`) contains ASCII data.  They raise an exception if
-  strings do not match the expected encoding.
-
-  etree has the same idea about plain strings (`str`) as ElementTree.  For
-  unicode strings, however, etree assumes throughout the API that they are
-  Python unicode encoded strings rather than byte data.  This includes the
-  parsers.  It is therefore perfectly correct to pass XML unicode data into
-  the etree parsers in form of Python unicode strings.  It is an error, on the
-  other hand, if unicode strings specify an encoding in their XML declaration,
-  as this conflicts with the characteristic encoding of Python unicode
-  strings.
-
-* ElementTree allows you to place an Element in two different trees at the
-  same time.  Thus, this:
-
-  .. sourcecode:: python
-
-    a = Element('a')
-    b = SubElement(a, 'b')
-    c = Element('c')
-    c.append(b)
-
-  will result in the following tree a:
-
-  .. sourcecode:: xml
-
-    <a><b /></a>
-
-  and the following tree c:
-
-  .. sourcecode:: xml
-
-    <c><b /></c>
-
-  In lxml, this behavior is different, because lxml is built on top of a tree
-  that maintains parent relationships for elements (like W3C DOM).  This means
-  an element can only exist in a single tree at the same time.  Adding an
-  element in some tree to another tree will cause this element to be moved.
-
-  So, for tree a we will get:
-
-  .. sourcecode:: xml
-
-    <a></a>
-
-  and for tree c we will get:
-
-  .. sourcecode:: xml
-
-    <c><b/></c>
-
-  Unfortunately this is a rather fundamental difference in behavior, which is
-  hard to change.  It won't affect some applications, but if you want to port
-  code you must unfortunately make sure that it doesn't affect yours.
-
-* etree allows navigation to the parent of a node by the ``getparent()``
-  method and to the siblings by calling ``getnext()`` and ``getprevious()``.
-  This is not possible in ElementTree as the underlying tree model does not
-  have this information.
-
-* When trying to set a subelement using __setitem__ that is in fact not an
-  Element but some other object, etree raises a TypeError, and ElementTree
-  raises an AssertionError.  This also applies to some other places of the
-  API.  In general, etree tries to avoid AssertionErrors in favour of being
-  more specific about the reason for the exception.
-
-* When parsing fails in ``iterparse()``, ElementTree up to version
-  1.2.x raises a low-level ``ExpatError`` instead of a ``SyntaxError``
-  as the other parsers.  Both lxml and ElementTree 1.3 raise a
-  ``ParseError`` for parser errors.
-
-* The ``iterparse()`` function in lxml is implemented based on the libxml2
-  parser and tree generator.  This means that modifications of the document
-  root or the ancestors of the current element during parsing can irritate the
-  parser and even segfault.  While this is not a problem in the Python object
-  structure used by ElementTree, the C tree underlying lxml suffers from it.
-  The golden rule for ``iterparse()`` on lxml therefore is: do not touch
-  anything that will have to be touched again by the parser later on.  See the
-  lxml parser documentation on this.
-
-* ElementTree ignores comments and processing instructions when parsing XML,
-  while etree will read them in and treat them as Comment or
-  ProcessingInstruction elements respectively.  This is especially visible
-  where comments are found inside text content, which is then split by the
-  Comment element.
-
-  You can disable this behaviour by passing the boolean ``remove_comments``
-  and/or ``remove_pis`` keyword arguments to the parser you use.  For
-  convenience and to support portable code, you can also use the
-  ``etree.ETCompatXMLParser`` instead of the default ``etree.XMLParser``.  It
-  tries to provide a default setup that is as close to the ElementTree parser
-  as possible.
-
-* The ``TreeBuilder`` class of ``lxml.etree`` uses a different
-  signature for the ``start()`` method.  It accepts an additional
-  argument ``nsmap`` to propagate the namespace declarations of an
-  element in addition to its own namespace.  To assure compatibility
-  with ElementTree (which does not support this argument), lxml checks
-  if the method accepts 3 arguments before calling it, and otherwise
-  drops the namespace mapping.  This should work with most existing
-  ElementTree code, although there may still be conflicting cases.
-
-* ElementTree 1.2 has a bug when serializing an empty Comment (no text
-  argument given) to XML, etree serializes this successfully.
-
-* ElementTree adds whitespace around comments on serialization, lxml does
-  not.  This means that a comment text "text" that ElementTree serializes as
-  "<!-- text -->" will become "<!--text-->" in lxml.
-
-* When the string '*' is used as tag filter in the ``Element.getiterator()``
-  method, ElementTree returns all elements in the tree, including comments and
-  processing instructions. lxml.etree only returns real Elements, i.e. tree
-  nodes that have a string tag name.  Without a filter, both libraries iterate
-  over all nodes.
-
-  Note that currently only lxml.etree supports passing the ``Element`` factory
-  function as filter to select only Elements.  Both libraries support passing
-  the ``Comment`` and ``ProcessingInstruction`` factories to select the
-  respective tree nodes.
-
-* ElementTree merges the target of a processing instruction into ``PI.text``,
-  while lxml.etree puts it into the ``.target`` property and leaves it out of
-  the ``.text`` property.  The ``pi.text`` in ElementTree therefore
-  correspondents to ``pi.target + " " + pi.text`` in lxml.etree.
-
-* Because etree is built on top of libxml2, which is namespace prefix aware,
-  etree preserves namespaces declarations and prefixes while ElementTree tends
-  to come up with its own prefixes (ns0, ns1, etc).  When no namespace prefix
-  is given, however, etree creates ElementTree style prefixes as well.
-
-* etree has a 'prefix' attribute (read-only) on elements giving the Element's
-  prefix, if this is known, and None otherwise (in case of no namespace at
-  all, or default namespace).
-
-* etree further allows passing an 'nsmap' dictionary to the Element and
-  SubElement element factories to explicitly map namespace prefixes to
-  namespace URIs.  These will be translated into namespace declarations on
-  that element.  This means that in the probably rare case that you need to
-  construct an attribute called 'nsmap', you need to be aware that unlike in
-  ElementTree, you cannot pass it as a keyword argument to the Element and
-  SubElement factories directly.
-
-* ElementTree allows QName objects as attribute values and resolves their
-  prefix on serialisation (e.g. an attribute value ``QName("{myns}myname")``
-  becomes "p:myname" if "p" is the namespace prefix of "myns").  lxml.etree
-  also allows you to set attribute values from QName instances (and also .text
-  values), but it resolves their prefix immediately and stores the plain text
-  value.  So, if prefixes are modified later on, e.g. by moving a subtree to a
-  different tree (which reassigns the prefix mappings), the text values will
-  not be updated and you might end up with an undefined prefix.
-
-* etree elements can be copied using ``copy.deepcopy()`` and ``copy.copy()``,
-  just like ElementTree's.  However, ``copy.copy()`` does *not* create a
-  shallow copy where elements are shared between trees, as this makes no sense
-  in the context of libxml2 trees.  Note that lxml can deep-copy trees
-  considerably faster than ElementTree, so a deep copy might still be fast
-  enough to replace a shallow copy in your case.
diff --git a/doc/sphinx/_sources/cssselect.txt b/doc/sphinx/_sources/cssselect.txt
deleted file mode 100644 (file)
index a5bffdf..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-==============
-lxml.cssselect
-==============
-
-lxml supports a number of interesting languages for tree traversal and element
-selection.  The most important is obviously XPath_, but there is also
-ObjectPath_ in the `lxml.objectify`_ module.  The newest child of this family
-is `CSS selection`_, which is implemented in the new ``lxml.cssselect`` module.
-
-.. _XPath: xpathxslt.html#xpath
-.. _ObjectPath: objectify.html#objectpath
-.. _`lxml.objectify`: objectify.html
-.. _`CSS selection`: http://www.w3.org/TR/CSS21/selector.html
-
-.. contents::
-..
-   1  The CSSSelector class
-   2  CSS Selectors
-     2.1  Namespaces
-   3  Limitations
-
-
-The CSSSelector class
-=====================
-
-The most important class in the ``cssselect`` module is ``CSSSelector``.  It
-provides the same interface as the XPath_ class, but accepts a CSS selector
-expression as input:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.cssselect import CSSSelector
-    >>> sel = CSSSelector('div.content')
-    >>> sel  #doctest: +ELLIPSIS
-    <CSSSelector ... for 'div.content'>
-    >>> sel.css
-    'div.content'
-
-The selector actually compiles to XPath, and you can see the
-expression by inspecting the object:
-
-.. sourcecode:: pycon
-
-    >>> sel.path
-    "descendant-or-self::div[contains(concat(' ', normalize-space(@class), ' '), ' content ')]"
-
-To use the selector, simply call it with a document or element
-object:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.etree import fromstring
-    >>> h = fromstring('''<div id="outer">
-    ...   <div id="inner" class="content body">
-    ...       text
-    ...   </div></div>''')
-    >>> [e.get('id') for e in sel(h)]
-    ['inner']
-
-
-CSS Selectors
-=============
-
-This libraries attempts to implement CSS selectors `as described in
-the w3c specification
-<http://www.w3.org/TR/2001/CR-css3-selectors-20011113/>`_.  Many of
-the pseudo-classes do not apply in this context, including all
-`dynamic pseudo-classes
-<http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#dynamic-pseudos>`_.
-In particular these will not be available:
-
-* link state: ``:link``, ``:visited``, ``:target``
-* actions: ``:hover``, ``:active``, ``:focus``
-* UI states: ``:enabled``, ``:disabled``, ``:indeterminate``
-  (``:checked`` and ``:unchecked`` *are* available)
-
-Also, none of the pseudo-elements apply, because the selector only
-returns elements and pseudo-elements select portions of text, like
-``::first-line``.
-
-
-Namespaces
-==========
-
-In CSS you can use ``namespace-prefix|element``, similar to
-``namespace-prefix:element`` in an XPath expression.  In fact, it maps
-one-to-one, and the same rules are used to map namespace prefixes to
-namespace URIs.
-
-
-Limitations
-===========
-
-These applicable pseudoclasses are not yet implemented:
-
-* ``:lang(language)``
-* ``:root``
-* ``*:first-of-type``, ``*:last-of-type``, ``*:nth-of-type``,
-  ``*:nth-last-of-type``, ``*:only-of-type``.  All of these work when
-  you specify an element type, but not with ``*``
-
-Unlike XPath you cannot provide parameters in your expressions -- all
-expressions are completely static.
-
-XPath has underspecified string quoting rules (there seems to be no
-string quoting at all), so if you use expressions that contain
-characters that requiring quoting you might have problems with the
-translation from CSS to XPath.
diff --git a/doc/sphinx/_sources/element_classes.txt b/doc/sphinx/_sources/element_classes.txt
deleted file mode 100644 (file)
index c6bcb6d..0000000
+++ /dev/null
@@ -1,537 +0,0 @@
-====================================
-Using custom Element classes in lxml
-====================================
-
-lxml has very sophisticated support for custom Element classes.  You
-can provide your own classes for Elements and have lxml use them by
-default for all elements generated by a specific parser, only for a
-specific tag name in a specific namespace or even for an exact element
-at a specific position in the tree.
-
-Custom Elements must inherit from the ``lxml.etree.ElementBase`` class, which
-provides the Element interface for subclasses:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-
-  >>> class honk(etree.ElementBase):
-  ...    def honking(self):
-  ...       return self.get('honking') == 'true'
-  ...    honking = property(honking)
-
-This defines a new Element class ``honk`` with a property ``honking``.
-
-The following document describes how you can make lxml.etree use these
-custom Element classes.
-
-.. contents::
-..
-   1  Background on Element proxies
-   2  Element initialization
-   3  Setting up a class lookup scheme
-     3.1  Default class lookup
-     3.2  Namespace class lookup
-     3.3  Attribute based lookup
-     3.4  Custom element class lookup
-     3.5  Tree based element class lookup in Python
-   4  Generating XML with custom classes
-   5  Implementing namespaces
-
-..
-  >>> try: _ = unicode
-  ... except NameError: unicode = str
-
-
-Background on Element proxies
-=============================
-
-Being based on libxml2, lxml.etree holds the entire XML tree in a C
-structure.  To communicate with Python code, it creates Python proxy
-objects for the XML elements on demand.
-
-   .. image:: proxies.png
-
-The mapping between C elements and Python Element classes is
-completely configurable.  When you ask lxml.etree for an Element by
-using its API, it will instantiate your classes for you.  All you have
-to do is tell lxml which class to use for which kind of Element.  This
-is done through a class lookup scheme, as described in the sections
-below.
-
-
-Element initialization
-======================
-
-There is one thing to know up front.  Element classes *must not* have
-an ``__init___`` or ``__new__`` method.  There should not be any
-internal state either, except for the data stored in the underlying
-XML tree.  Element instances are created and garbage collected at
-need, so there is normally no way to predict when and how often a
-proxy is created for them.  Even worse, when the ``__init__`` method
-is called, the object is not even initialized yet to represent the XML
-tag, so there is not much use in providing an ``__init__`` method in
-subclasses.
-
-Most use cases will not require any class initialisation or proxy
-state, so you can content yourself with skipping to the next section
-for now.  However, if you really need to set up your element class on
-instantiation, or need a way to persistently store state in the proxy
-instances instead of the XML tree, here is a way to do so.
-
-There is one important guarantee regarding Element proxies.  Once a
-proxy has been instantiated, it will keep alive as long as there is a
-Python reference to it, and any access to the XML element in the tree
-will return this very instance.  Therefore, if you need to store local
-state in a custom Element class (which is generally discouraged), you
-can do so by keeping the Elements in a tree alive.  If the tree
-doesn't change, you can simply do this:
-
-.. sourcecode:: python
-
-  proxy_cache = list(root.iter())
-
-or
-
-.. sourcecode:: python
-
-  proxy_cache = set(root.iter())
-
-or use any other suitable container.  Note that you have to keep this
-cache manually up to date if the tree changes, which can get tricky in
-cases.
-
-For proxy initialisation, ElementBase classes have an ``_init()``
-method that can be overridden, as oppose to the normal ``__init__()``
-method.  It can be used to modify the XML tree, e.g. to construct
-special children or verify and update attributes.
-
-The semantics of ``_init()`` are as follows:
-
-* It is called once on Element class instantiation time.  That is,
-  when a Python representation of the element is created by lxml.  At
-  that time, the element object is completely initialized to represent
-  a specific XML element within the tree.
-
-* The method has complete access to the XML tree.  Modifications can be done
-  in exactly the same way as anywhere else in the program.
-
-* Python representations of elements may be created multiple times during the
-  lifetime of an XML element in the underlying C tree.  The ``_init()`` code
-  provided by subclasses must take special care by itself that multiple
-  executions either are harmless or that they are prevented by some kind of
-  flag in the XML tree.  The latter can be achieved by modifying an attribute
-  value or by removing or adding a specific child node and then verifying this
-  before running through the init process.
-
-* Any exceptions raised in ``_init()`` will be propagated throught the API
-  call that lead to the creation of the Element.  So be careful with the code
-  you write here as its exceptions may turn up in various unexpected places.
-
-
-Setting up a class lookup scheme
-================================
-
-The first thing to do when deploying custom element classes is to register a
-class lookup scheme on a parser.  lxml.etree provides quite a number of
-different schemes that also support class lookup based on namespaces or
-attribute values.  Most lookups support fallback chaining, which allows the
-next lookup mechanism to take over when the previous one fails to find a
-class.
-
-For example, setting the ``honk`` Element as a default element class
-for a parser works as follows:
-
-.. sourcecode:: pycon
-
-  >>> parser_lookup = etree.ElementDefaultClassLookup(element=honk)
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(parser_lookup)
-
-There is one drawback of the parser based scheme: the ``Element()`` factory
-does not know about your specialised parser and creates a new document that
-deploys the default parser:
-
-.. sourcecode:: pycon
-
-  >>> el = etree.Element("root")
-  >>> print(isinstance(el, honk))
-  False
-
-You should therefore avoid using this factory function in code that
-uses custom classes.  The ``makeelement()`` method of parsers provides
-a simple replacement:
-
-.. sourcecode:: pycon
-
-  >>> el = parser.makeelement("root")
-  >>> print(isinstance(el, honk))
-  True
-
-If you use a parser at the module level, you can easily redirect a module
-level ``Element()`` factory to the parser method by adding code like this:
-
-.. sourcecode:: pycon
-
-  >>> module_level_parser = etree.XMLParser()
-  >>> Element = module_level_parser.makeelement
-
-While the ``XML()`` and ``HTML()`` factories also depend on the default
-parser, you can pass them a different parser as second argument:
-
-.. sourcecode:: pycon
-
-  >>> element = etree.XML("<test/>")
-  >>> print(isinstance(element, honk))
-  False
-
-  >>> element = etree.XML("<test/>", parser)
-  >>> print(isinstance(element, honk))
-  True
-
-Whenever you create a document with a parser, it will inherit the lookup
-scheme and all subsequent element instantiations for this document will use
-it:
-
-.. sourcecode:: pycon
-
-  >>> element = etree.fromstring("<test/>", parser)
-  >>> print(isinstance(element, honk))
-  True
-  >>> el = etree.SubElement(element, "subel")
-  >>> print(isinstance(el, honk))
-  True
-
-For testing code in the Python interpreter and for small projects, you
-may also consider setting a lookup scheme on the default parser.  To
-avoid interfering with other modules, however, it is usually a better
-idea to use a dedicated parser for each module (or a parser pool when
-using threads) and then register the required lookup scheme only for
-this parser.
-
-
-Default class lookup
---------------------
-
-This is the most simple lookup mechanism.  It always returns the default
-element class.  Consequently, no further fallbacks are supported, but this
-scheme is a nice fallback for other custom lookup mechanisms.
-
-Usage:
-
-.. sourcecode:: pycon
-
-  >>> lookup = etree.ElementDefaultClassLookup()
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(lookup)
-
-Note that the default for new parsers is to use the global fallback, which is
-also the default lookup (if not configured otherwise).
-
-To change the default element implementation, you can pass your new class to
-the constructor.  While it accepts classes for ``element``, ``comment`` and
-``pi`` nodes, most use cases will only override the element class:
-
-.. sourcecode:: pycon
-
-  >>> el = parser.makeelement("myelement")
-  >>> print(isinstance(el, honk))
-  False
-
-  >>> lookup = etree.ElementDefaultClassLookup(element=honk)
-  >>> parser.set_element_class_lookup(lookup)
-
-  >>> el = parser.makeelement("myelement")
-  >>> print(isinstance(el, honk))
-  True
-  >>> el.honking
-  False
-  >>> el = parser.makeelement("myelement", honking='true')
-  >>> etree.tostring(el)
-  b'<myelement honking="true"/>'
-  >>> el.honking
-  True
-
-
-Namespace class lookup
-----------------------
-
-This is an advanced lookup mechanism that supports namespace/tag-name specific
-element classes.  You can select it by calling:
-
-.. sourcecode:: pycon
-
-  >>> lookup = etree.ElementNamespaceClassLookup()
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(lookup)
-
-See the separate section on `implementing namespaces`_ below to learn how to
-make use of it.
-
-.. _`implementing namespaces`: #implementing-namespaces
-
-This scheme supports a fallback mechanism that is used in the case where the
-namespace is not found or no class was registered for the element name.
-Normally, the default class lookup is used here.  To change it, pass the
-desired fallback lookup scheme to the constructor:
-
-.. sourcecode:: pycon
-
-  >>> fallback = etree.ElementDefaultClassLookup(element=honk)
-  >>> lookup = etree.ElementNamespaceClassLookup(fallback)
-  >>> parser.set_element_class_lookup(lookup)
-
-
-Attribute based lookup
-----------------------
-
-This scheme uses a mapping from attribute values to classes.  An attribute
-name is set at initialisation time and is then used to find the corresponding
-value in a dictionary.  It is set up as follows:
-
-.. sourcecode:: pycon
-
-  >>> id_class_mapping = {'1234' : honk} # maps attribute values to classes
-
-  >>> lookup = etree.AttributeBasedElementClassLookup(
-  ...                                      'id', id_class_mapping)
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(lookup)
-
-This class uses its fallback if the attribute is not found or its value is not
-in the mapping.  Normally, the default class lookup is used here.  If you want
-to use the namespace lookup, for example, you can use this code:
-
-.. sourcecode:: pycon
-
-  >>> fallback = etree.ElementNamespaceClassLookup()
-  >>> lookup = etree.AttributeBasedElementClassLookup(
-  ...                       'id', id_class_mapping, fallback)
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(lookup)
-
-
-Custom element class lookup
----------------------------
-
-This is the most customisable way of finding element classes on a per-element
-basis.  It allows you to implement a custom lookup scheme in a subclass:
-
-.. sourcecode:: pycon
-
-  >>> class MyLookup(etree.CustomElementClassLookup):
-  ...     def lookup(self, node_type, document, namespace, name):
-  ...         return honk # be a bit more selective here ...
-
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(MyLookup())
-
-The ``.lookup()`` method must return either None (which triggers the
-fallback mechanism) or a subclass of ``lxml.etree.ElementBase``.  It
-can take any decision it wants based on the node type (one of
-"element", "comment", "PI", "entity"), the XML document of the
-element, or its namespace or tag name.
-
-
-Tree based element class lookup in Python
------------------------------------------
-
-Taking more elaborate decisions than allowed by the custom scheme is
-difficult to achieve in pure Python, as it results in a
-chicken-and-egg problem.  It would require access to the tree - before
-the elements in the tree have been instantiated as Python Element
-proxies.
-
-Luckily, there is a way to do this.  The ``PythonElementClassLookup``
-works similar to the custom lookup scheme:
-
-.. sourcecode:: pycon
-
-  >>> class MyLookup(etree.PythonElementClassLookup):
-  ...     def lookup(self, document, element):
-  ...         return MyElementClass # defined elsewhere
-
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(MyLookup())
-
-As before, the first argument to the ``lookup()`` method is the opaque
-document instance that contains the Element.  The second arguments is a
-lightweight Element proxy implementation that is only valid during the lookup.
-Do not try to keep a reference to it.  Once the lookup is finished, the proxy
-will become invalid.  You will get an ``AssertionError`` if you access any of
-the properties or methods outside the scope of the lookup call where they were
-instantiated.
-
-During the lookup, the element object behaves mostly like a normal Element
-instance.  It provides the properties ``tag``, ``text``, ``tail`` etc. and
-supports indexing, slicing and the ``getchildren()``, ``getparent()``
-etc. methods.  It does *not* support iteration, nor does it support any kind
-of modification.  All of its properties are read-only and it cannot be removed
-or inserted into other trees.  You can use it as a starting point to freely
-traverse the tree and collect any kind of information that its elements
-provide.  Once you have taken the decision which class to use for this
-element, you can simply return it and have lxml take care of cleaning up the
-instantiated proxy classes.
-
-Sidenote: this lookup scheme originally lived in a separate module called
-``lxml.pyclasslookup``.
-
-
-Generating XML with custom classes
-==================================
-
-Up to lxml 2.1, you could not instantiate proxy classes yourself.
-Only lxml.etree could do that when creating an object representation
-of an existing XML element.  Since lxml 2.2, however, instantiating
-this class will simply create a new Element:
-
-.. sourcecode:: pycon
-
-  >>> el = honk(honking = 'true')
-  >>> el.tag
-  'honk'
-  >>> el.honking
-  True
-
-Note, however, that the proxy you create here will be garbage
-collected just like any other proxy.  You can therefore not count on
-lxml.etree using the same class that you instantiated when you access
-this Element a second time after letting its reference go.  You should
-therefore always use a corresponding class lookup scheme that returns
-your Element proxy classes for the elements that they create.  The
-``ElementNamespaceClassLookup`` is generally a good match.
-
-You can use custom Element classes to quickly create XML fragments:
-
-.. sourcecode:: pycon
-
-  >>> class hale(etree.ElementBase): pass
-  >>> class bopp(etree.ElementBase): pass
-
-  >>> el = hale( "some ", honk(honking = 'true'), bopp, " text" )
-
-  >>> print(etree.tostring(el, encoding=unicode))
-  <hale>some <honk honking="true"/><bopp/> text</hale>
-
-
-Implementing namespaces
-=======================
-
-lxml allows you to implement namespaces, in a rather literal sense.  After
-setting up the namespace class lookup mechanism as described above, you can
-build a new element namespace (or retrieve an existing one) by calling the
-``get_namespace(uri)`` method of the lookup:
-
-.. sourcecode:: pycon
-
-  >>> lookup = etree.ElementNamespaceClassLookup()
-  >>> parser = etree.XMLParser()
-  >>> parser.set_element_class_lookup(lookup)
-
-  >>> namespace = lookup.get_namespace('http://hui.de/honk')
-
-and then register the new element type with that namespace, say, under the tag
-name ``honk``:
-
-.. sourcecode:: pycon
-
-  >>> namespace['honk'] = honk
-
-If you have many Element classes declared in one module, and they are
-all named like the elements they create, you can simply use
-``namespace.update(vars())`` at the end of your module to declare them
-automatically.  The implementation is smart enough to ignore
-everything that is not an Element class.
-
-After this, you create and use your XML elements through the normal API of
-lxml:
-
-.. sourcecode:: pycon
-
-  >>> xml = '<honk xmlns="http://hui.de/honk" honking="true"/>'
-  >>> honk_element = etree.XML(xml, parser)
-  >>> print(honk_element.honking)
-  True
-
-The same works when creating elements by hand:
-
-.. sourcecode:: pycon
-
-  >>> honk_element = parser.makeelement('{http://hui.de/honk}honk',
-  ...                                   honking='true')
-  >>> print(honk_element.honking)
-  True
-
-Essentially, what this allows you to do, is to give Elements a custom API
-based on their namespace and tag name.
-
-A somewhat related topic are `extension functions`_ which use a similar
-mechanism for registering extension functions in XPath and XSLT.
-
-.. _`extension functions`: extensions.html
-
-In the setup example above, we associated the ``honk`` Element class
-only with the 'honk' element.  If an XML tree contains different
-elements in the same namespace, they do not pick up the same
-implementation:
-
-.. sourcecode:: pycon
-
-  >>> xml = '<honk xmlns="http://hui.de/honk" honking="true"><bla/></honk>'
-  >>> honk_element = etree.XML(xml, parser)
-  >>> print(honk_element.honking)
-  True
-  >>> print(honk_element[0].honking)
-  Traceback (most recent call last):
-  ...
-  AttributeError: 'lxml.etree._Element' object has no attribute 'honking'
-
-You can therefore provide one implementation per element name in each
-namespace and have lxml select the right one on the fly.  If you want one
-element implementation per namespace (ignoring the element name) or prefer
-having a common class for most elements except a few, you can specify a
-default implementation for an entire namespace by registering that class with
-the empty element name (None).
-
-You may consider following an object oriented approach here.  If you build a
-class hierarchy of element classes, you can also implement a base class for a
-namespace that is used if no specific element class is provided.  Again, you
-can just pass None as an element name:
-
-.. sourcecode:: pycon
-
-  >>> class HonkNSElement(etree.ElementBase):
-  ...    def honk(self):
-  ...       return "HONK"
-  >>> namespace[None] = HonkNSElement # default Element for namespace
-
-  >>> class HonkElement(HonkNSElement):
-  ...    def honking(self):
-  ...       return self.get('honking') == 'true'
-  ...    honking = property(honking)
-  >>> namespace['honk'] = HonkElement # Element for specific tag
-
-Now you can rely on lxml to always return objects of type HonkNSElement or its
-subclasses for elements of this namespace:
-
-.. sourcecode:: pycon
-
-  >>> xml = '<honk xmlns="http://hui.de/honk" honking="true"><bla/></honk>'
-  >>> honk_element = etree.XML(xml, parser)
-
-  >>> print(type(honk_element))
-  <class 'HonkElement'>
-  >>> print(type(honk_element[0]))
-  <class 'HonkNSElement'>
-
-  >>> print(honk_element.honking)
-  True
-  >>> print(honk_element.honk())
-  HONK
-
-  >>> print(honk_element[0].honk())
-  HONK
-  >>> print(honk_element[0].honking)
-  Traceback (most recent call last):
-  ...
-  AttributeError: 'HonkNSElement' object has no attribute 'honking'
diff --git a/doc/sphinx/_sources/elementsoup.txt b/doc/sphinx/_sources/elementsoup.txt
deleted file mode 100644 (file)
index d412de2..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-====================
-BeautifulSoup Parser
-====================
-
-BeautifulSoup_ is a Python package that parses broken HTML, just like
-lxml supports it based on the parser of libxml2.  BeautifulSoup uses a
-different parsing approach.  It is not a real HTML parser but uses
-regular expressions to dive through tag soup.  It is therefore more
-forgiving in some cases and less good in others.  It is not uncommon
-that lxml/libxml2 parses and fixes broken HTML better, but
-BeautifulSoup has superiour `support for encoding detection`_.  It
-very much depends on the input which parser works better.
-
-.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/
-.. _`support for encoding detection`: http://www.crummy.com/software/BeautifulSoup/documentation.html#Beautiful%20Soup%20Gives%20You%20Unicode%2C%20Dammit
-.. _ElementSoup: http://effbot.org/zone/element-soup.htm
-
-To prevent users from having to choose their parser library in
-advance, lxml can interface to the parsing capabilities of
-BeautifulSoup through the ``lxml.html.soupparser`` module.  It
-provides three main functions: ``fromstring()`` and ``parse()`` to
-parse a string or file using BeautifulSoup into an ``lxml.html``
-document, and ``convert_tree()`` to convert an existing BeautifulSoup
-tree into a list of top-level Elements.
-
-.. contents::
-..
-   1  Parsing with the soupparser
-   2  Entity handling
-   3  Using soupparser as a fallback
-   4  Using only the encoding detection
-
-
-Parsing with the soupparser
-===========================
-
-The functions ``fromstring()`` and ``parse()`` behave as known from
-ElementTree.  The first returns a root Element, the latter returns an
-ElementTree.
-
-There is also a legacy module called ``lxml.html.ElementSoup``, which
-mimics the interface provided by ElementTree's own ElementSoup_
-module.  Note that the ``soupparser`` module was added in lxml 2.0.3.
-Previous versions of lxml 2.0.x only have the ``ElementSoup`` module.
-
-Here is a document full of tag soup, similar to, but not quite like, HTML:
-
-.. sourcecode:: pycon
-
-    >>> tag_soup = '<meta><head><title>Hello</head><body onload=crash()>Hi all<p>'
-
-all you need to do is pass it to the ``fromstring()`` function:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html.soupparser import fromstring
-    >>> root = fromstring(tag_soup)
-
-To see what we have here, you can serialise it:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.etree import tostring
-    >>> print tostring(root, pretty_print=True),
-    <html>
-      <meta/>
-      <head>
-        <title>Hello</title>
-      </head>
-      <body onload="crash()">Hi all<p/></body>
-    </html>
-
-Not quite what you'd expect from an HTML page, but, well, it was broken
-already, right?  BeautifulSoup did its best, and so now it's a tree.
-
-To control which Element implementation is used, you can pass a
-``makeelement`` factory function to ``parse()`` and ``fromstring()``.
-By default, this is based on the HTML parser defined in ``lxml.html``.
-
-For a quick comparison, libxml2 2.6.32 parses the same tag soup as
-follows.  The main difference is that libxml2 tries harder to adhere
-to the structure of an HTML document and moves misplaced tags where
-they (likely) belong.  Note, however, that the result can vary between
-parser versions.
-
-.. sourcecode:: html
-
-    <html>
-      <head>
-        <meta/>
-        <title>Hello</title>
-      </head>
-      <body>
-        <p>Hi all</p>
-        <p/>
-      </body>
-    </html>
-
-
-Entity handling
-===============
-
-By default, the BeautifulSoup parser also replaces the entities it
-finds by their character equivalent.
-
-.. sourcecode:: pycon
-
-    >>> tag_soup = '<body>&copy;&euro;&#45;&#245;&#445;<p>'
-    >>> body = fromstring(tag_soup).find('.//body')
-    >>> body.text
-    u'\xa9\u20ac-\xf5\u01bd'
-
-If you want them back on the way out, you can just serialise with the
-default encoding, which is 'US-ASCII'.
-
-.. sourcecode:: pycon
-
-    >>> tostring(body)
-    '<body>&#169;&#8364;-&#245;&#445;<p/></body>'
-
-    >>> tostring(body, method="html")
-    '<body>&#169;&#8364;-&#245;&#445;<p></p></body>'
-
-Any other encoding will output the respective byte sequences.
-
-.. sourcecode:: pycon
-
-    >>> tostring(body, encoding="utf-8")
-    '<body>\xc2\xa9\xe2\x82\xac-\xc3\xb5\xc6\xbd<p/></body>'
-
-    >>> tostring(body, method="html", encoding="utf-8")
-    '<body>\xc2\xa9\xe2\x82\xac-\xc3\xb5\xc6\xbd<p></p></body>'
-
-    >>> tostring(body, encoding=unicode)
-    u'<body>\xa9\u20ac-\xf5\u01bd<p/></body>'
-
-    >>> tostring(body, method="html", encoding=unicode)
-    u'<body>\xa9\u20ac-\xf5\u01bd<p></p></body>'
-
-
-Using soupparser as a fallback
-==============================
-
-The downside of using this parser is that it is `much slower`_ than
-the HTML parser of lxml.  So if performance matters, you might want to
-consider using ``soupparser`` only as a fallback for certain cases.
-
-.. _`much slower`: http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/
-
-One common problem of lxml's parser is that it might not get the
-encoding right in cases where the document contains a ``<meta>`` tag
-at the wrong place.  In this case, you can exploit the fact that lxml
-serialises much faster than most other HTML libraries for Python.
-Just serialise the document to unicode and if that gives you an
-exception, re-parse it with BeautifulSoup to see if that works
-better.
-
-.. sourcecode:: pycon
-
-    >>> tag_soup = '''\
-    ... <meta http-equiv="Content-Type"
-    ...       content="text/html;charset=utf-8" />
-    ... <html>
-    ...   <head>
-    ...     <title>Hello W\xc3\xb6rld!</title>
-    ...   </head>
-    ...   <body>Hi all</body>
-    ... </html>'''
-
-    >>> import lxml.html
-    >>> import lxml.html.soupparser
-
-    >>> root = lxml.html.fromstring(tag_soup)
-    >>> try:
-    ...     ignore = tostring(root, encoding=unicode)
-    ... except UnicodeDecodeError:
-    ...     root = lxml.html.soupparser.fromstring(tag_soup)
-
-
-Using only the encoding detection
-=================================
-
-If you prefer a 'real' (and fast) HTML parser instead of the regular
-expression based one in BeautifulSoup, you can still benefit from
-BeautifulSoup's `support for encoding detection`_ in the
-``UnicodeDammit`` class.
-
-.. sourcecode:: pycon
-
-    >>> from BeautifulSoup import UnicodeDammit
-
-    >>> def decode_html(html_string):
-    ...     converted = UnicodeDammit(html_string, isHTML=True)
-    ...     if not converted.unicode:
-    ...         raise UnicodeDecodeError(
-    ...             "Failed to detect encoding, tried [%s]",
-    ...             ', '.join(converted.triedEncodings))
-    ...     # print converted.originalEncoding
-    ...     return converted.unicode
-
-    >>> root = lxml.html.fromstring(decode_html(tag_soup))
diff --git a/doc/sphinx/_sources/extensions.txt b/doc/sphinx/_sources/extensions.txt
deleted file mode 100644 (file)
index 61c4179..0000000
+++ /dev/null
@@ -1,587 +0,0 @@
-====================================
-Python extensions for XPath and XSLT
-====================================
-
-This document describes how to use Python extension functions in XPath
-and XSLT like this:
-
-.. sourcecode:: xml
-
-  <xsl:value-of select="f:myPythonFunction(.//sometag)" />
-
-and extension elements in XSLT as in the following example:
-
-.. sourcecode:: xml
-
-  <xsl:template match="*">
-      <my:python-extension>
-          <some-content />
-      </my:python-extension>
-  </xsl:template>
-
-
-.. contents::
-.. 
-   1  XPath Extension functions
-     1.1  The FunctionNamespace
-     1.2  Global prefix assignment
-     1.3  The XPath context
-     1.4  Evaluators and XSLT
-     1.5  Evaluator-local extensions
-     1.6  What to return from a function
-   2  XSLT extension elements
-     2.1  Declaring extension elements
-     2.2  Applying XSL templates
-     2.3  Working with read-only elements
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-
-XPath Extension functions
-=========================
-
-Here is how an extension function looks like.  As the first argument,
-it always receives a context object (see below).  The other arguments
-are provided by the respective call in the XPath expression, one in
-the following examples.  Any number of arguments is allowed:
-
-.. sourcecode:: pycon
-
-  >>> def hello(dummy, a):
-  ...    return "Hello %s" % a
-  >>> def ola(dummy, a):
-  ...    return "Ola %s" % a
-  >>> def loadsofargs(dummy, *args):
-  ...    return "Got %d arguments." % len(args)
-
-
-The FunctionNamespace
----------------------
-
-In order to use a function in XPath or XSLT, it needs to have a
-(namespaced) name by which it can be called during evaluation.  This
-is done using the FunctionNamespace class.  For simplicity, we choose
-the empty namespace (None):
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-  >>> ns = etree.FunctionNamespace(None)
-  >>> ns['hello'] = hello
-  >>> ns['countargs'] = loadsofargs
-
-This registers the function `hello` with the name `hello` in the default
-namespace (None), and the function `loadsofargs` with the name `countargs`.
-Now we're going to create a document that we can run XPath expressions
-against:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML('<a><b>Haegar</b></a>')
-  >>> doc = etree.ElementTree(root)
-
-Done. Now we can have XPath expressions call our new function:
-
-.. sourcecode:: pycon
-
-  >>> print(root.xpath("hello('world')"))
-  Hello world
-  >>> print(root.xpath('hello(local-name(*))'))
-  Hello b
-  >>> print(root.xpath('hello(string(b))'))
-  Hello Haegar
-  >>> print(root.xpath('countargs(., b, ./*)'))
-  Got 3 arguments.
-
-Note how we call both a Python function (`hello`) and an XPath built-in
-function (`string`) in exactly the same way.  Normally, however, you would
-want to separate the two in different namespaces.  The FunctionNamespace class
-allows you to do this:
-
-.. sourcecode:: pycon
-
-  >>> ns = etree.FunctionNamespace('http://mydomain.org/myfunctions')
-  >>> ns['hello'] = hello
-  >>> prefixmap = {'f' : 'http://mydomain.org/myfunctions'}
-  >>> print(root.xpath('f:hello(local-name(*))', namespaces=prefixmap))
-  Hello b
-
-
-Global prefix assignment
-------------------------
-
-In the last example, you had to specify a prefix for the function namespace.
-If you always use the same prefix for a function namespace, you can also
-register it with the namespace:
-
-.. sourcecode:: pycon
-
-  >>> ns = etree.FunctionNamespace('http://mydomain.org/myother/functions')
-  >>> ns.prefix = 'es'
-  >>> ns['hello'] = ola
-  >>> print(root.xpath('es:hello(local-name(*))'))
-  Ola b
-
-This is a global assignment, so take care not to assign the same prefix to
-more than one namespace.  The resulting behaviour in that case is completely
-undefined.  It is always a good idea to consistently use the same meaningful
-prefix for each namespace throughout your application.
-
-The prefix assignment only works with functions and FunctionNamespace objects,
-not with the general Namespace object that registers element classes.  The
-reasoning is that elements in lxml do not care about prefixes anyway, so it
-would rather complicate things than be of any help.
-
-
-The XPath context
------------------
-
-Functions get a context object as first parameter.  In lxml 1.x, this value
-was None, but since lxml 2.0 it provides two properties: ``eval_context`` and
-``context_node``.  The context node is the Element where the current function
-is called:
-
-.. sourcecode:: pycon
-
-  >>> def print_tag(context, nodes):
-  ...     print("%s: %s" % (context.context_node.tag, [ n.tag for n in nodes ]))
-
-  >>> ns = etree.FunctionNamespace('http://mydomain.org/printtag')
-  >>> ns.prefix = "pt"
-  >>> ns["print_tag"] = print_tag
-
-  >>> ignore = root.xpath("//*[pt:print_tag(.//*)]")
-  a: ['b']
-  b: []
-
-The ``eval_context`` is a dictionary that is local to the evaluation.  It
-allows functions to keep state:
-
-.. sourcecode:: pycon
-
-  >>> def print_context(context):
-  ...     context.eval_context[context.context_node.tag] = "done"
-  ...     entries = list(context.eval_context.items())
-  ...     entries.sort()
-  ...     print(entries)
-  >>> ns["print_context"] = print_context
-
-  >>> ignore = root.xpath("//*[pt:print_context()]")
-  [('a', 'done')]
-  [('a', 'done'), ('b', 'done')]
-
-
-Evaluators and XSLT
--------------------
-
-Extension functions work for all ways of evaluating XPath expressions and for
-XSL transformations:
-
-.. sourcecode:: pycon
-
-  >>> e = etree.XPathEvaluator(doc)
-  >>> print(e('es:hello(local-name(/a))'))
-  Ola a
-
-  >>> namespaces = {'f' : 'http://mydomain.org/myfunctions'}
-  >>> e = etree.XPathEvaluator(doc, namespaces=namespaces)
-  >>> print(e('f:hello(local-name(/a))'))
-  Hello a
-
-  >>> xslt = etree.XSLT(etree.XML('''
-  ...   <stylesheet version="1.0"
-  ...          xmlns="http://www.w3.org/1999/XSL/Transform"
-  ...          xmlns:es="http://mydomain.org/myother/functions">
-  ...     <output method="text" encoding="ASCII"/>
-  ...     <template match="/">
-  ...       <value-of select="es:hello(string(//b))"/>
-  ...     </template>
-  ...   </stylesheet>
-  ... '''))
-  >>> print(xslt(doc))
-  Ola Haegar
-
-It is also possible to register namespaces with a single evaluator after its
-creation.  While the following example involves no functions, the idea should
-still be clear:
-
-.. sourcecode:: pycon
-  
-  >>> f = StringIO('<a xmlns="http://mydomain.org/myfunctions" />')
-  >>> ns_doc = etree.parse(f)
-  >>> e = etree.XPathEvaluator(ns_doc)
-  >>> e('/a')
-  []
-
-This returns nothing, as we did not ask for the right namespace.  When we
-register the namespace with the evaluator, however, we can access it via a
-prefix:
-
-.. sourcecode:: pycon
-
-  >>> e.register_namespace('foo', 'http://mydomain.org/myfunctions')
-  >>> e('/foo:a')[0].tag
-  '{http://mydomain.org/myfunctions}a'
-
-Note that this prefix mapping is only known to this evaluator, as opposed to
-the global mapping of the FunctionNamespace objects:
-
-.. sourcecode:: pycon
-
-  >>> e2 = etree.XPathEvaluator(ns_doc)
-  >>> e2('/foo:a')
-  Traceback (most recent call last):
-  ...
-  lxml.etree.XPathEvalError: Undefined namespace prefix
-
-
-Evaluator-local extensions
---------------------------
-
-Apart from the global registration of extension functions, there is also a way
-of making extensions known to a single Evaluator or XSLT.  All evaluators and
-the XSLT object accept a keyword argument ``extensions`` in their constructor.
-The value is a dictionary mapping (namespace, name) tuples to functions:
-
-.. sourcecode:: pycon
-
-  >>> extensions = {('local-ns', 'local-hello') : hello}
-  >>> namespaces = {'l' : 'local-ns'}
-
-  >>> e = etree.XPathEvaluator(doc, namespaces=namespaces, extensions=extensions)
-  >>> print(e('l:local-hello(string(b))'))
-  Hello Haegar
-
-For larger numbers of extension functions, you can define classes or modules
-and use the ``Extension`` helper:
-
-.. sourcecode:: pycon
-
-  >>> class MyExt:
-  ...     def function1(self, _, arg):
-  ...         return '1'+arg
-  ...     def function2(self, _, arg):
-  ...         return '2'+arg
-  ...     def function3(self, _, arg):
-  ...         return '3'+arg
-
-  >>> ext_module = MyExt()
-  >>> functions = ('function1', 'function2')
-  >>> extensions = etree.Extension( ext_module, functions, ns='local-ns' )
-
-  >>> e = etree.XPathEvaluator(doc, namespaces=namespaces, extensions=extensions)
-  >>> print(e('l:function1(string(b))'))
-  1Haegar
-
-The optional second argument to ``Extension`` can either be be a
-sequence of names to select from the module, a dictionary that
-explicitly maps function names to their XPath alter-ego or ``None``
-(explicitly passed) to take all available functions under their
-original name (if their name does not start with '_').
-
-The additional ``ns`` keyword argument takes a namespace URI or
-``None`` (also if left out) for the default namespace.  The following
-examples will therefore all do the same thing:
-
-.. sourcecode:: pycon
-
-  >>> functions = ('function1', 'function2', 'function3')
-  >>> extensions = etree.Extension( ext_module, functions )
-  >>> e = etree.XPathEvaluator(doc, extensions=extensions)
-  >>> print(e('function1(function2(function3(string(b))))'))
-  123Haegar
-
-  >>> extensions = etree.Extension( ext_module, functions, ns=None )
-  >>> e = etree.XPathEvaluator(doc, extensions=extensions)
-  >>> print(e('function1(function2(function3(string(b))))'))
-  123Haegar
-
-  >>> extensions = etree.Extension(ext_module)
-  >>> e = etree.XPathEvaluator(doc, extensions=extensions)
-  >>> print(e('function1(function2(function3(string(b))))'))
-  123Haegar
-
-  >>> functions = {
-  ...     'function1' : 'function1',
-  ...     'function2' : 'function2',
-  ...     'function3' : 'function3'
-  ...     }
-  >>> extensions = etree.Extension(ext_module, functions)
-  >>> e = etree.XPathEvaluator(doc, extensions=extensions)
-  >>> print(e('function1(function2(function3(string(b))))'))
-  123Haegar
-
-For convenience, you can also pass a sequence of extensions:
-
-.. sourcecode:: pycon
-
-  >>> extensions1 = etree.Extension(ext_module)
-  >>> extensions2 = etree.Extension(ext_module, ns='local-ns')
-  >>> e = etree.XPathEvaluator(doc, extensions=[extensions1, extensions2],
-  ...                          namespaces=namespaces)
-  >>> print(e('function1(l:function2(function3(string(b))))'))
-  123Haegar
-
-
-What to return from a function
-------------------------------
-
-.. _`XPath return values`: xpathxslt.html#xpath-return-values
-
-Extension functions can return any data type for which there is an XPath
-equivalent (see the documentation on `XPath return values`).  This includes
-numbers, boolean values, elements and lists of elements.  Note that integers
-will also be returned as floats:
-
-.. sourcecode:: pycon
-
-  >>> def returnsFloat(_):
-  ...    return 1.7
-  >>> def returnsInteger(_):
-  ...    return 1
-  >>> def returnsBool(_):
-  ...    return True
-  >>> def returnFirstNode(_, nodes):
-  ...    return nodes[0]
-
-  >>> ns = etree.FunctionNamespace(None)
-  >>> ns['float'] = returnsFloat
-  >>> ns['int']   = returnsInteger
-  >>> ns['bool']  = returnsBool
-  >>> ns['first'] = returnFirstNode
-
-  >>> e = etree.XPathEvaluator(doc)
-  >>> e("float()")
-  1.7
-  >>> e("int()")
-  1.0
-  >>> int( e("int()") )
-  1
-  >>> e("bool()")
-  True
-  >>> e("count(first(//b))")
-  1.0
-
-As the last example shows, you can pass the results of functions back into
-the XPath expression.  Elements and sequences of elements are treated as
-XPath node-sets:
-
-.. sourcecode:: pycon
-
-  >>> def returnsNodeSet(_):
-  ...     results1 = etree.Element('results1')
-  ...     etree.SubElement(results1, 'result').text = "Alpha"
-  ...     etree.SubElement(results1, 'result').text = "Beta"
-  ...
-  ...     results2 = etree.Element('results2')
-  ...     etree.SubElement(results2, 'result').text = "Gamma"
-  ...     etree.SubElement(results2, 'result').text = "Delta"
-  ...
-  ...     results3 = etree.SubElement(results2, 'subresult')
-  ...     return [results1, results2, results3]
-
-  >>> ns['new-node-set'] = returnsNodeSet
-
-  >>> e = etree.XPathEvaluator(doc)
-
-  >>> r = e("new-node-set()/result")
-  >>> print([ t.text for t in r ])
-  ['Alpha', 'Beta', 'Gamma', 'Delta']
-
-  >>> r = e("new-node-set()")
-  >>> print([ t.tag for t in r ])
-  ['results1', 'results2', 'subresult']
-  >>> print([ len(t) for t in r ])
-  [2, 3, 0]
-  >>> r[0][0].text
-  'Alpha'
-
-  >>> etree.tostring(r[0])
-  b'<results1><result>Alpha</result><result>Beta</result></results1>'
-
-  >>> etree.tostring(r[1])
-  b'<results2><result>Gamma</result><result>Delta</result><subresult/></results2>'
-
-  >>> etree.tostring(r[2])
-  b'<subresult/>'
-
-The current implementation deep-copies newly created elements in node-sets.
-Only the elements and their children are passed on, no outlying parents or
-tail texts will be available in the result.  This also means that in the above
-example, the `subresult` elements in `results2` and `results3` are no longer
-identical within the node-set, they belong to independent trees:
-
-.. sourcecode:: pycon
-
-  >>> print("%s - %s" % (r[1][-1].tag, r[2].tag))
-  subresult - subresult
-  >>> print(r[1][-1] == r[2])
-  False
-  >>> print(r[1][-1].getparent().tag)
-  results2
-  >>> print(r[2].getparent())
-  None
-
-This is an implementation detail that you should be aware of, but you should
-avoid relying on it in your code.  Note that elements taken from the source
-document (the most common case) do not suffer from this restriction.  They
-will always be passed unchanged.
-
-
-XSLT extension elements
-=======================
-
-Just like the XPath extension functions described above, lxml supports
-custom extension *elements* in XSLT.  This means, you can write XSLT
-code like this:
-
-.. sourcecode:: xml
-
-  <xsl:template match="*">
-      <my:python-extension>
-          <some-content />
-      </my:python-extension>
-  </xsl:template>
-
-And then you can implement the element in Python like this:
-
-.. sourcecode:: pycon
-
-  >>> class MyExtElement(etree.XSLTExtension):
-  ...     def execute(self, context, self_node, input_node, output_parent):
-  ...         print("Hello from XSLT!")
-  ...         output_parent.text = "I did it!"
-  ...         # just copy own content input to output
-  ...         output_parent.extend( list(self_node) )
-
-The arguments passed to the ``.execute()`` method  are
-
-context
-    The opaque evaluation context.  You need this when calling back
-    into the XSLT processor.
-
-self_node
-    A read-only Element object that represents the extension element
-    in the stylesheet.
-
-input_node
-    The current context Element in the input document (also read-only).
-
-output_parent
-    The current insertion point in the output document.  You can
-    append elements or set the text value (not the tail).  Apart from
-    that, the Element is read-only.
-
-
-Declaring extension elements
-----------------------------
-
-In XSLT, extension elements can be used like any other XSLT element,
-except that they must be declared as extensions using the standard
-XSLT ``extension-element-prefixes`` option:
-
-.. sourcecode:: pycon
-
-  >>> xslt_ext_tree = etree.XML('''
-  ... <xsl:stylesheet version="1.0"
-  ...     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  ...     xmlns:my="testns"
-  ...     extension-element-prefixes="my">
-  ...     <xsl:template match="/">
-  ...         <foo><my:ext><child>XYZ</child></my:ext></foo>
-  ...     </xsl:template>
-  ...     <xsl:template match="child">
-  ...         <CHILD>--xyz--</CHILD>
-  ...     </xsl:template>
-  ... </xsl:stylesheet>''')
-
-To register the extension, add its namespace and name to the extension
-mapping of the XSLT object:
-
-.. sourcecode:: pycon
-
-  >>> my_extension = MyExtElement()
-  >>> extensions = { ('testns', 'ext') : my_extension }
-  >>> transform = etree.XSLT(xslt_ext_tree, extensions = extensions)
-
-Note how we pass an instance here, not the class of the extension.
-Now we can run the transformation and see how our extension is
-called:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML('<dummy/>')
-  >>> result = transform(root)
-  Hello from XSLT!
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>I did it!<child>XYZ</child></foo>\n'
-
-
-Applying XSL templates
-----------------------
-
-XSLT extensions are a very powerful feature that allows you to
-interact directly with the XSLT processor.  You have full read-only
-access to the input document and the stylesheet, and you can even call
-back into the XSLT processor to process templates.  Here is an example
-that passes an Element into the ``.apply_templates()`` method of the
-``XSLTExtension`` instance:
-
-.. sourcecode:: pycon
-
-  >>> class MyExtElement(etree.XSLTExtension):
-  ...     def execute(self, context, self_node, input_node, output_parent):
-  ...         child = self_node[0]
-  ...         results = self.apply_templates(context, child)
-  ...         output_parent.append(results[0])
-
-  >>> my_extension = MyExtElement()
-  >>> extensions = { ('testns', 'ext') : my_extension }
-  >>> transform = etree.XSLT(xslt_ext_tree, extensions = extensions)
-
-  >>> root = etree.XML('<dummy/>')
-  >>> result = transform(root)
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo><CHILD>--xyz--</CHILD></foo>\n'
-
-Note how we applied the templates to a child of the extension element
-itself, i.e. to an element inside the stylesheet instead of an element
-of the input document.
-
-
-Working with read-only elements
--------------------------------
-
-There is one important thing to keep in mind: all Elements that the
-``execute()`` method gets to deal with are read-only Elements, so you
-cannot modify them.  They also will not easily work in the API.  For
-example, you cannot pass them to the ``tostring()`` function or wrap
-them in an ``ElementTree``.
-
-What you can do, however, is to deepcopy them to make them normal
-Elements, and then modify them using the normal etree API.  So this
-will work:
-
-.. sourcecode:: pycon
-
-  >>> from copy import deepcopy
-  >>> class MyExtElement(etree.XSLTExtension):
-  ...     def execute(self, context, self_node, input_node, output_parent):
-  ...         child = deepcopy(self_node[0])
-  ...         child.text = "NEW TEXT"
-  ...         output_parent.append(child)
-
-  >>> my_extension = MyExtElement()
-  >>> extensions = { ('testns', 'ext') : my_extension }
-  >>> transform = etree.XSLT(xslt_ext_tree, extensions = extensions)
-
-  >>> root = etree.XML('<dummy/>')
-  >>> result = transform(root)
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo><child>NEW TEXT</child></foo>\n'
diff --git a/doc/sphinx/_sources/html/api/api-objects.txt b/doc/sphinx/_sources/html/api/api-objects.txt
deleted file mode 100644 (file)
index 567fe82..0000000
+++ /dev/null
@@ -1,7284 +0,0 @@
-lxml   lxml-module.html
-lxml.__package__       lxml-module.html#__package__
-lxml.ElementInclude    lxml.ElementInclude-module.html
-lxml.ElementInclude.include    lxml.ElementInclude-module.html#include
-lxml.ElementInclude.XINCLUDE_INCLUDE   lxml.ElementInclude-module.html#XINCLUDE_INCLUDE
-lxml.ElementInclude.XINCLUDE_FALLBACK  lxml.ElementInclude-module.html#XINCLUDE_FALLBACK
-lxml.ElementInclude._include   lxml.ElementInclude-module.html#_include
-lxml.ElementInclude.__package__        lxml.ElementInclude-module.html#__package__
-lxml.ElementInclude._lxml_default_loader       lxml.ElementInclude-module.html#_lxml_default_loader
-lxml.ElementInclude.XINCLUDE   lxml.ElementInclude-module.html#XINCLUDE
-lxml.ElementInclude._wrap_et_loader    lxml.ElementInclude-module.html#_wrap_et_loader
-lxml.ElementInclude.default_loader     lxml.ElementInclude-module.html#default_loader
-lxml.builder   lxml.builder-module.html
-lxml.builder.E lxml.builder-module.html#E
-lxml.builder.__package__       lxml.builder-module.html#__package__
-lxml.builder.callable  lxml.builder-module.html#callable
-lxml.cssselect lxml.cssselect-module.html
-lxml.cssselect._el_re  lxml.cssselect-module.html#_el_re
-lxml.cssselect.parse_attrib    lxml.cssselect-module.html#parse_attrib
-lxml.cssselect.parse_selector_group    lxml.cssselect-module.html#parse_selector_group
-lxml.cssselect.css_to_xpath    lxml.cssselect-module.html#css_to_xpath
-lxml.cssselect.parse_series    lxml.cssselect-module.html#parse_series
-lxml.cssselect.xpath_literal   lxml.cssselect-module.html#xpath_literal
-lxml.cssselect.__package__     lxml.cssselect-module.html#__package__
-lxml.cssselect.tokenize        lxml.cssselect-module.html#tokenize
-lxml.cssselect._illegal_symbol lxml.cssselect-module.html#_illegal_symbol
-lxml.cssselect.unescape_string_literal lxml.cssselect-module.html#unescape_string_literal
-lxml.cssselect.parse_simple_selector   lxml.cssselect-module.html#parse_simple_selector
-lxml.cssselect._match_count_number     lxml.cssselect-module.html#_match_count_number
-lxml.cssselect.ns      lxml.cssselect-module.html#ns
-lxml.cssselect._id_re  lxml.cssselect-module.html#_id_re
-lxml.cssselect._match_whitespace       lxml.cssselect-module.html#_match_whitespace
-lxml.cssselect.is_int  lxml.cssselect-module.html#is_int
-lxml.cssselect.split_at_string_escapes lxml.cssselect-module.html#split_at_string_escapes
-lxml.cssselect._replace_comments       lxml.cssselect-module.html#_replace_comments
-lxml.cssselect.tokenize_escaped_string lxml.cssselect-module.html#tokenize_escaped_string
-lxml.cssselect._make_lower_case        lxml.cssselect-module.html#_make_lower_case
-lxml.cssselect._class_re       lxml.cssselect-module.html#_class_re
-lxml.cssselect.split_at_single_quotes  lxml.cssselect-module.html#split_at_single_quotes
-lxml.cssselect.tokenize_symbol lxml.cssselect-module.html#tokenize_symbol
-lxml.cssselect.parse   lxml.cssselect-module.html#parse
-lxml.cssselect.parse_selector  lxml.cssselect-module.html#parse_selector
-lxml.doctestcompare    lxml.doctestcompare-module.html
-lxml.doctestcompare._norm_whitespace_re        lxml.doctestcompare-module.html#_norm_whitespace_re
-lxml.doctestcompare.norm_whitespace    lxml.doctestcompare-module.html#norm_whitespace
-lxml.doctestcompare.PARSE_XML  lxml.doctestcompare-module.html#PARSE_XML
-lxml.doctestcompare._IS_PYTHON_3       lxml.doctestcompare-module.html#_IS_PYTHON_3
-lxml.doctestcompare._find_doctest_frame        lxml.doctestcompare-module.html#_find_doctest_frame
-lxml.doctestcompare.strip      lxml.doctestcompare-module.html#strip
-lxml.doctestcompare._repr_re   lxml.doctestcompare-module.html#_repr_re
-lxml.doctestcompare._html_parser       lxml.doctestcompare-module.html#_html_parser
-lxml.doctestcompare.NOPARSE_MARKUP     lxml.doctestcompare-module.html#NOPARSE_MARKUP
-lxml.doctestcompare.__package__        lxml.doctestcompare-module.html#__package__
-lxml.doctestcompare.html_fromstring    lxml.doctestcompare-module.html#html_fromstring
-lxml.doctestcompare.temp_install       lxml.doctestcompare-module.html#temp_install
-lxml.doctestcompare.__test__   lxml.doctestcompare-module.html#__test__
-lxml.doctestcompare.install    lxml.doctestcompare-module.html#install
-lxml.doctestcompare.PARSE_HTML lxml.doctestcompare-module.html#PARSE_HTML
-lxml.etree     lxml.etree-module.html
-lxml.etree.XPathEvaluator      lxml.etree-module.html#XPathEvaluator
-lxml.etree.XMLID       lxml.etree-module.html#XMLID
-lxml.etree.LIBXSLT_VERSION     lxml.etree-module.html#LIBXSLT_VERSION
-lxml.etree.XMLDTDID    lxml.etree-module.html#XMLDTDID
-lxml.etree.ElementTree lxml.etree-module.html#ElementTree
-lxml.etree.cleanup_namespaces  lxml.etree-module.html#cleanup_namespaces
-lxml.etree.set_default_parser  lxml.etree-module.html#set_default_parser
-lxml.etree.parseid     lxml.etree-module.html#parseid
-lxml.etree.tostring    lxml.etree-module.html#tostring
-lxml.etree.iselement   lxml.etree-module.html#iselement
-lxml.etree.FunctionNamespace   lxml.etree-module.html#FunctionNamespace
-lxml.etree.strip_attributes    lxml.etree-module.html#strip_attributes
-lxml.etree.Entity      lxml.etree-module.html#Entity
-lxml.etree.__package__ lxml.etree-module.html#__package__
-lxml.etree.strip_elements      lxml.etree-module.html#strip_elements
-lxml.etree.HTML        lxml.etree-module.html#HTML
-lxml.etree.PI  lxml.etree-module.html#PI
-lxml.etree.Extension   lxml.etree-module.html#Extension
-lxml.etree.DEBUG       lxml.etree-module.html#DEBUG
-lxml.etree.Comment     lxml.etree-module.html#Comment
-lxml.etree.ProcessingInstruction       lxml.etree-module.html#ProcessingInstruction
-lxml.etree.LXML_VERSION        lxml.etree-module.html#LXML_VERSION
-lxml.etree.LIBXML_COMPILED_VERSION     lxml.etree-module.html#LIBXML_COMPILED_VERSION
-lxml.etree.strip_tags  lxml.etree-module.html#strip_tags
-lxml.etree.tounicode   lxml.etree-module.html#tounicode
-lxml.etree.LIBXSLT_COMPILED_VERSION    lxml.etree-module.html#LIBXSLT_COMPILED_VERSION
-lxml.etree.dump        lxml.etree-module.html#dump
-lxml.etree.__pyx_capi__        lxml.etree-module.html#__pyx_capi__
-lxml.etree.XML lxml.etree-module.html#XML
-lxml.etree.use_global_python_log       lxml.etree-module.html#use_global_python_log
-lxml.etree.LIBXML_VERSION      lxml.etree-module.html#LIBXML_VERSION
-lxml.etree.tostringlist        lxml.etree-module.html#tostringlist
-lxml.etree.SubElement  lxml.etree-module.html#SubElement
-lxml.etree.get_default_parser  lxml.etree-module.html#get_default_parser
-lxml.etree.register_namespace  lxml.etree-module.html#register_namespace
-lxml.etree.parse       lxml.etree-module.html#parse
-lxml.etree.set_element_class_lookup    lxml.etree-module.html#set_element_class_lookup
-lxml.etree.clear_error_log     lxml.etree-module.html#clear_error_log
-lxml.etree.fromstringlist      lxml.etree-module.html#fromstringlist
-lxml.etree.Element     lxml.etree-module.html#Element
-lxml.etree.fromstring  lxml.etree-module.html#fromstring
-lxml.etree.__test__    lxml.etree-module.html#__test__
-lxml.html      lxml.html-module.html
-lxml.html._css_import_re       lxml.html-module.html#_css_import_re
-lxml.html._css_url_re  lxml.html-module.html#_css_url_re
-lxml.html.parse        lxml.html-module.html#parse
-lxml.html._nons        lxml.html-module.html#_nons
-lxml.html._forms_xpath lxml.html-module.html#_forms_xpath
-lxml.html._contains_block_level_tag    lxml.html-module.html#_contains_block_level_tag
-lxml.html._element_name        lxml.html-module.html#_element_name
-lxml.html._archive_re  lxml.html-module.html#_archive_re
-lxml.html.iterlinks    lxml.html-module.html#iterlinks
-lxml.html.__package__  lxml.html-module.html#__package__
-lxml.html._collect_string_content      lxml.html-module.html#_collect_string_content
-lxml.html.submit_form  lxml.html-module.html#submit_form
-lxml.html.xhtml_parser lxml.html-module.html#xhtml_parser
-lxml.html.XHTML_NAMESPACE      lxml.html-module.html#XHTML_NAMESPACE
-lxml.html._id_xpath    lxml.html-module.html#_id_xpath
-lxml.html.make_links_absolute  lxml.html-module.html#make_links_absolute
-lxml.html.resolve_base_href    lxml.html-module.html#resolve_base_href
-lxml.html.__bytes_replace_meta_content_type    lxml.html-module.html#__bytes_replace_meta_content_type
-lxml.html.rewrite_links        lxml.html-module.html#rewrite_links
-lxml.html.fragment_fromstring  lxml.html-module.html#fragment_fromstring
-lxml.html.html_to_xhtml        lxml.html-module.html#html_to_xhtml
-lxml.html._unquote_match       lxml.html-module.html#_unquote_match
-lxml.html.fragments_fromstring lxml.html-module.html#fragments_fromstring
-lxml.html.__str_replace_meta_content_type      lxml.html-module.html#__str_replace_meta_content_type
-lxml.html._options_xpath       lxml.html-module.html#_options_xpath
-lxml.html.document_fromstring  lxml.html-module.html#document_fromstring
-lxml.html.Element      lxml.html-module.html#Element
-lxml.html.__fix_docstring      lxml.html-module.html#__fix_docstring
-lxml.html._class_xpath lxml.html-module.html#_class_xpath
-lxml.html._rel_links_xpath     lxml.html-module.html#_rel_links_xpath
-lxml.html.tostring     lxml.html-module.html#tostring
-lxml.html.find_class   lxml.html-module.html#find_class
-lxml.html.find_rel_links       lxml.html-module.html#find_rel_links
-lxml.html.html_parser  lxml.html-module.html#html_parser
-lxml.html.open_in_browser      lxml.html-module.html#open_in_browser
-lxml.html.fromstring   lxml.html-module.html#fromstring
-lxml.html._label_xpath lxml.html-module.html#_label_xpath
-lxml.html._transform_result    lxml.html-module.html#_transform_result
-lxml.html.open_http_urllib     lxml.html-module.html#open_http_urllib
-lxml.html.xhtml_to_html        lxml.html-module.html#xhtml_to_html
-lxml.html.ElementSoup  lxml.html.ElementSoup-module.html
-lxml.html.ElementSoup.parse    lxml.html.ElementSoup-module.html#parse
-lxml.html.ElementSoup._parse   lxml.html.soupparser-module.html#parse
-lxml.html.ElementSoup.convert_tree     lxml.html.ElementSoup-module.html#convert_tree
-lxml.html.ElementSoup.__doc__  lxml.html.ElementSoup-module.html#__doc__
-lxml.html.ElementSoup.__package__      lxml.html.ElementSoup-module.html#__package__
-lxml.html.builder      lxml.html.builder-module.html
-lxml.html.builder.BLOCKQUOTE   lxml.html.builder-module.html#BLOCKQUOTE
-lxml.html.builder.OBJECT       lxml.html.builder-module.html#OBJECT
-lxml.html.builder.LINK lxml.html.builder-module.html#LINK
-lxml.html.builder.BR   lxml.html.builder-module.html#BR
-lxml.html.builder.OPTGROUP     lxml.html.builder-module.html#OPTGROUP
-lxml.html.builder.__package__  lxml.html.builder-module.html#__package__
-lxml.html.builder.SUB  lxml.html.builder-module.html#SUB
-lxml.html.builder.PRE  lxml.html.builder-module.html#PRE
-lxml.html.builder.FRAME        lxml.html.builder-module.html#FRAME
-lxml.html.builder.BODY lxml.html.builder-module.html#BODY
-lxml.html.builder.TH   lxml.html.builder-module.html#TH
-lxml.html.builder.P    lxml.html.builder-module.html#P
-lxml.html.builder.BASE lxml.html.builder-module.html#BASE
-lxml.html.builder.TFOOT        lxml.html.builder-module.html#TFOOT
-lxml.html.builder.VAR  lxml.html.builder-module.html#VAR
-lxml.html.builder.MAP  lxml.html.builder-module.html#MAP
-lxml.html.builder.OL   lxml.html.builder-module.html#OL
-lxml.html.builder.TEXTAREA     lxml.html.builder-module.html#TEXTAREA
-lxml.html.builder.ACRONYM      lxml.html.builder-module.html#ACRONYM
-lxml.html.builder.MENU lxml.html.builder-module.html#MENU
-lxml.html.builder.DT   lxml.html.builder-module.html#DT
-lxml.html.builder.ADDRESS      lxml.html.builder-module.html#ADDRESS
-lxml.html.builder.CODE lxml.html.builder-module.html#CODE
-lxml.html.builder.HR   lxml.html.builder-module.html#HR
-lxml.html.builder.ISINDEX      lxml.html.builder-module.html#ISINDEX
-lxml.html.builder.HEAD lxml.html.builder-module.html#HEAD
-lxml.html.builder.LABEL        lxml.html.builder-module.html#LABEL
-lxml.html.builder.META lxml.html.builder-module.html#META
-lxml.html.builder.DEL  lxml.html.builder-module.html#DEL
-lxml.html.builder.FONT lxml.html.builder-module.html#FONT
-lxml.html.builder.SELECT       lxml.html.builder-module.html#SELECT
-lxml.html.builder.NOFRAMES     lxml.html.builder-module.html#NOFRAMES
-lxml.html.builder.CENTER       lxml.html.builder-module.html#CENTER
-lxml.html.builder.KBD  lxml.html.builder-module.html#KBD
-lxml.html.builder.HTML lxml.html.builder-module.html#HTML
-lxml.html.builder.EM   lxml.html.builder-module.html#EM
-lxml.html.builder.FRAMESET     lxml.html.builder-module.html#FRAMESET
-lxml.html.builder.FIELDSET     lxml.html.builder-module.html#FIELDSET
-lxml.html.builder.FOR  lxml.html.builder-module.html#FOR
-lxml.html.builder.BASEFONT     lxml.html.builder-module.html#BASEFONT
-lxml.html.builder.BDO  lxml.html.builder-module.html#BDO
-lxml.html.builder.PARAM        lxml.html.builder-module.html#PARAM
-lxml.html.builder.S    lxml.html.builder-module.html#S
-lxml.html.builder.INPUT        lxml.html.builder-module.html#INPUT
-lxml.html.builder.H2   lxml.html.builder-module.html#H2
-lxml.html.builder.H3   lxml.html.builder-module.html#H3
-lxml.html.builder.BUTTON       lxml.html.builder-module.html#BUTTON
-lxml.html.builder.SCRIPT       lxml.html.builder-module.html#SCRIPT
-lxml.html.builder.H6   lxml.html.builder-module.html#H6
-lxml.html.builder.H4   lxml.html.builder-module.html#H4
-lxml.html.builder.INS  lxml.html.builder-module.html#INS
-lxml.html.builder.UL   lxml.html.builder-module.html#UL
-lxml.html.builder.STRIKE       lxml.html.builder-module.html#STRIKE
-lxml.html.builder.OPTION       lxml.html.builder-module.html#OPTION
-lxml.html.builder.TITLE        lxml.html.builder-module.html#TITLE
-lxml.html.builder.SUP  lxml.html.builder-module.html#SUP
-lxml.html.builder.SMALL        lxml.html.builder-module.html#SMALL
-lxml.html.builder.STRONG       lxml.html.builder-module.html#STRONG
-lxml.html.builder.COL  lxml.html.builder-module.html#COL
-lxml.html.builder.AREA lxml.html.builder-module.html#AREA
-lxml.html.builder.APPLET       lxml.html.builder-module.html#APPLET
-lxml.html.builder.TABLE        lxml.html.builder-module.html#TABLE
-lxml.html.builder.B    lxml.html.builder-module.html#B
-lxml.html.builder.IMG  lxml.html.builder-module.html#IMG
-lxml.html.builder.DFN  lxml.html.builder-module.html#DFN
-lxml.html.builder.SPAN lxml.html.builder-module.html#SPAN
-lxml.html.builder.DL   lxml.html.builder-module.html#DL
-lxml.html.builder.H1   lxml.html.builder-module.html#H1
-lxml.html.builder.DD   lxml.html.builder-module.html#DD
-lxml.html.builder.TBODY        lxml.html.builder-module.html#TBODY
-lxml.html.builder.DIV  lxml.html.builder-module.html#DIV
-lxml.html.builder.H5   lxml.html.builder-module.html#H5
-lxml.html.builder.LEGEND       lxml.html.builder-module.html#LEGEND
-lxml.html.builder.DIR  lxml.html.builder-module.html#DIR
-lxml.html.builder.NOSCRIPT     lxml.html.builder-module.html#NOSCRIPT
-lxml.html.builder.COLGROUP     lxml.html.builder-module.html#COLGROUP
-lxml.html.builder.BIG  lxml.html.builder-module.html#BIG
-lxml.html.builder.TT   lxml.html.builder-module.html#TT
-lxml.html.builder.TR   lxml.html.builder-module.html#TR
-lxml.html.builder.LI   lxml.html.builder-module.html#LI
-lxml.html.builder.IFRAME       lxml.html.builder-module.html#IFRAME
-lxml.html.builder.TD   lxml.html.builder-module.html#TD
-lxml.html.builder.CLASS        lxml.html.builder-module.html#CLASS
-lxml.html.builder.A    lxml.html.builder-module.html#A
-lxml.html.builder.STYLE        lxml.html.builder-module.html#STYLE
-lxml.html.builder.E    lxml.html.builder-module.html#E
-lxml.html.builder.FORM lxml.html.builder-module.html#FORM
-lxml.html.builder.I    lxml.html.builder-module.html#I
-lxml.html.builder.Q    lxml.html.builder-module.html#Q
-lxml.html.builder.CAPTION      lxml.html.builder-module.html#CAPTION
-lxml.html.builder.U    lxml.html.builder-module.html#U
-lxml.html.builder.ABBR lxml.html.builder-module.html#ABBR
-lxml.html.builder.THEAD        lxml.html.builder-module.html#THEAD
-lxml.html.builder.SAMP lxml.html.builder-module.html#SAMP
-lxml.html.builder.CITE lxml.html.builder-module.html#CITE
-lxml.html.clean        lxml.html.clean-module.html
-lxml.html.clean._css_import_re lxml.html.clean-module.html#_css_import_re
-lxml.html.clean.word_break_html        lxml.html.clean-module.html#word_break_html
-lxml.html.clean._link_regexes  lxml.html.clean-module.html#_link_regexes
-lxml.html.clean._substitute_whitespace lxml.html.clean-module.html#_substitute_whitespace
-lxml.html.clean._nons  lxml.html-module.html#_nons
-lxml.html.clean._find_styled_elements  lxml.html.clean-module.html#_find_styled_elements
-lxml.html.clean._break_text    lxml.html.clean-module.html#_break_text
-lxml.html.clean._avoid_classes lxml.html.clean-module.html#_avoid_classes
-lxml.html.clean._javascript_scheme_re  lxml.html.clean-module.html#_javascript_scheme_re
-lxml.html.clean.__package__    lxml.html.clean-module.html#__package__
-lxml.html.clean._avoid_elements        lxml.html.clean-module.html#_avoid_elements
-lxml.html.clean._find_external_links   lxml.html.clean-module.html#_find_external_links
-lxml.html.clean._insert_break  lxml.html.clean-module.html#_insert_break
-lxml.html.clean._transform_result      lxml.html-module.html#_transform_result
-lxml.html.clean.autolink       lxml.html.clean-module.html#autolink
-lxml.html.clean._conditional_comment_re        lxml.html.clean-module.html#_conditional_comment_re
-lxml.html.clean._link_text     lxml.html.clean-module.html#_link_text
-lxml.html.clean._avoid_hosts   lxml.html.clean-module.html#_avoid_hosts
-lxml.html.clean.autolink_html  lxml.html.clean-module.html#autolink_html
-lxml.html.clean.tostring       lxml.html-module.html#tostring
-lxml.html.clean.clean_html     lxml.html.clean-module.html#clean_html
-lxml.html.clean._avoid_word_break_classes      lxml.html.clean-module.html#_avoid_word_break_classes
-lxml.html.clean._css_javascript_re     lxml.html.clean-module.html#_css_javascript_re
-lxml.html.clean.fromstring     lxml.html-module.html#fromstring
-lxml.html.clean.word_break     lxml.html.clean-module.html#word_break
-lxml.html.clean._break_prefer_re       lxml.html.clean-module.html#_break_prefer_re
-lxml.html.clean.clean  lxml.html.clean-module.html#clean
-lxml.html.clean._avoid_word_break_elements     lxml.html.clean-module.html#_avoid_word_break_elements
-lxml.html.defs lxml.html.defs-module.html
-lxml.html.defs.block_tags      lxml.html.defs-module.html#block_tags
-lxml.html.defs.link_attrs      lxml.html.defs-module.html#link_attrs
-lxml.html.defs.tags    lxml.html.defs-module.html#tags
-lxml.html.defs.font_style_tags lxml.html.defs-module.html#font_style_tags
-lxml.html.defs.event_attrs     lxml.html.defs-module.html#event_attrs
-lxml.html.defs.safe_attrs      lxml.html.defs-module.html#safe_attrs
-lxml.html.defs.table_tags      lxml.html.defs-module.html#table_tags
-lxml.html.defs.__package__     lxml.html.defs-module.html#__package__
-lxml.html.defs.top_level_tags  lxml.html.defs-module.html#top_level_tags
-lxml.html.defs.form_tags       lxml.html.defs-module.html#form_tags
-lxml.html.defs.phrase_tags     lxml.html.defs-module.html#phrase_tags
-lxml.html.defs.deprecated_tags lxml.html.defs-module.html#deprecated_tags
-lxml.html.defs.head_tags       lxml.html.defs-module.html#head_tags
-lxml.html.defs.list_tags       lxml.html.defs-module.html#list_tags
-lxml.html.defs.special_inline_tags     lxml.html.defs-module.html#special_inline_tags
-lxml.html.defs.empty_tags      lxml.html.defs-module.html#empty_tags
-lxml.html.defs.general_block_tags      lxml.html.defs-module.html#general_block_tags
-lxml.html.defs.frame_tags      lxml.html.defs-module.html#frame_tags
-lxml.html.defs.nonstandard_tags        lxml.html.defs-module.html#nonstandard_tags
-lxml.html.diff lxml.html.diff-module.html
-lxml.html.diff._move_el_inside_block   lxml.html.diff-module.html#_move_el_inside_block
-lxml.html.diff.compress_merge_back     lxml.html.diff-module.html#compress_merge_back
-lxml.html.diff.serialize_html_fragment lxml.html.diff-module.html#serialize_html_fragment
-lxml.html.diff.split_delete    lxml.html.diff-module.html#split_delete
-lxml.html.diff.split_unbalanced        lxml.html.diff-module.html#split_unbalanced
-lxml.html.diff.is_word lxml.html.diff-module.html#is_word
-lxml.html.diff._contains_block_level_tag       lxml.html.diff-module.html#_contains_block_level_tag
-lxml.html.diff.empty_tags      lxml.html.diff-module.html#empty_tags
-lxml.html.diff.is_start_tag    lxml.html.diff-module.html#is_start_tag
-lxml.html.diff.end_tag lxml.html.diff-module.html#end_tag
-lxml.html.diff.fixup_chunks    lxml.html.diff-module.html#fixup_chunks
-lxml.html.diff.html_annotate   lxml.html.diff-module.html#html_annotate
-lxml.html.diff.cleanup_delete  lxml.html.diff-module.html#cleanup_delete
-lxml.html.diff.htmldiff        lxml.html.diff-module.html#htmldiff
-lxml.html.diff._fixup_ins_del_tags     lxml.html.diff-module.html#_fixup_ins_del_tags
-lxml.html.diff.htmldiff_tokens lxml.html.diff-module.html#htmldiff_tokens
-lxml.html.diff.expand_tokens   lxml.html.diff-module.html#expand_tokens
-lxml.html.diff.__package__     lxml.html.diff-module.html#__package__
-lxml.html.diff.block_level_tags        lxml.html.diff-module.html#block_level_tags
-lxml.html.diff.compress_tokens lxml.html.diff-module.html#compress_tokens
-lxml.html.diff.html_annotate_merge_annotations lxml.html.diff-module.html#html_annotate_merge_annotations
-lxml.html.diff._merge_element_contents lxml.html.diff-module.html#_merge_element_contents
-lxml.html.diff.split_words     lxml.html.diff-module.html#split_words
-lxml.html.diff.block_level_container_tags      lxml.html.diff-module.html#block_level_container_tags
-lxml.html.diff.flatten_el      lxml.html.diff-module.html#flatten_el
-lxml.html.diff.markup_serialize_tokens lxml.html.diff-module.html#markup_serialize_tokens
-lxml.html.diff._body_re        lxml.html.diff-module.html#_body_re
-lxml.html.diff.locate_unbalanced_start lxml.html.diff-module.html#locate_unbalanced_start
-lxml.html.diff.fragment_fromstring     lxml.html-module.html#fragment_fromstring
-lxml.html.diff.fixup_ins_del_tags      lxml.html.diff-module.html#fixup_ins_del_tags
-lxml.html.diff.default_markup  lxml.html.diff-module.html#default_markup
-lxml.html.diff.tokenize        lxml.html.diff-module.html#tokenize
-lxml.html.diff.cleanup_html    lxml.html.diff-module.html#cleanup_html
-lxml.html.diff.tokenize_annotated      lxml.html.diff-module.html#tokenize_annotated
-lxml.html.diff.parse_html      lxml.html.diff-module.html#parse_html
-lxml.html.diff.merge_insert    lxml.html.diff-module.html#merge_insert
-lxml.html.diff.merge_delete    lxml.html.diff-module.html#merge_delete
-lxml.html.diff._ins_del_re     lxml.html.diff-module.html#_ins_del_re
-lxml.html.diff.locate_unbalanced_end   lxml.html.diff-module.html#locate_unbalanced_end
-lxml.html.diff.start_tag       lxml.html.diff-module.html#start_tag
-lxml.html.diff._end_body_re    lxml.html.diff-module.html#_end_body_re
-lxml.html.diff.is_end_tag      lxml.html.diff-module.html#is_end_tag
-lxml.html.diff.copy_annotations        lxml.html.diff-module.html#copy_annotations
-lxml.html.diff.end_whitespace_re       lxml.html.diff-module.html#end_whitespace_re
-lxml.html.diff.start_whitespace_re     lxml.html.diff-module.html#start_whitespace_re
-lxml.html.formfill     lxml.html.formfill-module.html
-lxml.html.formfill._fill_single        lxml.html.formfill-module.html#_fill_single
-lxml.html.formfill._input_xpath        lxml.html.formfill-module.html#_input_xpath
-lxml.html.formfill._nons       lxml.html-module.html#_nons
-lxml.html.formfill._insert_error       lxml.html.formfill-module.html#_insert_error
-lxml.html.formfill._fill_form  lxml.html.formfill-module.html#_fill_form
-lxml.html.formfill._check      lxml.html.formfill-module.html#_check
-lxml.html.formfill._takes_multiple     lxml.html.formfill-module.html#_takes_multiple
-lxml.html.formfill.__package__ lxml.html.formfill-module.html#__package__
-lxml.html.formfill.insert_errors_html  lxml.html.formfill-module.html#insert_errors_html
-lxml.html.formfill._form_name_xpath    lxml.html.formfill-module.html#_form_name_xpath
-lxml.html.formfill._name_xpath lxml.html.formfill-module.html#_name_xpath
-lxml.html.formfill.fill_form_html      lxml.html.formfill-module.html#fill_form_html
-lxml.html.formfill._add_class  lxml.html.formfill-module.html#_add_class
-lxml.html.formfill._transform_result   lxml.html-module.html#_transform_result
-lxml.html.formfill.default_error_creator       lxml.html.formfill-module.html#default_error_creator
-lxml.html.formfill._find_elements_for_name     lxml.html.formfill-module.html#_find_elements_for_name
-lxml.html.formfill._label_for_xpath    lxml.html.formfill-module.html#_label_for_xpath
-lxml.html.formfill._fill_multiple      lxml.html.formfill-module.html#_fill_multiple
-lxml.html.formfill._select     lxml.html.formfill-module.html#_select
-lxml.html.formfill.fill_form   lxml.html.formfill-module.html#fill_form
-lxml.html.formfill.insert_errors       lxml.html.formfill-module.html#insert_errors
-lxml.html.formfill._find_form_ids      lxml.html.formfill-module.html#_find_form_ids
-lxml.html.formfill.fromstring  lxml.html-module.html#fromstring
-lxml.html.formfill._tag        lxml.html.formfill-module.html#_tag
-lxml.html.formfill._find_form  lxml.html.formfill-module.html#_find_form
-lxml.html.formfill.tostring    lxml.html-module.html#tostring
-lxml.html.html5parser  lxml.html.html5parser-module.html
-lxml.html.html5parser.fragment_fromstring      lxml.html.html5parser-module.html#fragment_fromstring
-lxml.html.html5parser.xhtml_parser     lxml.html.html5parser-module.html#xhtml_parser
-lxml.html.html5parser.fragments_fromstring     lxml.html.html5parser-module.html#fragments_fromstring
-lxml.html.html5parser.__package__      lxml.html.html5parser-module.html#__package__
-lxml.html.html5parser.parse    lxml.html.html5parser-module.html#parse
-lxml.html.html5parser.html_parser      lxml.html.html5parser-module.html#html_parser
-lxml.html.html5parser.document_fromstring      lxml.html.html5parser-module.html#document_fromstring
-lxml.html.html5parser._find_tag        lxml.html.html5parser-module.html#_find_tag
-lxml.html.html5parser.fromstring       lxml.html.html5parser-module.html#fromstring
-lxml.html.html5parser._contains_block_level_tag        lxml.html-module.html#_contains_block_level_tag
-lxml.html.soupparser   lxml.html.soupparser-module.html
-lxml.html.soupparser._convert_tree     lxml.html.soupparser-module.html#_convert_tree
-lxml.html.soupparser._convert_children lxml.html.soupparser-module.html#_convert_children
-lxml.html.soupparser.__package__       lxml.html.soupparser-module.html#__package__
-lxml.html.soupparser.parse     lxml.html.soupparser-module.html#parse
-lxml.html.soupparser.convert_tree      lxml.html.soupparser-module.html#convert_tree
-lxml.html.soupparser.__doc__   lxml.html.soupparser-module.html#__doc__
-lxml.html.soupparser.fromstring        lxml.html.soupparser-module.html#fromstring
-lxml.html.soupparser.unescape  lxml.html.soupparser-module.html#unescape
-lxml.html.soupparser._parse    lxml.html.soupparser-module.html#_parse
-lxml.html.soupparser._append_text      lxml.html.soupparser-module.html#_append_text
-lxml.html.soupparser.handle_entities   lxml.html.soupparser-module.html#handle_entities
-lxml.html.usedoctest   lxml.html.usedoctest-module.html
-lxml.isoschematron     lxml.isoschematron-module.html
-lxml.isoschematron.SVRL_NS     lxml.isoschematron-module.html#SVRL_NS
-lxml.isoschematron.iso_svrl_for_xslt1  lxml.isoschematron-module.html#iso_svrl_for_xslt1
-lxml.isoschematron._xml_schema_root    lxml.isoschematron-module.html#_xml_schema_root
-lxml.isoschematron._stylesheet_param_dict      lxml.isoschematron-module.html#_stylesheet_param_dict
-lxml.isoschematron.svrl_validation_errors      lxml.isoschematron-module.html#svrl_validation_errors
-lxml.isoschematron.iso_dsdl_include    lxml.isoschematron-module.html#iso_dsdl_include
-lxml.isoschematron.extract_rng lxml.isoschematron-module.html#extract_rng
-lxml.isoschematron._resources_dir      lxml.isoschematron-module.html#_resources_dir
-lxml.isoschematron.__package__ lxml.isoschematron-module.html#__package__
-lxml.isoschematron.SCHEMATRON_NS       lxml.isoschematron-module.html#SCHEMATRON_NS
-lxml.isoschematron._schematron_root    lxml.isoschematron-module.html#_schematron_root
-lxml.isoschematron.extract_xsd lxml.isoschematron-module.html#extract_xsd
-lxml.isoschematron.RELAXNG_NS  lxml.isoschematron-module.html#RELAXNG_NS
-lxml.isoschematron.XML_SCHEMA_NS       lxml.isoschematron-module.html#XML_SCHEMA_NS
-lxml.isoschematron.schematron_schema_valid     lxml.isoschematron-module.html#schematron_schema_valid
-lxml.isoschematron.stylesheet_params   lxml.isoschematron-module.html#stylesheet_params
-lxml.isoschematron.iso_abstract_expand lxml.isoschematron-module.html#iso_abstract_expand
-lxml.objectify lxml.objectify-module.html
-lxml.objectify.enable_recursive_str    lxml.objectify-module.html#enable_recursive_str
-lxml.objectify.dump    lxml.objectify-module.html#dump
-lxml.objectify.__parseBool     lxml.objectify-module.html#__parseBool
-lxml.objectify.annotate        lxml.objectify-module.html#annotate
-lxml.objectify.set_default_parser      lxml.objectify-module.html#set_default_parser
-lxml.objectify.pyannotate      lxml.objectify-module.html#pyannotate
-lxml.objectify.getRegisteredTypes      lxml.objectify-module.html#getRegisteredTypes
-lxml.objectify.xsiannotate     lxml.objectify-module.html#xsiannotate
-lxml.objectify.PYTYPE_ATTRIBUTE        lxml.objectify-module.html#PYTYPE_ATTRIBUTE
-lxml.objectify.__package__     lxml.objectify-module.html#__package__
-lxml.objectify.pytypename      lxml.objectify-module.html#pytypename
-lxml.objectify.makeparser      lxml.objectify-module.html#makeparser
-lxml.objectify.XML     lxml.objectify-module.html#XML
-lxml.objectify.deannotate      lxml.objectify-module.html#deannotate
-lxml.objectify.E       lxml.objectify-module.html#E
-lxml.objectify.Element lxml.objectify-module.html#Element
-lxml.objectify.__test__        lxml.objectify-module.html#__test__
-lxml.objectify.__unpickleElementTree   lxml.objectify-module.html#__unpickleElementTree
-lxml.objectify.__lower_bool    lxml.objectify-module.html#__lower_bool
-lxml.objectify.parse   lxml.objectify-module.html#parse
-lxml.objectify.set_pytype_attribute_tag        lxml.objectify-module.html#set_pytype_attribute_tag
-lxml.objectify.__checkBool     lxml.objectify-module.html#__checkBool
-lxml.objectify.fromstring      lxml.objectify-module.html#fromstring
-lxml.objectify.DataElement     lxml.objectify-module.html#DataElement
-lxml.pyclasslookup     lxml.pyclasslookup-module.html
-lxml.pyclasslookup.__package__ lxml.pyclasslookup-module.html#__package__
-lxml.sax       lxml.sax-module.html
-lxml.sax.Comment       lxml.etree-module.html#Comment
-lxml.sax.ProcessingInstruction lxml.etree-module.html#PI
-lxml.sax.SubElement    lxml.etree-module.html#SubElement
-lxml.sax.__package__   lxml.sax-module.html#__package__
-lxml.sax.saxify        lxml.sax-module.html#saxify
-lxml.sax._getNsTag     lxml.sax-module.html#_getNsTag
-lxml.sax.ElementTree   lxml.etree-module.html#ElementTree
-lxml.tests     lxml.tests-module.html
-lxml.tests.__package__ lxml.tests-module.html#__package__
-lxml.tests.common_imports      lxml.tests.common_imports-module.html
-lxml.tests.common_imports.make_doctest lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.common_imports._str lxml.tests.common_imports-module.html#_str
-lxml.tests.common_imports._bytes       lxml.tests.common_imports-module.html#_bytes
-lxml.tests.common_imports.canonicalize lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.common_imports._fix_unicode lxml.tests.common_imports-module.html#_fix_unicode
-lxml.tests.common_imports.write_to_file        lxml.tests.common_imports-module.html#write_to_file
-lxml.tests.common_imports.__package__  lxml.tests.common_imports-module.html#__package__
-lxml.tests.common_imports.filter_by_version    lxml.tests.common_imports-module.html#filter_by_version
-lxml.tests.common_imports._get_caller_relative_path    lxml.tests.common_imports-module.html#_get_caller_relative_path
-lxml.tests.common_imports.unentitify   lxml.tests.common_imports-module.html#unentitify
-lxml.tests.common_imports.doctest_parser       lxml.tests.common_imports-module.html#doctest_parser
-lxml.tests.common_imports._fix_bytes   lxml.tests.common_imports-module.html#_fix_bytes
-lxml.tests.common_imports._fix_exceptions      lxml.tests.common_imports-module.html#_fix_exceptions
-lxml.tests.common_imports.make_version_tuple   lxml.tests.common_imports-module.html#make_version_tuple
-lxml.tests.common_imports.ET_VERSION   lxml.tests.common_imports-module.html#ET_VERSION
-lxml.tests.common_imports.read_file    lxml.tests.common_imports-module.html#read_file
-lxml.tests.common_imports.fileInTestDir        lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.common_imports.CET_VERSION  lxml.tests.common_imports-module.html#CET_VERSION
-lxml.tests.common_imports._fix_traceback       lxml.tests.common_imports-module.html#_fix_traceback
-lxml.tests.common_imports.readFileInTestDir    lxml.tests.common_imports-module.html#readFileInTestDir
-lxml.tests.test_classlookup    lxml.tests.test_classlookup-module.html
-lxml.tests.test_classlookup.xml_str    lxml.tests.test_classlookup-module.html#xml_str
-lxml.tests.test_classlookup.this_dir   lxml.tests.test_classlookup-module.html#this_dir
-lxml.tests.test_classlookup.fileInTestDir      lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_classlookup._str       lxml.tests.common_imports-module.html#_str
-lxml.tests.test_classlookup.__package__        lxml.tests.test_classlookup-module.html#__package__
-lxml.tests.test_classlookup._bytes     lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_classlookup.test_suite lxml.tests.test_classlookup-module.html#test_suite
-lxml.tests.test_classlookup.canonicalize       lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_css    lxml.tests.test_css-module.html
-lxml.tests.test_css.doc_fn     lxml.tests.test_css-module.html#doc_fn
-lxml.tests.test_css.make_doctest       lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_css.__package__        lxml.tests.test_css-module.html#__package__
-lxml.tests.test_css.test_suite lxml.tests.test_css-module.html#test_suite
-lxml.tests.test_css.unique     lxml.tests.test_css-module.html#unique
-lxml.tests.test_dtd    lxml.tests.test_dtd-module.html
-lxml.tests.test_dtd.make_doctest       lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_dtd.fileInTestDir      lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_dtd.__package__        lxml.tests.test_dtd-module.html#__package__
-lxml.tests.test_dtd._bytes     lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_dtd.test_suite lxml.tests.test_dtd-module.html#test_suite
-lxml.tests.test_dtd.this_dir   lxml.tests.test_dtd-module.html#this_dir
-lxml.tests.test_elementtree    lxml.tests.test_elementtree-module.html
-lxml.tests.test_elementtree._str       lxml.tests.common_imports-module.html#_str
-lxml.tests.test_elementtree.canonicalize       lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_elementtree._bytes     lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_elementtree.__package__        lxml.tests.test_elementtree-module.html#__package__
-lxml.tests.test_elementtree.filter_by_version  lxml.tests.common_imports-module.html#filter_by_version
-lxml.tests.test_elementtree.this_dir   lxml.tests.test_elementtree-module.html#this_dir
-lxml.tests.test_elementtree.reversed   lxml.tests.test_elementtree-module.html#reversed
-lxml.tests.test_elementtree.cElementTree       lxml.tests.test_elementtree-module.html#cElementTree
-lxml.tests.test_elementtree.fileInTestDir      lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_elementtree.test_suite lxml.tests.test_elementtree-module.html#test_suite
-lxml.tests.test_errors lxml.tests.test_errors-module.html
-lxml.tests.test_errors.__package__     lxml.tests.test_errors-module.html#__package__
-lxml.tests.test_errors.test_suite      lxml.tests.test_errors-module.html#test_suite
-lxml.tests.test_errors.this_dir        lxml.tests.test_errors-module.html#this_dir
-lxml.tests.test_etree  lxml.tests.test_etree-module.html
-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._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.this_dir lxml.tests.test_etree-module.html#this_dir
-lxml.tests.test_etree.sorted   lxml.tests.common_imports-module.html#sorted
-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_etree.read_file        lxml.tests.common_imports-module.html#read_file
-lxml.tests.test_htmlparser     lxml.tests.test_htmlparser-module.html
-lxml.tests.test_htmlparser._str        lxml.tests.common_imports-module.html#_str
-lxml.tests.test_htmlparser.fileInTestDir       lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_htmlparser.__package__ lxml.tests.test_htmlparser-module.html#__package__
-lxml.tests.test_htmlparser.write_to_file       lxml.tests.common_imports-module.html#write_to_file
-lxml.tests.test_htmlparser._bytes      lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_htmlparser.test_suite  lxml.tests.test_htmlparser-module.html#test_suite
-lxml.tests.test_htmlparser.this_dir    lxml.tests.test_htmlparser-module.html#this_dir
-lxml.tests.test_io     lxml.tests.test_io-module.html
-lxml.tests.test_io._str        lxml.tests.common_imports-module.html#_str
-lxml.tests.test_io._bytes      lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_io.read_file   lxml.tests.common_imports-module.html#read_file
-lxml.tests.test_io.this_dir    lxml.tests.test_io-module.html#this_dir
-lxml.tests.test_io.__package__ lxml.tests.test_io-module.html#__package__
-lxml.tests.test_io.write_to_file       lxml.tests.common_imports-module.html#write_to_file
-lxml.tests.test_io.fileInTestDir       lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_io.test_suite  lxml.tests.test_io-module.html#test_suite
-lxml.tests.test_isoschematron  lxml.tests.test_isoschematron-module.html
-lxml.tests.test_isoschematron.make_doctest     lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_isoschematron.fileInTestDir    lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_isoschematron.__package__      lxml.tests.test_isoschematron-module.html#__package__
-lxml.tests.test_isoschematron.test_suite       lxml.tests.test_isoschematron-module.html#test_suite
-lxml.tests.test_isoschematron.this_dir lxml.tests.test_isoschematron-module.html#this_dir
-lxml.tests.test_nsclasses      lxml.tests.test_nsclasses-module.html
-lxml.tests.test_nsclasses.make_doctest lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_nsclasses.__package__  lxml.tests.test_nsclasses-module.html#__package__
-lxml.tests.test_nsclasses._bytes       lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_nsclasses.test_suite   lxml.tests.test_nsclasses-module.html#test_suite
-lxml.tests.test_nsclasses.this_dir     lxml.tests.test_nsclasses-module.html#this_dir
-lxml.tests.test_objectify      lxml.tests.test_objectify-module.html
-lxml.tests.test_objectify.xsitype2objclass     lxml.tests.test_objectify-module.html#xsitype2objclass
-lxml.tests.test_objectify.make_doctest lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_objectify._str lxml.tests.common_imports-module.html#_str
-lxml.tests.test_objectify._bytes       lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_objectify.PYTYPE_NAMESPACE     lxml.tests.test_objectify-module.html#PYTYPE_NAMESPACE
-lxml.tests.test_objectify.canonicalize lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_objectify.pytype2objclass      lxml.tests.test_objectify-module.html#pytype2objclass
-lxml.tests.test_objectify.xml_str      lxml.tests.test_objectify-module.html#xml_str
-lxml.tests.test_objectify.DEFAULT_NSMAP        lxml.tests.test_objectify-module.html#DEFAULT_NSMAP
-lxml.tests.test_objectify.XML_SCHEMA_NS        lxml.tests.test_objectify-module.html#XML_SCHEMA_NS
-lxml.tests.test_objectify.TREE_PYTYPE  lxml.tests.test_objectify-module.html#TREE_PYTYPE
-lxml.tests.test_objectify.__package__  lxml.tests.test_objectify-module.html#__package__
-lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR        lxml.tests.test_objectify-module.html#XML_SCHEMA_INSTANCE_TYPE_ATTR
-lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR  lxml.tests.test_objectify-module.html#XML_SCHEMA_NIL_ATTR
-lxml.tests.test_objectify.this_dir     lxml.tests.test_objectify-module.html#this_dir
-lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_NS       lxml.tests.test_objectify-module.html#XML_SCHEMA_INSTANCE_NS
-lxml.tests.test_objectify.objectclass2xsitype  lxml.tests.test_objectify-module.html#objectclass2xsitype
-lxml.tests.test_objectify.v    lxml.tests.test_objectify-module.html#v
-lxml.tests.test_objectify.objectclass2pytype   lxml.tests.test_objectify-module.html#objectclass2pytype
-lxml.tests.test_objectify.fileInTestDir        lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_objectify.test_suite   lxml.tests.test_objectify-module.html#test_suite
-lxml.tests.test_pyclasslookup  lxml.tests.test_pyclasslookup-module.html
-lxml.tests.test_pyclasslookup.xml_str  lxml.tests.test_pyclasslookup-module.html#xml_str
-lxml.tests.test_pyclasslookup.this_dir lxml.tests.test_pyclasslookup-module.html#this_dir
-lxml.tests.test_pyclasslookup.fileInTestDir    lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_pyclasslookup.__package__      lxml.tests.test_pyclasslookup-module.html#__package__
-lxml.tests.test_pyclasslookup._bytes   lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_pyclasslookup.test_suite       lxml.tests.test_pyclasslookup-module.html#test_suite
-lxml.tests.test_pyclasslookup.canonicalize     lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_relaxng        lxml.tests.test_relaxng-module.html
-lxml.tests.test_relaxng.make_doctest   lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_relaxng.fileInTestDir  lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_relaxng.__package__    lxml.tests.test_relaxng-module.html#__package__
-lxml.tests.test_relaxng._bytes lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_relaxng.test_suite     lxml.tests.test_relaxng-module.html#test_suite
-lxml.tests.test_relaxng.this_dir       lxml.tests.test_relaxng-module.html#this_dir
-lxml.tests.test_sax    lxml.tests.test_sax-module.html
-lxml.tests.test_sax.make_doctest       lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_sax.__package__        lxml.tests.test_sax-module.html#__package__
-lxml.tests.test_sax._bytes     lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_sax.test_suite lxml.tests.test_sax-module.html#test_suite
-lxml.tests.test_sax.this_dir   lxml.tests.test_sax-module.html#this_dir
-lxml.tests.test_schematron     lxml.tests.test_schematron-module.html
-lxml.tests.test_schematron.make_doctest        lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_schematron.fileInTestDir       lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_schematron.__package__ lxml.tests.test_schematron-module.html#__package__
-lxml.tests.test_schematron.test_suite  lxml.tests.test_schematron-module.html#test_suite
-lxml.tests.test_schematron.this_dir    lxml.tests.test_schematron-module.html#this_dir
-lxml.tests.test_threading      lxml.tests.test_threading-module.html
-lxml.tests.test_threading.__package__  lxml.tests.test_threading-module.html#__package__
-lxml.tests.test_threading._bytes       lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_threading.test_suite   lxml.tests.test_threading-module.html#test_suite
-lxml.tests.test_threading.this_dir     lxml.tests.test_threading-module.html#this_dir
-lxml.tests.test_unicode        lxml.tests.test_unicode-module.html
-lxml.tests.test_unicode.uxml   lxml.tests.test_unicode-module.html#uxml
-lxml.tests.test_unicode.klingon        lxml.tests.test_unicode-module.html#klingon
-lxml.tests.test_unicode.invalid_tag    lxml.tests.test_unicode-module.html#invalid_tag
-lxml.tests.test_unicode._str   lxml.tests.common_imports-module.html#_str
-lxml.tests.test_unicode.__package__    lxml.tests.test_unicode-module.html#__package__
-lxml.tests.test_unicode._bytes lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_unicode.test_suite     lxml.tests.test_unicode-module.html#test_suite
-lxml.tests.test_unicode.this_dir       lxml.tests.test_unicode-module.html#this_dir
-lxml.tests.test_unicode.uni    lxml.tests.test_unicode-module.html#uni
-lxml.tests.test_unicode.ascii_uni      lxml.tests.test_unicode-module.html#ascii_uni
-lxml.tests.test_xmlschema      lxml.tests.test_xmlschema-module.html
-lxml.tests.test_xmlschema.make_doctest lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_xmlschema.fileInTestDir        lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_xmlschema.__package__  lxml.tests.test_xmlschema-module.html#__package__
-lxml.tests.test_xmlschema.test_suite   lxml.tests.test_xmlschema-module.html#test_suite
-lxml.tests.test_xmlschema.this_dir     lxml.tests.test_xmlschema-module.html#this_dir
-lxml.tests.test_xpathevaluator lxml.tests.test_xpathevaluator-module.html
-lxml.tests.test_xpathevaluator.argsTest1       lxml.tests.test_xpathevaluator-module.html#argsTest1
-lxml.tests.test_xpathevaluator.argsTest2       lxml.tests.test_xpathevaluator-module.html#argsTest2
-lxml.tests.test_xpathevaluator.make_doctest    lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_xpathevaluator.tag     lxml.tests.test_xpathevaluator-module.html#tag
-lxml.tests.test_xpathevaluator.stringTest      lxml.tests.test_xpathevaluator-module.html#stringTest
-lxml.tests.test_xpathevaluator._bytes  lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_xpathevaluator.booleanTest     lxml.tests.test_xpathevaluator-module.html#booleanTest
-lxml.tests.test_xpathevaluator.this_dir        lxml.tests.test_xpathevaluator-module.html#this_dir
-lxml.tests.test_xpathevaluator.setTest lxml.tests.test_xpathevaluator-module.html#setTest
-lxml.tests.test_xpathevaluator.resultTypesTest2        lxml.tests.test_xpathevaluator-module.html#resultTypesTest2
-lxml.tests.test_xpathevaluator.SAMPLE_XML      lxml.tests.test_xpathevaluator-module.html#SAMPLE_XML
-lxml.tests.test_xpathevaluator.__package__     lxml.tests.test_xpathevaluator-module.html#__package__
-lxml.tests.test_xpathevaluator.test_suite      lxml.tests.test_xpathevaluator-module.html#test_suite
-lxml.tests.test_xpathevaluator.floatTest       lxml.tests.test_xpathevaluator-module.html#floatTest
-lxml.tests.test_xpathevaluator.stringListTest  lxml.tests.test_xpathevaluator-module.html#stringListTest
-lxml.tests.test_xpathevaluator.xpath   lxml.tests.test_xpathevaluator-module.html#xpath
-lxml.tests.test_xpathevaluator.tag_or_value    lxml.tests.test_xpathevaluator-module.html#tag_or_value
-lxml.tests.test_xpathevaluator.resultTypesTest lxml.tests.test_xpathevaluator-module.html#resultTypesTest
-lxml.tests.test_xpathevaluator.extension       lxml.tests.test_xpathevaluator-module.html#extension
-lxml.tests.test_xpathevaluator.uri     lxml.tests.test_xpathevaluator-module.html#uri
-lxml.tests.test_xpathevaluator.setTest2        lxml.tests.test_xpathevaluator-module.html#setTest2
-lxml.tests.test_xslt   lxml.tests.test_xslt-module.html
-lxml.tests.test_xslt.make_doctest      lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_xslt._str      lxml.tests.common_imports-module.html#_str
-lxml.tests.test_xslt._bytes    lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_xslt.this_dir  lxml.tests.test_xslt-module.html#this_dir
-lxml.tests.test_xslt.__package__       lxml.tests.test_xslt-module.html#__package__
-lxml.tests.test_xslt.is_python3        lxml.tests.test_xslt-module.html#is_python3
-lxml.tests.test_xslt.fileInTestDir     lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_xslt.test_suite        lxml.tests.test_xslt-module.html#test_suite
-lxml.usedoctest        lxml.usedoctest-module.html
-xml.etree.ElementTree  xml.etree.ElementTree-module.html
-xml.etree.ElementTree.XMLID    xml.etree.ElementTree-module.html#XMLID
-xml.etree.ElementTree.fixtag   xml.etree.ElementTree-module.html#fixtag
-xml.etree.ElementTree.dump     xml.etree.ElementTree-module.html#dump
-xml.etree.ElementTree.parse    xml.etree.ElementTree-module.html#parse
-xml.etree.ElementTree._encode  xml.etree.ElementTree-module.html#_encode
-xml.etree.ElementTree._namespace_map   xml.etree.ElementTree-module.html#_namespace_map
-xml.etree.ElementTree._encode_entity   xml.etree.ElementTree-module.html#_encode_entity
-xml.etree.ElementTree.__package__      xml.etree.ElementTree-module.html#__package__
-xml.etree.ElementTree.PI       xml.etree.ElementTree-module.html#PI
-xml.etree.ElementTree.XML      xml.etree.ElementTree-module.html#XML
-xml.etree.ElementTree._raise_serialization_error       xml.etree.ElementTree-module.html#_raise_serialization_error
-xml.etree.ElementTree._escape_cdata    xml.etree.ElementTree-module.html#_escape_cdata
-xml.etree.ElementTree._escape_map      xml.etree.ElementTree-module.html#_escape_map
-xml.etree.ElementTree._escape_attrib   xml.etree.ElementTree-module.html#_escape_attrib
-xml.etree.ElementTree.Element  xml.etree.ElementTree-module.html#Element
-xml.etree.ElementTree.VERSION  xml.etree.ElementTree-module.html#VERSION
-xml.etree.ElementTree.tostring xml.etree.ElementTree-module.html#tostring
-xml.etree.ElementTree.iselement        xml.etree.ElementTree-module.html#iselement
-xml.etree.ElementTree._escape  xml.etree.ElementTree-module.html#_escape
-xml.etree.ElementTree.Comment  xml.etree.ElementTree-module.html#Comment
-xml.etree.ElementTree.ProcessingInstruction    xml.etree.ElementTree-module.html#ProcessingInstruction
-xml.etree.ElementTree.fromstring       xml.etree.ElementTree-module.html#fromstring
-xml.etree.ElementTree.SubElement       xml.etree.ElementTree-module.html#SubElement
-exceptions.AssertionError      exceptions.AssertionError-class.html
-exceptions.AssertionError.__init__     exceptions.AssertionError-class.html#__init__
-exceptions.AssertionError.__new__      exceptions.AssertionError-class.html#__new__
-lxml.ElementInclude.FatalIncludeError  lxml.ElementInclude.FatalIncludeError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.builder.ElementMaker      lxml.builder.ElementMaker-class.html
-lxml.builder.ElementMaker.__getattr__  lxml.builder.ElementMaker-class.html#__getattr__
-lxml.builder.ElementMaker.__call__     lxml.builder.ElementMaker-class.html#__call__
-lxml.builder.ElementMaker.__init__     lxml.builder.ElementMaker-class.html#__init__
-lxml.cssselect.Attrib  lxml.cssselect.Attrib-class.html
-lxml.cssselect.Attrib.xpath    lxml.cssselect.Attrib-class.html#xpath
-lxml.cssselect.Attrib._xpath_attrib    lxml.cssselect.Attrib-class.html#_xpath_attrib
-lxml.cssselect.Attrib.__repr__ lxml.cssselect.Attrib-class.html#__repr__
-lxml.cssselect.Attrib.__init__ lxml.cssselect.Attrib-class.html#__init__
-lxml.cssselect.Attrib._format_attrib   lxml.cssselect.Attrib-class.html#_format_attrib
-lxml.cssselect.CSSSelector     lxml.cssselect.CSSSelector-class.html
-lxml.etree.XPath.__new__       lxml.etree.XPath-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate        lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log       lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.cssselect.CSSSelector.__repr__    lxml.cssselect.CSSSelector-class.html#__repr__
-lxml.etree.XPath.__call__      lxml.etree.XPath-class.html#__call__
-lxml.etree.XPath.path  lxml.etree.XPath-class.html#path
-lxml.cssselect.CSSSelector.__init__    lxml.cssselect.CSSSelector-class.html#__init__
-lxml.cssselect.Class   lxml.cssselect.Class-class.html
-lxml.cssselect.Class.xpath     lxml.cssselect.Class-class.html#xpath
-lxml.cssselect.Class.__repr__  lxml.cssselect.Class-class.html#__repr__
-lxml.cssselect.Class.__init__  lxml.cssselect.Class-class.html#__init__
-lxml.cssselect.CombinedSelector        lxml.cssselect.CombinedSelector-class.html
-lxml.cssselect.CombinedSelector.xpath  lxml.cssselect.CombinedSelector-class.html#xpath
-lxml.cssselect.CombinedSelector._xpath_descendant      lxml.cssselect.CombinedSelector-class.html#_xpath_descendant
-lxml.cssselect.CombinedSelector._xpath_indirect_adjacent       lxml.cssselect.CombinedSelector-class.html#_xpath_indirect_adjacent
-lxml.cssselect.CombinedSelector._xpath_child   lxml.cssselect.CombinedSelector-class.html#_xpath_child
-lxml.cssselect.CombinedSelector.__repr__       lxml.cssselect.CombinedSelector-class.html#__repr__
-lxml.cssselect.CombinedSelector._xpath_direct_adjacent lxml.cssselect.CombinedSelector-class.html#_xpath_direct_adjacent
-lxml.cssselect.CombinedSelector._method_mapping        lxml.cssselect.CombinedSelector-class.html#_method_mapping
-lxml.cssselect.CombinedSelector.__init__       lxml.cssselect.CombinedSelector-class.html#__init__
-lxml.cssselect.Element lxml.cssselect.Element-class.html
-lxml.cssselect.Element.xpath   lxml.cssselect.Element-class.html#xpath
-lxml.cssselect.Element._format_element lxml.cssselect.Element-class.html#_format_element
-lxml.cssselect.Element.__repr__        lxml.cssselect.Element-class.html#__repr__
-lxml.cssselect.Element.__init__        lxml.cssselect.Element-class.html#__init__
-lxml.cssselect.ExpressionError lxml.cssselect.ExpressionError-class.html
-lxml.cssselect.Function        lxml.cssselect.Function-class.html
-lxml.cssselect.Function._xpath_nth_last_child  lxml.cssselect.Function-class.html#_xpath_nth_last_child
-lxml.cssselect.Function.unsupported    lxml.cssselect.Function-class.html#unsupported
-lxml.cssselect.Function._xpath_nth_last_of_type        lxml.cssselect.Function-class.html#_xpath_nth_last_of_type
-lxml.cssselect.Function.__init__       lxml.cssselect.Function-class.html#__init__
-lxml.cssselect.Function._xpath_nth_of_type     lxml.cssselect.Function-class.html#_xpath_nth_of_type
-lxml.cssselect.Function.xpath  lxml.cssselect.Function-class.html#xpath
-lxml.cssselect.Function._xpath_not     lxml.cssselect.Function-class.html#_xpath_not
-lxml.cssselect.Function._xpath_nth_child       lxml.cssselect.Function-class.html#_xpath_nth_child
-lxml.cssselect.Function._xpath_contains        lxml.cssselect.Function-class.html#_xpath_contains
-lxml.cssselect.Function.__repr__       lxml.cssselect.Function-class.html#__repr__
-lxml.cssselect.Hash    lxml.cssselect.Hash-class.html
-lxml.cssselect.Hash.xpath      lxml.cssselect.Hash-class.html#xpath
-lxml.cssselect.Hash.__repr__   lxml.cssselect.Hash-class.html#__repr__
-lxml.cssselect.Hash.__init__   lxml.cssselect.Hash-class.html#__init__
-lxml.cssselect.Or      lxml.cssselect.Or-class.html
-lxml.cssselect.Or.xpath        lxml.cssselect.Or-class.html#xpath
-lxml.cssselect.Or.__repr__     lxml.cssselect.Or-class.html#__repr__
-lxml.cssselect.Or.__init__     lxml.cssselect.Or-class.html#__init__
-lxml.cssselect.Pseudo  lxml.cssselect.Pseudo-class.html
-lxml.cssselect.Pseudo.unsupported      lxml.cssselect.Pseudo-class.html#unsupported
-lxml.cssselect.Pseudo._xpath_first_child       lxml.cssselect.Pseudo-class.html#_xpath_first_child
-lxml.cssselect.Pseudo._xpath_checked   lxml.cssselect.Pseudo-class.html#_xpath_checked
-lxml.cssselect.Pseudo.__init__ lxml.cssselect.Pseudo-class.html#__init__
-lxml.cssselect.Pseudo._xpath_first_of_type     lxml.cssselect.Pseudo-class.html#_xpath_first_of_type
-lxml.cssselect.Pseudo._xpath_only_child        lxml.cssselect.Pseudo-class.html#_xpath_only_child
-lxml.cssselect.Pseudo._xpath_empty     lxml.cssselect.Pseudo-class.html#_xpath_empty
-lxml.cssselect.Pseudo._xpath_root      lxml.cssselect.Pseudo-class.html#_xpath_root
-lxml.cssselect.Pseudo.xpath    lxml.cssselect.Pseudo-class.html#xpath
-lxml.cssselect.Pseudo._xpath_only_of_type      lxml.cssselect.Pseudo-class.html#_xpath_only_of_type
-lxml.cssselect.Pseudo.__repr__ lxml.cssselect.Pseudo-class.html#__repr__
-lxml.cssselect.Pseudo._xpath_last_of_type      lxml.cssselect.Pseudo-class.html#_xpath_last_of_type
-lxml.cssselect.Pseudo._xpath_last_child        lxml.cssselect.Pseudo-class.html#_xpath_last_child
-lxml.cssselect.SelectorSyntaxError     lxml.cssselect.SelectorSyntaxError-class.html
-lxml.cssselect.String  lxml.cssselect.String-class.html
-lxml.cssselect._UniToken.__new__       lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__      lxml.cssselect._UniToken-class.html#__repr__
-lxml.cssselect.Symbol  lxml.cssselect.Symbol-class.html
-lxml.cssselect._UniToken.__new__       lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__      lxml.cssselect._UniToken-class.html#__repr__
-lxml.cssselect.Token   lxml.cssselect.Token-class.html
-lxml.cssselect._UniToken.__new__       lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__      lxml.cssselect._UniToken-class.html#__repr__
-lxml.cssselect.TokenStream     lxml.cssselect.TokenStream-class.html
-lxml.cssselect.TokenStream.peek        lxml.cssselect.TokenStream-class.html#peek
-lxml.cssselect.TokenStream.next        lxml.cssselect.TokenStream-class.html#next
-lxml.cssselect.TokenStream.__iter__    lxml.cssselect.TokenStream-class.html#__iter__
-lxml.cssselect.TokenStream.__init__    lxml.cssselect.TokenStream-class.html#__init__
-lxml.cssselect.XPathExpr       lxml.cssselect.XPathExpr-class.html
-lxml.cssselect.XPathExpr.add_star_prefix       lxml.cssselect.XPathExpr-class.html#add_star_prefix
-lxml.cssselect.XPathExpr.join  lxml.cssselect.XPathExpr-class.html#join
-lxml.cssselect.XPathExpr.add_path      lxml.cssselect.XPathExpr-class.html#add_path
-lxml.cssselect.XPathExpr.__str__       lxml.cssselect.XPathExpr-class.html#__str__
-lxml.cssselect.XPathExpr.add_name_test lxml.cssselect.XPathExpr-class.html#add_name_test
-lxml.cssselect.XPathExpr.__repr__      lxml.cssselect.XPathExpr-class.html#__repr__
-lxml.cssselect.XPathExpr.add_condition lxml.cssselect.XPathExpr-class.html#add_condition
-lxml.cssselect.XPathExpr.add_prefix    lxml.cssselect.XPathExpr-class.html#add_prefix
-lxml.cssselect.XPathExpr.__init__      lxml.cssselect.XPathExpr-class.html#__init__
-lxml.cssselect.XPathExprOr     lxml.cssselect.XPathExprOr-class.html
-lxml.cssselect.XPathExpr.add_star_prefix       lxml.cssselect.XPathExpr-class.html#add_star_prefix
-lxml.cssselect.XPathExpr.join  lxml.cssselect.XPathExpr-class.html#join
-lxml.cssselect.XPathExpr.add_path      lxml.cssselect.XPathExpr-class.html#add_path
-lxml.cssselect.XPathExprOr.__str__     lxml.cssselect.XPathExprOr-class.html#__str__
-lxml.cssselect.XPathExpr.add_name_test lxml.cssselect.XPathExpr-class.html#add_name_test
-lxml.cssselect.XPathExpr.__repr__      lxml.cssselect.XPathExpr-class.html#__repr__
-lxml.cssselect.XPathExpr.add_condition lxml.cssselect.XPathExpr-class.html#add_condition
-lxml.cssselect.XPathExpr.add_prefix    lxml.cssselect.XPathExpr-class.html#add_prefix
-lxml.cssselect.XPathExprOr.__init__    lxml.cssselect.XPathExprOr-class.html#__init__
-lxml.cssselect._UniToken       lxml.cssselect._UniToken-class.html
-lxml.cssselect._UniToken.__new__       lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__      lxml.cssselect._UniToken-class.html#__repr__
-lxml.doctestcompare.LHTMLOutputChecker lxml.doctestcompare.LHTMLOutputChecker-class.html
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_end_tag     lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_end_tag
-lxml.doctestcompare.LXMLOutputChecker.text_compare     lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare
-lxml.doctestcompare.LHTMLOutputChecker.get_default_parser      lxml.doctestcompare.LHTMLOutputChecker-class.html#get_default_parser
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_tag lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_tag
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_text        lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_text
-lxml.doctestcompare.LXMLOutputChecker.get_parser       lxml.doctestcompare.LXMLOutputChecker-class.html#get_parser
-lxml.doctestcompare.LXMLOutputChecker.collect_diff     lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff
-lxml.doctestcompare.LXMLOutputChecker.html_empty_tag   lxml.doctestcompare.LXMLOutputChecker-class.html#html_empty_tag
-lxml.doctestcompare.LXMLOutputChecker._looks_like_markup       lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup
-lxml.doctestcompare.LXMLOutputChecker.format_tag       lxml.doctestcompare.LXMLOutputChecker-class.html#format_tag
-lxml.doctestcompare.LXMLOutputChecker.check_output     lxml.doctestcompare.LXMLOutputChecker-class.html#check_output
-lxml.doctestcompare.LXMLOutputChecker.compare_docs     lxml.doctestcompare.LXMLOutputChecker-class.html#compare_docs
-lxml.doctestcompare.LXMLOutputChecker.format_doc       lxml.doctestcompare.LXMLOutputChecker-class.html#format_doc
-lxml.doctestcompare.LXMLOutputChecker.output_difference        lxml.doctestcompare.LXMLOutputChecker-class.html#output_difference
-lxml.doctestcompare.LXMLOutputChecker.format_end_tag   lxml.doctestcompare.LXMLOutputChecker-class.html#format_end_tag
-lxml.doctestcompare.LXMLOutputChecker.format_text      lxml.doctestcompare.LXMLOutputChecker-class.html#format_text
-lxml.doctestcompare.LXMLOutputChecker.empty_tags       lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags
-lxml.doctestcompare.LXMLOutputChecker.tag_compare      lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare
-lxml.doctestcompare.LXMLOutputChecker  lxml.doctestcompare.LXMLOutputChecker-class.html
-lxml.doctestcompare.LXMLOutputChecker.text_compare     lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare
-lxml.doctestcompare.LXMLOutputChecker._looks_like_markup       lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup
-lxml.doctestcompare.LXMLOutputChecker.empty_tags       lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_tag lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_tag
-lxml.doctestcompare.LXMLOutputChecker.compare_docs     lxml.doctestcompare.LXMLOutputChecker-class.html#compare_docs
-lxml.doctestcompare.LXMLOutputChecker.get_parser       lxml.doctestcompare.LXMLOutputChecker-class.html#get_parser
-lxml.doctestcompare.LXMLOutputChecker.html_empty_tag   lxml.doctestcompare.LXMLOutputChecker-class.html#html_empty_tag
-lxml.doctestcompare.LXMLOutputChecker.get_default_parser       lxml.doctestcompare.LXMLOutputChecker-class.html#get_default_parser
-lxml.doctestcompare.LXMLOutputChecker.format_tag       lxml.doctestcompare.LXMLOutputChecker-class.html#format_tag
-lxml.doctestcompare.LXMLOutputChecker.check_output     lxml.doctestcompare.LXMLOutputChecker-class.html#check_output
-lxml.doctestcompare.LXMLOutputChecker.collect_diff     lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff
-lxml.doctestcompare.LXMLOutputChecker.tag_compare      lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare
-lxml.doctestcompare.LXMLOutputChecker.format_doc       lxml.doctestcompare.LXMLOutputChecker-class.html#format_doc
-lxml.doctestcompare.LXMLOutputChecker.output_difference        lxml.doctestcompare.LXMLOutputChecker-class.html#output_difference
-lxml.doctestcompare.LXMLOutputChecker.format_end_tag   lxml.doctestcompare.LXMLOutputChecker-class.html#format_end_tag
-lxml.doctestcompare.LXMLOutputChecker.format_text      lxml.doctestcompare.LXMLOutputChecker-class.html#format_text
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_end_tag     lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_end_tag
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_text        lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_text
-lxml.doctestcompare._RestoreChecker    lxml.doctestcompare._RestoreChecker-class.html
-lxml.doctestcompare._RestoreChecker.uninstall_dt_self  lxml.doctestcompare._RestoreChecker-class.html#uninstall_dt_self
-lxml.doctestcompare._RestoreChecker.install_clone      lxml.doctestcompare._RestoreChecker-class.html#install_clone
-lxml.doctestcompare._RestoreChecker.uninstall_module   lxml.doctestcompare._RestoreChecker-class.html#uninstall_module
-lxml.doctestcompare._RestoreChecker.uninstall_clone    lxml.doctestcompare._RestoreChecker-class.html#uninstall_clone
-lxml.doctestcompare._RestoreChecker.install_dt_self    lxml.doctestcompare._RestoreChecker-class.html#install_dt_self
-lxml.doctestcompare._RestoreChecker.__call__   lxml.doctestcompare._RestoreChecker-class.html#__call__
-lxml.doctestcompare._RestoreChecker.call_super lxml.doctestcompare._RestoreChecker-class.html#call_super
-lxml.doctestcompare._RestoreChecker.__init__   lxml.doctestcompare._RestoreChecker-class.html#__init__
-lxml.etree.AncestorsIterator   lxml.etree.AncestorsIterator-class.html
-lxml.etree.AncestorsIterator.__new__   lxml.etree.AncestorsIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__   lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next       lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__   lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree.AttributeBasedElementClassLookup    lxml.etree.AttributeBasedElementClassLookup-class.html
-lxml.etree.AttributeBasedElementClassLookup.__new__    lxml.etree.AttributeBasedElementClassLookup-class.html#__new__
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.AttributeBasedElementClassLookup.__init__   lxml.etree.AttributeBasedElementClassLookup-class.html#__init__
-lxml.etree.C14NError   lxml.etree.C14NError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.CDATA       lxml.etree.CDATA-class.html
-lxml.etree.CDATA.__new__       lxml.etree.CDATA-class.html#__new__
-lxml.etree.CDATA.__init__      lxml.etree.CDATA-class.html#__init__
-lxml.etree.CommentBase lxml.etree.CommentBase-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Comment.tag        lxml.etree._Comment-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.CommentBase.__new__ lxml.etree.CommentBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.CommentBase.__init__        lxml.etree.CommentBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Comment.__repr__   lxml.etree._Comment-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree.CustomElementClassLookup    lxml.etree.CustomElementClassLookup-class.html
-lxml.etree.CustomElementClassLookup.__new__    lxml.etree.CustomElementClassLookup-class.html#__new__
-lxml.etree.CustomElementClassLookup.lookup     lxml.etree.CustomElementClassLookup-class.html#lookup
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__ lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.DTD lxml.etree.DTD-class.html
-lxml.etree.DTD.__new__ lxml.etree.DTD-class.html#__new__
-lxml.etree._Validator._clear_error_log lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid      lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message      lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log        lxml.etree._Validator-class.html#error_log
-lxml.etree.DTD.__call__        lxml.etree.DTD-class.html#__call__
-lxml.etree._Validator.assert_  lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate lxml.etree._Validator-class.html#validate
-lxml.etree.DTD.__init__        lxml.etree.DTD-class.html#__init__
-lxml.etree.DTDError    lxml.etree.DTDError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.DTDParseError       lxml.etree.DTDParseError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.DTDValidateError    lxml.etree.DTDValidateError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.DocInfo     lxml.etree.DocInfo-class.html
-lxml.etree.DocInfo.xml_version lxml.etree.DocInfo-class.html#xml_version
-lxml.etree.DocInfo.public_id   lxml.etree.DocInfo-class.html#public_id
-lxml.etree.DocInfo.encoding    lxml.etree.DocInfo-class.html#encoding
-lxml.etree.DocInfo.externalDTD lxml.etree.DocInfo-class.html#externalDTD
-lxml.etree.DocInfo.system_url  lxml.etree.DocInfo-class.html#system_url
-lxml.etree.DocInfo.__new__     lxml.etree.DocInfo-class.html#__new__
-lxml.etree.DocInfo.internalDTD lxml.etree.DocInfo-class.html#internalDTD
-lxml.etree.DocInfo.URL lxml.etree.DocInfo-class.html#URL
-lxml.etree.DocInfo.standalone  lxml.etree.DocInfo-class.html#standalone
-lxml.etree.DocInfo.root_name   lxml.etree.DocInfo-class.html#root_name
-lxml.etree.DocInfo.doctype     lxml.etree.DocInfo-class.html#doctype
-lxml.etree.DocumentInvalid     lxml.etree.DocumentInvalid-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.ETCompatXMLParser   lxml.etree.ETCompatXMLParser-class.html
-lxml.etree._FeedParser.feed    lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close   lxml.etree._FeedParser-class.html#close
-lxml.etree.ETCompatXMLParser.__init__  lxml.etree.ETCompatXMLParser-class.html#__init__
-lxml.etree.ETCompatXMLParser.__new__   lxml.etree.ETCompatXMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log  lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree.ETXPath     lxml.etree.ETXPath-class.html
-lxml.etree.ETXPath.__new__     lxml.etree.ETXPath-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate        lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log       lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPath.__repr__      lxml.etree.XPath-class.html#__repr__
-lxml.etree.XPath.__call__      lxml.etree.XPath-class.html#__call__
-lxml.etree.XPath.path  lxml.etree.XPath-class.html#path
-lxml.etree.ETXPath.__init__    lxml.etree.ETXPath-class.html#__init__
-lxml.etree.ElementBase lxml.etree.ElementBase-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree.ElementChildIterator        lxml.etree.ElementChildIterator-class.html
-lxml.etree.ElementChildIterator.__new__        lxml.etree.ElementChildIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__   lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next       lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__   lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree.ElementClassLookup  lxml.etree.ElementClassLookup-class.html
-lxml.etree.ElementClassLookup.__new__  lxml.etree.ElementClassLookup-class.html#__new__
-lxml.etree.ElementDefaultClassLookup   lxml.etree.ElementDefaultClassLookup-class.html
-lxml.etree.ElementDefaultClassLookup.entity_class      lxml.etree.ElementDefaultClassLookup-class.html#entity_class
-lxml.etree.ElementDefaultClassLookup.__new__   lxml.etree.ElementDefaultClassLookup-class.html#__new__
-lxml.etree.ElementDefaultClassLookup.element_class     lxml.etree.ElementDefaultClassLookup-class.html#element_class
-lxml.etree.ElementDefaultClassLookup.pi_class  lxml.etree.ElementDefaultClassLookup-class.html#pi_class
-lxml.etree.ElementDefaultClassLookup.comment_class     lxml.etree.ElementDefaultClassLookup-class.html#comment_class
-lxml.etree.ElementDefaultClassLookup.__init__  lxml.etree.ElementDefaultClassLookup-class.html#__init__
-lxml.etree.ElementDepthFirstIterator   lxml.etree.ElementDepthFirstIterator-class.html
-lxml.etree.ElementDepthFirstIterator.__new__   lxml.etree.ElementDepthFirstIterator-class.html#__new__
-lxml.etree.ElementDepthFirstIterator.__next__  lxml.etree.ElementDepthFirstIterator-class.html#__next__
-lxml.etree.ElementDepthFirstIterator.next      lxml.etree.ElementDepthFirstIterator-class.html#next
-lxml.etree.ElementDepthFirstIterator.__iter__  lxml.etree.ElementDepthFirstIterator-class.html#__iter__
-lxml.etree.ElementNamespaceClassLookup lxml.etree.ElementNamespaceClassLookup-class.html
-lxml.etree.ElementNamespaceClassLookup.__new__ lxml.etree.ElementNamespaceClassLookup-class.html#__new__
-lxml.etree.ElementNamespaceClassLookup.get_namespace   lxml.etree.ElementNamespaceClassLookup-class.html#get_namespace
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.ElementNamespaceClassLookup.__init__        lxml.etree.ElementNamespaceClassLookup-class.html#__init__
-lxml.etree.ElementTextIterator lxml.etree.ElementTextIterator-class.html
-lxml.etree.ElementTextIterator.__new__ lxml.etree.ElementTextIterator-class.html#__new__
-lxml.etree.ElementTextIterator.__next__        lxml.etree.ElementTextIterator-class.html#__next__
-lxml.etree.ElementTextIterator.next    lxml.etree.ElementTextIterator-class.html#next
-lxml.etree.ElementTextIterator.__iter__        lxml.etree.ElementTextIterator-class.html#__iter__
-lxml.etree.EntityBase  lxml.etree.EntityBase-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Entity.text        lxml.etree._Entity-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Entity.tag lxml.etree._Entity-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.EntityBase.__new__  lxml.etree.EntityBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.EntityBase.__init__ lxml.etree.EntityBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Entity.name        lxml.etree._Entity-class.html#name
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Entity.__repr__    lxml.etree._Entity-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree.Error       lxml.etree.Error-class.html
-lxml.etree.ErrorDomains        lxml.etree.ErrorDomains-class.html
-lxml.etree.ErrorDomains.HTTP   lxml.etree.ErrorDomains-class.html#HTTP
-lxml.etree.ErrorDomains.SCHEMATRONV    lxml.etree.ErrorDomains-class.html#SCHEMATRONV
-lxml.etree.ErrorDomains.DTD    lxml.etree.ErrorDomains-class.html#DTD
-lxml.etree.ErrorDomains.VALID  lxml.etree.ErrorDomains-class.html#VALID
-lxml.etree.ErrorDomains.I18N   lxml.etree.ErrorDomains-class.html#I18N
-lxml.etree.ErrorDomains._getName       lxml.etree.ErrorDomains-class.html#_getName
-lxml.etree.ErrorDomains.C14N   lxml.etree.ErrorDomains-class.html#C14N
-lxml.etree.ErrorDomains.NONE   lxml.etree.ErrorDomains-class.html#NONE
-lxml.etree.ErrorDomains.DATATYPE       lxml.etree.ErrorDomains-class.html#DATATYPE
-lxml.etree.ErrorDomains.XINCLUDE       lxml.etree.ErrorDomains-class.html#XINCLUDE
-lxml.etree.ErrorDomains.HTML   lxml.etree.ErrorDomains-class.html#HTML
-lxml.etree.ErrorDomains.CHECK  lxml.etree.ErrorDomains-class.html#CHECK
-lxml.etree.ErrorDomains.FTP    lxml.etree.ErrorDomains-class.html#FTP
-lxml.etree.ErrorDomains._names lxml.etree.ErrorDomains-class.html#_names
-lxml.etree.ErrorDomains.XSLT   lxml.etree.ErrorDomains-class.html#XSLT
-lxml.etree.ErrorDomains.PARSER lxml.etree.ErrorDomains-class.html#PARSER
-lxml.etree.ErrorDomains.NAMESPACE      lxml.etree.ErrorDomains-class.html#NAMESPACE
-lxml.etree.ErrorDomains.MODULE lxml.etree.ErrorDomains-class.html#MODULE
-lxml.etree.ErrorDomains.IO     lxml.etree.ErrorDomains-class.html#IO
-lxml.etree.ErrorDomains.REGEXP lxml.etree.ErrorDomains-class.html#REGEXP
-lxml.etree.ErrorDomains.XPATH  lxml.etree.ErrorDomains-class.html#XPATH
-lxml.etree.ErrorDomains.RELAXNGV       lxml.etree.ErrorDomains-class.html#RELAXNGV
-lxml.etree.ErrorDomains.RELAXNGP       lxml.etree.ErrorDomains-class.html#RELAXNGP
-lxml.etree.ErrorDomains.WRITER lxml.etree.ErrorDomains-class.html#WRITER
-lxml.etree.ErrorDomains.TREE   lxml.etree.ErrorDomains-class.html#TREE
-lxml.etree.ErrorDomains.SCHEMASP       lxml.etree.ErrorDomains-class.html#SCHEMASP
-lxml.etree.ErrorDomains.CATALOG        lxml.etree.ErrorDomains-class.html#CATALOG
-lxml.etree.ErrorDomains.SCHEMASV       lxml.etree.ErrorDomains-class.html#SCHEMASV
-lxml.etree.ErrorDomains.MEMORY lxml.etree.ErrorDomains-class.html#MEMORY
-lxml.etree.ErrorDomains.OUTPUT lxml.etree.ErrorDomains-class.html#OUTPUT
-lxml.etree.ErrorDomains.XPOINTER       lxml.etree.ErrorDomains-class.html#XPOINTER
-lxml.etree.ErrorLevels lxml.etree.ErrorLevels-class.html
-lxml.etree.ErrorLevels.NONE    lxml.etree.ErrorLevels-class.html#NONE
-lxml.etree.ErrorLevels._names  lxml.etree.ErrorLevels-class.html#_names
-lxml.etree.ErrorLevels.WARNING lxml.etree.ErrorLevels-class.html#WARNING
-lxml.etree.ErrorLevels.ERROR   lxml.etree.ErrorLevels-class.html#ERROR
-lxml.etree.ErrorLevels.FATAL   lxml.etree.ErrorLevels-class.html#FATAL
-lxml.etree.ErrorLevels._getName        lxml.etree.ErrorLevels-class.html#_getName
-lxml.etree.ErrorTypes  lxml.etree.ErrorTypes-class.html
-lxml.etree.ErrorTypes.I18N_CONV_FAILED lxml.etree.ErrorTypes-class.html#I18N_CONV_FAILED
-lxml.etree.ErrorTypes.SCHEMAP_ATTRFORMDEFAULT_VALUE    lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRFORMDEFAULT_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_NOTATION       lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_NOTATION
-lxml.etree.ErrorTypes.RNGP_EXCEPT_MULTIPLE     lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_MULTIPLE
-lxml.etree.ErrorTypes.SCHEMAP_AU_PROPS_CORRECT_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.IO_EINVAL        lxml.etree.ErrorTypes-class.html#IO_EINVAL
-lxml.etree.ErrorTypes.ERR_VERSION_MISMATCH     lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISMATCH
-lxml.etree.ErrorTypes.ERR_ELEMCONTENT_NOT_STARTED      lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_TYPE_AND_SUBTYPE lxml.etree.ErrorTypes-class.html#SCHEMAP_TYPE_AND_SUBTYPE
-lxml.etree.ErrorTypes.FTP_URL_SYNTAX   lxml.etree.ErrorTypes-class.html#FTP_URL_SYNTAX
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP  lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_USE lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_USE
-lxml.etree.ErrorTypes.CHECK_WRONG_PREV lxml.etree.ErrorTypes-class.html#CHECK_WRONG_PREV
-lxml.etree.ErrorTypes.CHECK_NS_SCOPE   lxml.etree.ErrorTypes-class.html#CHECK_NS_SCOPE
-lxml.etree.ErrorTypes.CHECK_NOT_NS_DECL        lxml.etree.ErrorTypes-class.html#CHECK_NOT_NS_DECL
-lxml.etree.ErrorTypes.XINCLUDE_XPTR_RESULT     lxml.etree.ErrorTypes-class.html#XINCLUDE_XPTR_RESULT
-lxml.etree.ErrorTypes.ERR_PEREF_IN_EPILOG      lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_EPILOG
-lxml.etree.ErrorTypes.IO_EMLINK        lxml.etree.ErrorTypes-class.html#IO_EMLINK
-lxml.etree.ErrorTypes.RNGP_PARAM_NAME_MISSING  lxml.etree.ErrorTypes-class.html#RNGP_PARAM_NAME_MISSING
-lxml.etree.ErrorTypes.WAR_NS_URI_RELATIVE      lxml.etree.ErrorTypes-class.html#WAR_NS_URI_RELATIVE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_2_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_2
-lxml.etree.ErrorTypes.IO_ENFILE        lxml.etree.ErrorTypes-class.html#IO_ENFILE
-lxml.etree.ErrorTypes.SCHEMATRONV_ASSERT       lxml.etree.ErrorTypes-class.html#SCHEMATRONV_ASSERT
-lxml.etree.ErrorTypes.FTP_ACCNT        lxml.etree.ErrorTypes-class.html#FTP_ACCNT
-lxml.etree.ErrorTypes.RNGP_PAT_START_GROUP     lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_GROUP
-lxml.etree.ErrorTypes.SCHEMAV_MISSING  lxml.etree.ErrorTypes-class.html#SCHEMAV_MISSING
-lxml.etree.ErrorTypes.MODULE_OPEN      lxml.etree.ErrorTypes-class.html#MODULE_OPEN
-lxml.etree.ErrorTypes.XPATH_INVALID_OPERAND    lxml.etree.ErrorTypes-class.html#XPATH_INVALID_OPERAND
-lxml.etree.ErrorTypes.CHECK_FOUND_NOTATION     lxml.etree.ErrorTypes-class.html#CHECK_FOUND_NOTATION
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_1_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_1
-lxml.etree.ErrorTypes.ERR_UNPARSED_ENTITY      lxml.etree.ErrorTypes-class.html#ERR_UNPARSED_ENTITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_NOTATION_CHILD   lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_NOTATION_CHILD
-lxml.etree.ErrorTypes.CHECK_OUTSIDE_DICT       lxml.etree.ErrorTypes-class.html#CHECK_OUTSIDE_DICT
-lxml.etree.ErrorTypes.SCHEMAV_NOTEMPTY lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTEMPTY
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_GROUP       lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_GROUP
-lxml.etree.ErrorTypes.ERR_PEREF_SEMICOL_MISSING        lxml.etree.ErrorTypes-class.html#ERR_PEREF_SEMICOL_MISSING
-lxml.etree.ErrorTypes.DTD_LOAD_ERROR   lxml.etree.ErrorTypes-class.html#DTD_LOAD_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_BOOLEAN  lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_BOOLEAN
-lxml.etree.ErrorTypes.DTD_NOT_STANDALONE       lxml.etree.ErrorTypes-class.html#DTD_NOT_STANDALONE
-lxml.etree.ErrorTypes.SCHEMAP_ST_PROPS_CORRECT_3       lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_1  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_3  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_2  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_4  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_4
-lxml.etree.ErrorTypes.C14N_INVALID_NODE        lxml.etree.ErrorTypes-class.html#C14N_INVALID_NODE
-lxml.etree.ErrorTypes.XPATH_START_LITERAL_ERROR        lxml.etree.ErrorTypes-class.html#XPATH_START_LITERAL_ERROR
-lxml.etree.ErrorTypes.RNGP_TEXT_HAS_CHILD      lxml.etree.ErrorTypes-class.html#RNGP_TEXT_HAS_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_WILDCARD     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_WILDCARD
-lxml.etree.ErrorTypes.XPATH_UNDEF_VARIABLE_ERROR       lxml.etree.ErrorTypes-class.html#XPATH_UNDEF_VARIABLE_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ATTR_MISSING lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_MISSING
-lxml.etree.ErrorTypes.SCHEMAP_INTERNAL lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERNAL
-lxml.etree.ErrorTypes.RNGP_EXCEPT_MISSING      lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_MISSING
-lxml.etree.ErrorTypes.TREE_INVALID_HEX lxml.etree.ErrorTypes-class.html#TREE_INVALID_HEX
-lxml.etree.ErrorTypes.RNGP_DEFINE_CREATE_FAILED        lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_CREATE_FAILED
-lxml.etree.ErrorTypes.XPATH_ENCODING_ERROR     lxml.etree.ErrorTypes-class.html#XPATH_ENCODING_ERROR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_IDC  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_IDC
-lxml.etree.ErrorTypes.CHECK_NO_ELEM    lxml.etree.ErrorTypes-class.html#CHECK_NO_ELEM
-lxml.etree.ErrorTypes.IO_EXDEV lxml.etree.ErrorTypes-class.html#IO_EXDEV
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_TYPE     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_TYPE
-lxml.etree.ErrorTypes.ERR_LT_IN_ATTRIBUTE      lxml.etree.ErrorTypes-class.html#ERR_LT_IN_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE     lxml.etree.ErrorTypes-class.html#SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE
-lxml.etree.ErrorTypes.IO_EMFILE        lxml.etree.ErrorTypes-class.html#IO_EMFILE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_2_2    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_1
-lxml.etree.ErrorTypes.XINCLUDE_XPTR_FAILED     lxml.etree.ErrorTypes-class.html#XINCLUDE_XPTR_FAILED
-lxml.etree.ErrorTypes.ERR_MISPLACED_CDATA_END  lxml.etree.ErrorTypes-class.html#ERR_MISPLACED_CDATA_END
-lxml.etree.ErrorTypes.RNGP_ELEMENT_NO_CONTENT  lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_NO_CONTENT
-lxml.etree.ErrorTypes.IO_ENOENT        lxml.etree.ErrorTypes-class.html#IO_ENOENT
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_NOOP      lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_NOOP
-lxml.etree.ErrorTypes.SCHEMAP_SRC_REDEFINE     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_REDEFINE
-lxml.etree.ErrorTypes.ERR_CHARREF_IN_PROLOG    lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_PROLOG
-lxml.etree.ErrorTypes.RNGP_REF_NAME_INVALID    lxml.etree.ErrorTypes-class.html#RNGP_REF_NAME_INVALID
-lxml.etree.ErrorTypes.ERR_NOTATION_PROCESSING  lxml.etree.ErrorTypes-class.html#ERR_NOTATION_PROCESSING
-lxml.etree.ErrorTypes.RNGP_INCLUDE_EMPTY       lxml.etree.ErrorTypes-class.html#RNGP_INCLUDE_EMPTY
-lxml.etree.ErrorTypes.RNGP_INCLUDE_RECURSE     lxml.etree.ErrorTypes-class.html#RNGP_INCLUDE_RECURSE
-lxml.etree.ErrorTypes.SCHEMAP_ELEM_NONAME_NOREF        lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_NONAME_NOREF
-lxml.etree.ErrorTypes.RNGP_EMPTY_CONTENT       lxml.etree.ErrorTypes-class.html#RNGP_EMPTY_CONTENT
-lxml.etree.ErrorTypes.XPTR_EVAL_FAILED lxml.etree.ErrorTypes-class.html#XPTR_EVAL_FAILED
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_1     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_1
-lxml.etree.ErrorTypes.XPATH_INVALID_CTXT_POSITION      lxml.etree.ErrorTypes-class.html#XPATH_INVALID_CTXT_POSITION
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_3     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_4     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_4
-lxml.etree.ErrorTypes.ERR_INTERNAL_ERROR       lxml.etree.ErrorTypes-class.html#ERR_INTERNAL_ERROR
-lxml.etree.ErrorTypes.ERR_DOCTYPE_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_DOCTYPE_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_PAT_NSNAME_EXCEPT_ANYNAME   lxml.etree.ErrorTypes-class.html#RNGP_PAT_NSNAME_EXCEPT_ANYNAME
-lxml.etree.ErrorTypes.RNGP_EMPTY_NOT_EMPTY     lxml.etree.ErrorTypes-class.html#RNGP_EMPTY_NOT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_NO_XMLNS lxml.etree.ErrorTypes-class.html#SCHEMAP_NO_XMLNS
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_ATTR       lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_ATTR
-lxml.etree.ErrorTypes.ERR_NO_DTD       lxml.etree.ErrorTypes-class.html#ERR_NO_DTD
-lxml.etree.ErrorTypes.ERR_ENTITY_LOOP  lxml.etree.ErrorTypes-class.html#ERR_ENTITY_LOOP
-lxml.etree.ErrorTypes.IO_EINTR lxml.etree.ErrorTypes-class.html#IO_EINTR
-lxml.etree.ErrorTypes.ERR_MISSING_ENCODING     lxml.etree.ErrorTypes-class.html#ERR_MISSING_ENCODING
-lxml.etree.ErrorTypes.DTD_STANDALONE_WHITE_SPACE       lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_WHITE_SPACE
-lxml.etree.ErrorTypes.DTD_ENTITY_TYPE  lxml.etree.ErrorTypes-class.html#DTD_ENTITY_TYPE
-lxml.etree.ErrorTypes.IO_ENOTEMPTY     lxml.etree.ErrorTypes-class.html#IO_ENOTEMPTY
-lxml.etree.ErrorTypes.RNGP_REF_NO_NAME lxml.etree.ErrorTypes-class.html#RNGP_REF_NO_NAME
-lxml.etree.ErrorTypes.XINCLUDE_MULTIPLE_ROOT   lxml.etree.ErrorTypes-class.html#XINCLUDE_MULTIPLE_ROOT
-lxml.etree.ErrorTypes.SCHEMAV_NOTYPE   lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTYPE
-lxml.etree.ErrorTypes.RNGP_ELEMENT_EMPTY       lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_EMPTY
-lxml.etree.ErrorTypes.IO_ECANCELED     lxml.etree.ErrorTypes-class.html#IO_ECANCELED
-lxml.etree.ErrorTypes.RNGP_EXCEPT_NO_CONTENT   lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_NO_CONTENT
-lxml.etree.ErrorTypes.WAR_NS_COLUMN    lxml.etree.ErrorTypes-class.html#WAR_NS_COLUMN
-lxml.etree.ErrorTypes.IO_ENOTSOCK      lxml.etree.ErrorTypes-class.html#IO_ENOTSOCK
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_DERIVED_OK_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_1
-lxml.etree.ErrorTypes.ERR_URI_FRAGMENT lxml.etree.ErrorTypes-class.html#ERR_URI_FRAGMENT
-lxml.etree.ErrorTypes.SCHEMAV_NOTNILLABLE      lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTNILLABLE
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_TEXT       lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_TEXT
-lxml.etree.ErrorTypes.SCHEMAV_UNDECLAREDELEM   lxml.etree.ErrorTypes-class.html#SCHEMAV_UNDECLAREDELEM
-lxml.etree.ErrorTypes.SCHEMAP_AG_PROPS_CORRECT lxml.etree.ErrorTypes-class.html#SCHEMAP_AG_PROPS_CORRECT
-lxml.etree.ErrorTypes.IO_ENOMEM        lxml.etree.ErrorTypes-class.html#IO_ENOMEM
-lxml.etree.ErrorTypes.ERR_NOTATION_NOT_STARTED lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ELEM_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ELEM_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_1      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_3      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_3
-lxml.etree.ErrorTypes.DTD_NO_DOC       lxml.etree.ErrorTypes-class.html#DTD_NO_DOC
-lxml.etree.ErrorTypes.RNGP_TYPE_NOT_FOUND      lxml.etree.ErrorTypes-class.html#RNGP_TYPE_NOT_FOUND
-lxml.etree.ErrorTypes.DTD_NO_ROOT      lxml.etree.ErrorTypes-class.html#DTD_NO_ROOT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTRGRP_CHILD    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRGRP_CHILD
-lxml.etree.ErrorTypes.IO_EACCES        lxml.etree.ErrorTypes-class.html#IO_EACCES
-lxml.etree.ErrorTypes._names   lxml.etree.ErrorTypes-class.html#_names
-lxml.etree.ErrorTypes.SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES
-lxml.etree.ErrorTypes.ERR_RESERVED_XML_NAME    lxml.etree.ErrorTypes-class.html#ERR_RESERVED_XML_NAME
-lxml.etree.ErrorTypes.RNGP_TEXT_EXPECTED       lxml.etree.ErrorTypes-class.html#RNGP_TEXT_EXPECTED
-lxml.etree.ErrorTypes.RNGP_CHOICE_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_CHOICE_EMPTY
-lxml.etree.ErrorTypes.ERR_TAG_NOT_FINISHED     lxml.etree.ErrorTypes-class.html#ERR_TAG_NOT_FINISHED
-lxml.etree.ErrorTypes.CHECK_FOUND_TEXT lxml.etree.ErrorTypes-class.html#CHECK_FOUND_TEXT
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NO_NAME   lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NO_NAME
-lxml.etree.ErrorTypes.RNGP_PAT_ONEMORE_GROUP_ATTR      lxml.etree.ErrorTypes-class.html#RNGP_PAT_ONEMORE_GROUP_ATTR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ENUMERATION_VALID    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ENUMERATION_VALID
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_RESTRICTION_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_RESTRICTION_CHILD
-lxml.etree.ErrorTypes.DTD_ELEM_REDEFINED       lxml.etree.ErrorTypes-class.html#DTD_ELEM_REDEFINED
-lxml.etree.ErrorTypes.RNGP_MISSING_HREF        lxml.etree.ErrorTypes-class.html#RNGP_MISSING_HREF
-lxml.etree.ErrorTypes.IO_ERANGE        lxml.etree.ErrorTypes-class.html#IO_ERANGE
-lxml.etree.ErrorTypes.HTTP_UNKNOWN_HOST        lxml.etree.ErrorTypes-class.html#HTTP_UNKNOWN_HOST
-lxml.etree.ErrorTypes.RNGP_PAT_START_ATTR      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_ATTR
-lxml.etree.ErrorTypes.SCHEMAP_NOTATION_NO_NAME lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTATION_NO_NAME
-lxml.etree.ErrorTypes.NS_ERR_COLON     lxml.etree.ErrorTypes-class.html#NS_ERR_COLON
-lxml.etree.ErrorTypes.ERR_PEREF_IN_INT_SUBSET  lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_INT_SUBSET
-lxml.etree.ErrorTypes.RNGP_VALUE_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_VALUE_EMPTY
-lxml.etree.ErrorTypes.WAR_UNKNOWN_VERSION      lxml.etree.ErrorTypes-class.html#WAR_UNKNOWN_VERSION
-lxml.etree.ErrorTypes.SCHEMAV_ISABSTRACT       lxml.etree.ErrorTypes-class.html#SCHEMAV_ISABSTRACT
-lxml.etree.ErrorTypes.IO_EMSGSIZE      lxml.etree.ErrorTypes-class.html#IO_EMSGSIZE
-lxml.etree.ErrorTypes.CATALOG_ENTRY_BROKEN     lxml.etree.ErrorTypes-class.html#CATALOG_ENTRY_BROKEN
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_1_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_2
-lxml.etree.ErrorTypes.RNGP_CREATE_FAILURE      lxml.etree.ErrorTypes-class.html#RNGP_CREATE_FAILURE
-lxml.etree.ErrorTypes.ERR_NAME_REQUIRED        lxml.etree.ErrorTypes-class.html#ERR_NAME_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ATTR_NOT_ALLOWED     lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_NOT_ALLOWED
-lxml.etree.ErrorTypes.ERR_ATTLIST_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_FINISHED
-lxml.etree.ErrorTypes._getName lxml.etree.ErrorTypes-class.html#_getName
-lxml.etree.ErrorTypes.XPTR_EXTRA_OBJECTS       lxml.etree.ErrorTypes-class.html#XPTR_EXTRA_OBJECTS
-lxml.etree.ErrorTypes.IO_EISCONN       lxml.etree.ErrorTypes-class.html#IO_EISCONN
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_CHOICE_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_CHOICE_CHILD
-lxml.etree.ErrorTypes.ERR_PUBID_REQUIRED       lxml.etree.ErrorTypes-class.html#ERR_PUBID_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_NOTHING_TO_PARSE lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTHING_TO_PARSE
-lxml.etree.ErrorTypes.RNGP_NOTALLOWED_NOT_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_NOTALLOWED_NOT_EMPTY
-lxml.etree.ErrorTypes.RNGP_REF_NOT_EMPTY       lxml.etree.ErrorTypes-class.html#RNGP_REF_NOT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_DEF_AND_PREFIX   lxml.etree.ErrorTypes-class.html#SCHEMAP_DEF_AND_PREFIX
-lxml.etree.ErrorTypes.ERR_NOTATION_NOT_FINISHED        lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_CHILDREN  lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_CHILDREN
-lxml.etree.ErrorTypes.RNGP_PAT_START_DATA      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_DATA
-lxml.etree.ErrorTypes.RNGP_ELEMENT_NAME        lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_NAME
-lxml.etree.ErrorTypes.XPATH_UNKNOWN_FUNC_ERROR lxml.etree.ErrorTypes-class.html#XPATH_UNKNOWN_FUNC_ERROR
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_INTERLEAVE  lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_INTERLEAVE
-lxml.etree.ErrorTypes.ERR_VERSION_MISSING      lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISSING
-lxml.etree.ErrorTypes.RNGP_DEFINE_MISSING      lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_MISSING
-lxml.etree.ErrorTypes.CATALOG_NOT_CATALOG      lxml.etree.ErrorTypes-class.html#CATALOG_NOT_CATALOG
-lxml.etree.ErrorTypes.XINCLUDE_TEXT_DOCUMENT   lxml.etree.ErrorTypes-class.html#XINCLUDE_TEXT_DOCUMENT
-lxml.etree.ErrorTypes.DTD_NO_ELEM_NAME lxml.etree.ErrorTypes-class.html#DTD_NO_ELEM_NAME
-lxml.etree.ErrorTypes.ERR_UNSUPPORTED_ENCODING lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING
-lxml.etree.ErrorTypes.ERR_ENTITY_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAV_ATTRUNKNOWN      lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRUNKNOWN
-lxml.etree.ErrorTypes.DTD_ELEM_DEFAULT_NAMESPACE       lxml.etree.ErrorTypes-class.html#DTD_ELEM_DEFAULT_NAMESPACE
-lxml.etree.ErrorTypes.IO_EDOM  lxml.etree.ErrorTypes-class.html#IO_EDOM
-lxml.etree.ErrorTypes.ERR_NO_MEMORY    lxml.etree.ErrorTypes-class.html#ERR_NO_MEMORY
-lxml.etree.ErrorTypes.RNGP_GROUP_ATTR_CONFLICT lxml.etree.ErrorTypes-class.html#RNGP_GROUP_ATTR_CONFLICT
-lxml.etree.ErrorTypes.FTP_EPSV_ANSWER  lxml.etree.ErrorTypes-class.html#FTP_EPSV_ANSWER
-lxml.etree.ErrorTypes.IO_ENOTTY        lxml.etree.ErrorTypes-class.html#IO_ENOTTY
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_1_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_1
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_1_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_2
-lxml.etree.ErrorTypes.IO_EFAULT        lxml.etree.ErrorTypes-class.html#IO_EFAULT
-lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_1
-lxml.etree.ErrorTypes.SCHEMAV_ELEMCONT lxml.etree.ErrorTypes-class.html#SCHEMAV_ELEMCONT
-lxml.etree.ErrorTypes.IO_ECHILD        lxml.etree.ErrorTypes-class.html#IO_ECHILD
-lxml.etree.ErrorTypes.ERR_VALUE_REQUIRED       lxml.etree.ErrorTypes-class.html#ERR_VALUE_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_2_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_1
-lxml.etree.ErrorTypes.ERR_PCDATA_REQUIRED      lxml.etree.ErrorTypes-class.html#ERR_PCDATA_REQUIRED
-lxml.etree.ErrorTypes.RNGP_PAT_START_TEXT      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_TEXT
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_3_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_1
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_3_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_2
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_CREATE_FAILED    lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_CREATE_FAILED
-lxml.etree.ErrorTypes.CHECK_WRONG_NAME lxml.etree.ErrorTypes-class.html#CHECK_WRONG_NAME
-lxml.etree.ErrorTypes.XPATH_INVALID_CHAR_ERROR lxml.etree.ErrorTypes-class.html#XPATH_INVALID_CHAR_ERROR
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ID   lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ID
-lxml.etree.ErrorTypes.ERR_INVALID_HEX_CHARREF  lxml.etree.ErrorTypes-class.html#ERR_INVALID_HEX_CHARREF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MAXLENGTH_VALID      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXLENGTH_VALID
-lxml.etree.ErrorTypes.ERR_ENTITY_CHAR_ERROR    lxml.etree.ErrorTypes-class.html#ERR_ENTITY_CHAR_ERROR
-lxml.etree.ErrorTypes.DTD_ID_SUBSET    lxml.etree.ErrorTypes-class.html#DTD_ID_SUBSET
-lxml.etree.ErrorTypes.IO_LOAD_ERROR    lxml.etree.ErrorTypes-class.html#IO_LOAD_ERROR
-lxml.etree.ErrorTypes.ERR_INVALID_ENCODING     lxml.etree.ErrorTypes-class.html#ERR_INVALID_ENCODING
-lxml.etree.ErrorTypes.SCHEMAP_COS_ALL_LIMITED  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ALL_LIMITED
-lxml.etree.ErrorTypes.IO_EIO   lxml.etree.ErrorTypes-class.html#IO_EIO
-lxml.etree.ErrorTypes.RNGP_DEFINE_NAME_MISSING lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_NAME_MISSING
-lxml.etree.ErrorTypes.IO_ENOTDIR       lxml.etree.ErrorTypes-class.html#IO_ENOTDIR
-lxml.etree.ErrorTypes.XINCLUDE_TEXT_FRAGMENT   lxml.etree.ErrorTypes-class.html#XINCLUDE_TEXT_FRAGMENT
-lxml.etree.ErrorTypes.SCHEMAP_MISSING_SIMPLETYPE_CHILD lxml.etree.ErrorTypes-class.html#SCHEMAP_MISSING_SIMPLETYPE_CHILD
-lxml.etree.ErrorTypes.DTD_NOT_PCDATA   lxml.etree.ErrorTypes-class.html#DTD_NOT_PCDATA
-lxml.etree.ErrorTypes.ERR_INVALID_URI  lxml.etree.ErrorTypes-class.html#ERR_INVALID_URI
-lxml.etree.ErrorTypes.SCHEMAV_VALUE    lxml.etree.ErrorTypes-class.html#SCHEMAV_VALUE
-lxml.etree.ErrorTypes.XPATH_INVALID_PREDICATE_ERROR    lxml.etree.ErrorTypes-class.html#XPATH_INVALID_PREDICATE_ERROR
-lxml.etree.ErrorTypes.IO_ENOEXEC       lxml.etree.ErrorTypes-class.html#IO_ENOEXEC
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_NO_START    lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_NO_START
-lxml.etree.ErrorTypes.ERR_XMLDECL_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_REF_NO_DEF  lxml.etree.ErrorTypes-class.html#RNGP_REF_NO_DEF
-lxml.etree.ErrorTypes.RNGP_NEED_COMBINE        lxml.etree.ErrorTypes-class.html#RNGP_NEED_COMBINE
-lxml.etree.ErrorTypes.ERR_STANDALONE_VALUE     lxml.etree.ErrorTypes-class.html#ERR_STANDALONE_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_NAME        lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_NAME
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_4       lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_4
-lxml.etree.ErrorTypes.IO_ENOSYS        lxml.etree.ErrorTypes-class.html#IO_ENOSYS
-lxml.etree.ErrorTypes.SCHEMAP_ELEMFORMDEFAULT_VALUE    lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEMFORMDEFAULT_VALUE
-lxml.etree.ErrorTypes.ERR_STRING_NOT_CLOSED    lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_CLOSED
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_3       lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_AU   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_AU
-lxml.etree.ErrorTypes.RNGP_FORBIDDEN_ATTRIBUTE lxml.etree.ErrorTypes-class.html#RNGP_FORBIDDEN_ATTRIBUTE
-lxml.etree.ErrorTypes.ERR_PI_NOT_FINISHED      lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_FINISHED
-lxml.etree.ErrorTypes.XPATH_EXPR_ERROR lxml.etree.ErrorTypes-class.html#XPATH_EXPR_ERROR
-lxml.etree.ErrorTypes.RNGP_NSNAME_NO_NS        lxml.etree.ErrorTypes-class.html#RNGP_NSNAME_NO_NS
-lxml.etree.ErrorTypes.NS_ERR_EMPTY     lxml.etree.ErrorTypes-class.html#NS_ERR_EMPTY
-lxml.etree.ErrorTypes.ERR_HYPHEN_IN_COMMENT    lxml.etree.ErrorTypes-class.html#ERR_HYPHEN_IN_COMMENT
-lxml.etree.ErrorTypes.XPATH_NUMBER_ERROR       lxml.etree.ErrorTypes-class.html#XPATH_NUMBER_ERROR
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NOT_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NOT_EMPTY
-lxml.etree.ErrorTypes.ERR_PI_NOT_STARTED       lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_STARTED
-lxml.etree.ErrorTypes.RNGP_TYPE_MISSING        lxml.etree.ErrorTypes-class.html#RNGP_TYPE_MISSING
-lxml.etree.ErrorTypes.IO_EPERM lxml.etree.ErrorTypes-class.html#IO_EPERM
-lxml.etree.ErrorTypes.ERR_COMMENT_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_COMMENT_NOT_FINISHED
-lxml.etree.ErrorTypes.DTD_CONTENT_ERROR        lxml.etree.ErrorTypes-class.html#DTD_CONTENT_ERROR
-lxml.etree.ErrorTypes.DTD_NOTATION_VALUE       lxml.etree.ErrorTypes-class.html#DTD_NOTATION_VALUE
-lxml.etree.ErrorTypes.RNGP_URI_NOT_ABSOLUTE    lxml.etree.ErrorTypes-class.html#RNGP_URI_NOT_ABSOLUTE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_3_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_1
-lxml.etree.ErrorTypes.XPATH_VARIABLE_REF_ERROR lxml.etree.ErrorTypes-class.html#XPATH_VARIABLE_REF_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_3_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_2
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_EMPTY    lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_EMPTY
-lxml.etree.ErrorTypes.C14N_UNKNOW_NODE lxml.etree.ErrorTypes-class.html#C14N_UNKNOW_NODE
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_MAXOCCURS        lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MAXOCCURS
-lxml.etree.ErrorTypes.SCHEMAV_NOTTOPLEVEL      lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTTOPLEVEL
-lxml.etree.ErrorTypes.SCHEMAP_WILDCARD_INVALID_NS_MEMBER       lxml.etree.ErrorTypes-class.html#SCHEMAP_WILDCARD_INVALID_NS_MEMBER
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_LIST_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_LIST_CHILD
-lxml.etree.ErrorTypes.WAR_LANG_VALUE   lxml.etree.ErrorTypes-class.html#WAR_LANG_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_4_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_1
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_4_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_2
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_4_3    lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_3
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_PREFIX   lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PREFIX
-lxml.etree.ErrorTypes.ERR_STRING_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_RECURSIVE        lxml.etree.ErrorTypes-class.html#SCHEMAP_RECURSIVE
-lxml.etree.ErrorTypes.CHECK_ENTITY_TYPE        lxml.etree.ErrorTypes-class.html#CHECK_ENTITY_TYPE
-lxml.etree.ErrorTypes.RNGP_EMPTY_CONSTRUCT     lxml.etree.ErrorTypes-class.html#RNGP_EMPTY_CONSTRUCT
-lxml.etree.ErrorTypes.RNGP_CHOICE_CONTENT      lxml.etree.ErrorTypes-class.html#RNGP_CHOICE_CONTENT
-lxml.etree.ErrorTypes.XINCLUDE_RECURSION       lxml.etree.ErrorTypes-class.html#XINCLUDE_RECURSION
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_INCLUDE_CHILD    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_INCLUDE_CHILD
-lxml.etree.ErrorTypes.ERR_ENTITY_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_FINISHED
-lxml.etree.ErrorTypes.IO_ENAMETOOLONG  lxml.etree.ErrorTypes-class.html#IO_ENAMETOOLONG
-lxml.etree.ErrorTypes.DTD_EMPTY_NOTATION       lxml.etree.ErrorTypes-class.html#DTD_EMPTY_NOTATION
-lxml.etree.ErrorTypes.ERR_EXT_SUBSET_NOT_FINISHED      lxml.etree.ErrorTypes-class.html#ERR_EXT_SUBSET_NOT_FINISHED
-lxml.etree.ErrorTypes.SCHEMAP_REGEXP_INVALID   lxml.etree.ErrorTypes-class.html#SCHEMAP_REGEXP_INVALID
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MINEXCLUSIVE_VALID   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINEXCLUSIVE_VALID
-lxml.etree.ErrorTypes.RNGP_PREFIX_UNDEFINED    lxml.etree.ErrorTypes-class.html#RNGP_PREFIX_UNDEFINED
-lxml.etree.ErrorTypes.DTD_CONTENT_MODEL        lxml.etree.ErrorTypes-class.html#DTD_CONTENT_MODEL
-lxml.etree.ErrorTypes.ERR_ENTITY_PROCESSING    lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PROCESSING
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_TEXT        lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_TEXT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_4  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_4
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_2
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_1
-lxml.etree.ErrorTypes.SCHEMAP_INCLUDE_SCHEMA_NO_URI    lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NO_URI
-lxml.etree.ErrorTypes.CHECK_X  lxml.etree.ErrorTypes-class.html#CHECK_X
-lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_2
-lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_3       lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_1      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_1
-lxml.etree.ErrorTypes.DTD_CONTENT_NOT_DETERMINIST      lxml.etree.ErrorTypes-class.html#DTD_CONTENT_NOT_DETERMINIST
-lxml.etree.ErrorTypes.SCHEMAV_NOROLLBACK       lxml.etree.ErrorTypes-class.html#SCHEMAV_NOROLLBACK
-lxml.etree.ErrorTypes.ERR_DOCUMENT_END lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_END
-lxml.etree.ErrorTypes.ERR_ENTITYREF_IN_EPILOG  lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_EPILOG
-lxml.etree.ErrorTypes.XINCLUDE_INVALID_CHAR    lxml.etree.ErrorTypes-class.html#XINCLUDE_INVALID_CHAR
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_FACET_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_CHILD
-lxml.etree.ErrorTypes.RNGP_DEFINE_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_EMPTY
-lxml.etree.ErrorTypes.RNGP_PAT_ATTR_ELEM       lxml.etree.ErrorTypes-class.html#RNGP_PAT_ATTR_ELEM
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_INLINE_COMBINATION  lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_INLINE_COMBINATION
-lxml.etree.ErrorTypes.RNGP_PAT_START_INTERLEAVE        lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_INTERLEAVE
-lxml.etree.ErrorTypes.I18N_EXCESS_HANDLER      lxml.etree.ErrorTypes-class.html#I18N_EXCESS_HANDLER
-lxml.etree.ErrorTypes.IO_ENETUNREACH   lxml.etree.ErrorTypes-class.html#IO_ENETUNREACH
-lxml.etree.ErrorTypes.RNGP_INVALID_VALUE       lxml.etree.ErrorTypes-class.html#RNGP_INVALID_VALUE
-lxml.etree.ErrorTypes.IO_NO_INPUT      lxml.etree.ErrorTypes-class.html#IO_NO_INPUT
-lxml.etree.ErrorTypes.RNGP_PAT_START_LIST      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_LIST
-lxml.etree.ErrorTypes.SCHEMAP_P_PROPS_CORRECT_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_NOT_STARTED        lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_STARTED
-lxml.etree.ErrorTypes.CHECK_NOT_ATTR   lxml.etree.ErrorTypes-class.html#CHECK_NOT_ATTR
-lxml.etree.ErrorTypes.CHECK_NOT_ENTITY_DECL    lxml.etree.ErrorTypes-class.html#CHECK_NOT_ENTITY_DECL
-lxml.etree.ErrorTypes.ERR_ENTITYREF_IN_PROLOG  lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_PROLOG
-lxml.etree.ErrorTypes.ERR_PEREF_NO_NAME        lxml.etree.ErrorTypes-class.html#ERR_PEREF_NO_NAME
-lxml.etree.ErrorTypes.RNGP_FOREIGN_ELEMENT     lxml.etree.ErrorTypes-class.html#RNGP_FOREIGN_ELEMENT
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_2
-lxml.etree.ErrorTypes.CHECK_NOT_ATTR_DECL      lxml.etree.ErrorTypes-class.html#CHECK_NOT_ATTR_DECL
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_FACET_TYPE       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_TYPE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_2     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_2
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_3 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_3
-lxml.etree.ErrorTypes.XINCLUDE_HREF_URI        lxml.etree.ErrorTypes-class.html#XINCLUDE_HREF_URI
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_1
-lxml.etree.ErrorTypes.ERR_SEPARATOR_REQUIRED   lxml.etree.ErrorTypes-class.html#ERR_SEPARATOR_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_4 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_4
-lxml.etree.ErrorTypes.FTP_PASV_ANSWER  lxml.etree.ErrorTypes-class.html#FTP_PASV_ANSWER
-lxml.etree.ErrorTypes.SAVE_NO_DOCTYPE  lxml.etree.ErrorTypes-class.html#SAVE_NO_DOCTYPE
-lxml.etree.ErrorTypes.DTD_NO_PREFIX    lxml.etree.ErrorTypes-class.html#DTD_NO_PREFIX
-lxml.etree.ErrorTypes.ERR_MIXED_NOT_STARTED    lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_STARTED
-lxml.etree.ErrorTypes.ERR_ENTITYREF_SEMICOL_MISSING    lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_SEMICOL_MISSING
-lxml.etree.ErrorTypes.ERR_CONDSEC_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_EMPTY       lxml.etree.ErrorTypes-class.html#RNGP_EMPTY
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NO_PARENT lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NO_PARENT
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_ELEM        lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_ELEM
-lxml.etree.ErrorTypes.WAR_SPACE_VALUE  lxml.etree.ErrorTypes-class.html#WAR_SPACE_VALUE
-lxml.etree.ErrorTypes.ERR_MIXED_NOT_FINISHED   lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_FINISHED
-lxml.etree.ErrorTypes.SCHEMAP_WARN_ATTR_POINTLESS_PROH lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_POINTLESS_PROH
-lxml.etree.ErrorTypes.RNGP_START_CONTENT       lxml.etree.ErrorTypes-class.html#RNGP_START_CONTENT
-lxml.etree.ErrorTypes.RNGP_DEF_CHOICE_AND_INTERLEAVE   lxml.etree.ErrorTypes-class.html#RNGP_DEF_CHOICE_AND_INTERLEAVE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MAXINCLUSIVE_VALID   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXINCLUSIVE_VALID
-lxml.etree.ErrorTypes.CATALOG_MISSING_ATTR     lxml.etree.ErrorTypes-class.html#CATALOG_MISSING_ATTR
-lxml.etree.ErrorTypes.SCHEMAV_CONSTRUCT        lxml.etree.ErrorTypes-class.html#SCHEMAV_CONSTRUCT
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_REDEFINED  lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_REDEFINED
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_REF      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_REF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MAXEXCLUSIVE_VALID   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXEXCLUSIVE_VALID
-lxml.etree.ErrorTypes.RNGP_ANYNAME_ATTR_ANCESTOR       lxml.etree.ErrorTypes-class.html#RNGP_ANYNAME_ATTR_ANCESTOR
-lxml.etree.ErrorTypes.DTD_DIFFERENT_PREFIX     lxml.etree.ErrorTypes-class.html#DTD_DIFFERENT_PREFIX
-lxml.etree.ErrorTypes.RNGP_EXTERNAL_REF_FAILURE        lxml.etree.ErrorTypes-class.html#RNGP_EXTERNAL_REF_FAILURE
-lxml.etree.ErrorTypes.CATALOG_PREFER_VALUE     lxml.etree.ErrorTypes-class.html#CATALOG_PREFER_VALUE
-lxml.etree.ErrorTypes.XPTR_RESOURCE_ERROR      lxml.etree.ErrorTypes-class.html#XPTR_RESOURCE_ERROR
-lxml.etree.ErrorTypes.DTD_ATTRIBUTE_REDEFINED  lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_REDEFINED
-lxml.etree.ErrorTypes.XPATH_MEMORY_ERROR       lxml.etree.ErrorTypes-class.html#XPATH_MEMORY_ERROR
-lxml.etree.ErrorTypes.IO_EBADMSG       lxml.etree.ErrorTypes-class.html#IO_EBADMSG
-lxml.etree.ErrorTypes.IO_ENCODER       lxml.etree.ErrorTypes-class.html#IO_ENCODER
-lxml.etree.ErrorTypes.RNGP_ELEM_TEXT_CONFLICT  lxml.etree.ErrorTypes-class.html#RNGP_ELEM_TEXT_CONFLICT
-lxml.etree.ErrorTypes.ERR_INVALID_CHARREF      lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHARREF
-lxml.etree.ErrorTypes.SCHEMAP_ST_PROPS_CORRECT_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.SCHEMAP_ST_PROPS_CORRECT_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.ERR_ENTITYREF_IN_DTD     lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_DTD
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ATTR_INVALID_VALUE   lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_INVALID_VALUE
-lxml.etree.ErrorTypes.RNGP_INVALID_URI lxml.etree.ErrorTypes-class.html#RNGP_INVALID_URI
-lxml.etree.ErrorTypes.RNGP_XMLNS_NAME  lxml.etree.ErrorTypes-class.html#RNGP_XMLNS_NAME
-lxml.etree.ErrorTypes.IO_ESPIPE        lxml.etree.ErrorTypes-class.html#IO_ESPIPE
-lxml.etree.ErrorTypes.CHECK_FOUND_ENTITY       lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ENTITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_EMPTY       lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_EMPTY
-lxml.etree.ErrorTypes.RNGP_REF_CREATE_FAILED   lxml.etree.ErrorTypes-class.html#RNGP_REF_CREATE_FAILED
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3  lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3
-lxml.etree.ErrorTypes.ERR_CDATA_NOT_FINISHED   lxml.etree.ErrorTypes-class.html#ERR_CDATA_NOT_FINISHED
-lxml.etree.ErrorTypes.ERR_LTSLASH_REQUIRED     lxml.etree.ErrorTypes-class.html#ERR_LTSLASH_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAV_NOTDETERMINIST   lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTDETERMINIST
-lxml.etree.ErrorTypes.IO_FLUSH lxml.etree.ErrorTypes-class.html#IO_FLUSH
-lxml.etree.ErrorTypes.ERR_CHARREF_AT_EOF       lxml.etree.ErrorTypes-class.html#ERR_CHARREF_AT_EOF
-lxml.etree.ErrorTypes.HTML_STRUCURE_ERROR      lxml.etree.ErrorTypes-class.html#HTML_STRUCURE_ERROR
-lxml.etree.ErrorTypes.IO_EBADF lxml.etree.ErrorTypes-class.html#IO_EBADF
-lxml.etree.ErrorTypes.SCHEMAP_ATTR_NONAME_NOREF        lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTR_NONAME_NOREF
-lxml.etree.ErrorTypes.SCHEMAP_FAILED_BUILD_IMPORT      lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_BUILD_IMPORT
-lxml.etree.ErrorTypes.CHECK_WRONG_PARENT       lxml.etree.ErrorTypes-class.html#CHECK_WRONG_PARENT
-lxml.etree.ErrorTypes.DTD_NOTATION_REDEFINED   lxml.etree.ErrorTypes-class.html#DTD_NOTATION_REDEFINED
-lxml.etree.ErrorTypes.ERR_ATTLIST_NOT_STARTED  lxml.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_STARTED
-lxml.etree.ErrorTypes.XPATH_UNCLOSED_ERROR     lxml.etree.ErrorTypes-class.html#XPATH_UNCLOSED_ERROR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_2        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_2
-lxml.etree.ErrorTypes.RNGP_PAT_NSNAME_EXCEPT_NSNAME    lxml.etree.ErrorTypes-class.html#RNGP_PAT_NSNAME_EXCEPT_NSNAME
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_1        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_6        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_6
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_7        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_7
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_2_2_1        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_2_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_2_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_2_2_2        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_2
-lxml.etree.ErrorTypes.RNGP_ELEMENT_CONTENT     lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_CONTENT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTR_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTR_CHILD
-lxml.etree.ErrorTypes.ERR_CONDSEC_INVALID_KEYWORD      lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID_KEYWORD
-lxml.etree.ErrorTypes.RNGP_START_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_START_EMPTY
-lxml.etree.ErrorTypes.IO_EAGAIN        lxml.etree.ErrorTypes-class.html#IO_EAGAIN
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MININCLUSIVE_VALID   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MININCLUSIVE_VALID
-lxml.etree.ErrorTypes.SCHEMAV_ELEMENT_CONTENT  lxml.etree.ErrorTypes-class.html#SCHEMAV_ELEMENT_CONTENT
-lxml.etree.ErrorTypes.XINCLUDE_FRAGMENT_ID     lxml.etree.ErrorTypes-class.html#XINCLUDE_FRAGMENT_ID
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_5 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_5
-lxml.etree.ErrorTypes.I18N_NO_NAME     lxml.etree.ErrorTypes-class.html#I18N_NO_NAME
-lxml.etree.ErrorTypes.SCHEMAP_IMPORT_SCHEMA_NOT_URI    lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_SCHEMA_NOT_URI
-lxml.etree.ErrorTypes.NS_ERR_QNAME     lxml.etree.ErrorTypes-class.html#NS_ERR_QNAME
-lxml.etree.ErrorTypes.SCHEMAP_UNION_NOT_EXPRESSIBLE    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNION_NOT_EXPRESSIBLE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_CT_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_CT_1
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_REF        lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_REF
-lxml.etree.ErrorTypes.SCHEMAP_IMPORT_REDEFINE_NSNAME   lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_REDEFINE_NSNAME
-lxml.etree.ErrorTypes.SCHEMAV_ATTRINVALID      lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRINVALID
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_ATTR        lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_ATTR
-lxml.etree.ErrorTypes.IO_ESRCH lxml.etree.ErrorTypes-class.html#IO_ESRCH
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ELEM lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ELEM
-lxml.etree.ErrorTypes.XINCLUDE_DEPRECATED_NS   lxml.etree.ErrorTypes-class.html#XINCLUDE_DEPRECATED_NS
-lxml.etree.ErrorTypes.ERR_CHARREF_IN_EPILOG    lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_EPILOG
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_TYPE_LIB    lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_TYPE_LIB
-lxml.etree.ErrorTypes.ERR_NMTOKEN_REQUIRED     lxml.etree.ErrorTypes-class.html#ERR_NMTOKEN_REQUIRED
-lxml.etree.ErrorTypes.DTD_NOT_EMPTY    lxml.etree.ErrorTypes-class.html#DTD_NOT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_1
-lxml.etree.ErrorTypes.ERR_PEREF_IN_PROLOG      lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_PROLOG
-lxml.etree.ErrorTypes.SCHEMAP_NOT_DETERMINISTIC        lxml.etree.ErrorTypes-class.html#SCHEMAP_NOT_DETERMINISTIC
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_6        lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_6
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_5        lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_5
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_4        lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_4
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_3        lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.IO_EROFS lxml.etree.ErrorTypes-class.html#IO_EROFS
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_ONEMORE     lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_ONEMORE
-lxml.etree.ErrorTypes.SCHEMAP_IMPORT_NAMESPACE_NOT_URI lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_NAMESPACE_NOT_URI
-lxml.etree.ErrorTypes.SCHEMAP_FAILED_PARSE     lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_PARSE
-lxml.etree.ErrorTypes.XPTR_SYNTAX_ERROR        lxml.etree.ErrorTypes-class.html#XPTR_SYNTAX_ERROR
-lxml.etree.ErrorTypes.MODULE_CLOSE     lxml.etree.ErrorTypes-class.html#MODULE_CLOSE
-lxml.etree.ErrorTypes.CHECK_NO_PARENT  lxml.etree.ErrorTypes-class.html#CHECK_NO_PARENT
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_GROUP  lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_GROUP
-lxml.etree.ErrorTypes.IO_EEXIST        lxml.etree.ErrorTypes-class.html#IO_EEXIST
-lxml.etree.ErrorTypes.REGEXP_COMPILE_ERROR     lxml.etree.ErrorTypes-class.html#REGEXP_COMPILE_ERROR
-lxml.etree.ErrorTypes.CATALOG_RECURSION        lxml.etree.ErrorTypes-class.html#CATALOG_RECURSION
-lxml.etree.ErrorTypes.WAR_CATALOG_PI   lxml.etree.ErrorTypes-class.html#WAR_CATALOG_PI
-lxml.etree.ErrorTypes.ERR_ELEMCONTENT_NOT_FINISHED     lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_FINISHED
-lxml.etree.ErrorTypes.ERR_LT_REQUIRED  lxml.etree.ErrorTypes-class.html#ERR_LT_REQUIRED
-lxml.etree.ErrorTypes.RNGP_PARSE_ERROR lxml.etree.ErrorTypes-class.html#RNGP_PARSE_ERROR
-lxml.etree.ErrorTypes.RNGP_HREF_ERROR  lxml.etree.ErrorTypes-class.html#RNGP_HREF_ERROR
-lxml.etree.ErrorTypes.RNGP_START_MISSING       lxml.etree.ErrorTypes-class.html#RNGP_START_MISSING
-lxml.etree.ErrorTypes.ERR_EXT_ENTITY_STANDALONE        lxml.etree.ErrorTypes-class.html#ERR_EXT_ENTITY_STANDALONE
-lxml.etree.ErrorTypes.ERR_ENTITY_IS_PARAMETER  lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_PARAMETER
-lxml.etree.ErrorTypes.RNGP_URI_FRAGMENT        lxml.etree.ErrorTypes-class.html#RNGP_URI_FRAGMENT
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_1_2    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_2
-lxml.etree.ErrorTypes.ERR_XMLDECL_NOT_STARTED  lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_STARTED
-lxml.etree.ErrorTypes.XINCLUDE_NO_HREF lxml.etree.ErrorTypes-class.html#XINCLUDE_NO_HREF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_1_1    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_1
-lxml.etree.ErrorTypes.CHECK_FOUND_ATTRIBUTE    lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAP_SIMPLETYPE_NONAME        lxml.etree.ErrorTypes-class.html#SCHEMAP_SIMPLETYPE_NONAME
-lxml.etree.ErrorTypes.SCHEMAP_SRC_INCLUDE      lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_INCLUDE
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_ADD      lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_ADD
-lxml.etree.ErrorTypes.CHECK_NO_HREF    lxml.etree.ErrorTypes-class.html#CHECK_NO_HREF
-lxml.etree.ErrorTypes.RNGP_TYPE_VALUE  lxml.etree.ErrorTypes-class.html#RNGP_TYPE_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_EXTENSION_NO_BASE        lxml.etree.ErrorTypes-class.html#SCHEMAP_EXTENSION_NO_BASE
-lxml.etree.ErrorTypes.RNGP_PAT_ANYNAME_EXCEPT_ANYNAME  lxml.etree.ErrorTypes-class.html#RNGP_PAT_ANYNAME_EXCEPT_ANYNAME
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_TYPE   lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_TYPE
-lxml.etree.ErrorTypes.ERR_ENTITYREF_AT_EOF     lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_AT_EOF
-lxml.etree.ErrorTypes.C14N_CREATE_CTXT lxml.etree.ErrorTypes-class.html#C14N_CREATE_CTXT
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_3 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_3
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_2
-lxml.etree.ErrorTypes.RNGP_PAT_START_ONEMORE   lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_ONEMORE
-lxml.etree.ErrorTypes.ERR_ENTITY_BOUNDARY      lxml.etree.ErrorTypes-class.html#ERR_ENTITY_BOUNDARY
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_5 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_5
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_4 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_4
-lxml.etree.ErrorTypes.ERR_UNKNOWN_ENCODING     lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING
-lxml.etree.ErrorTypes.HTML_UNKNOWN_TAG lxml.etree.ErrorTypes-class.html#HTML_UNKNOWN_TAG
-lxml.etree.ErrorTypes.CHECK_   lxml.etree.ErrorTypes-class.html#CHECK_
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_REF_AND_SUBTYPE  lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_REF_AND_SUBTYPE
-lxml.etree.ErrorTypes.DTD_INVALID_DEFAULT      lxml.etree.ErrorTypes-class.html#DTD_INVALID_DEFAULT
-lxml.etree.ErrorTypes.C14N_RELATIVE_NAMESPACE  lxml.etree.ErrorTypes-class.html#C14N_RELATIVE_NAMESPACE
-lxml.etree.ErrorTypes.SCHEMAP_FACET_NO_VALUE   lxml.etree.ErrorTypes-class.html#SCHEMAP_FACET_NO_VALUE
-lxml.etree.ErrorTypes.CHECK_NO_DOC     lxml.etree.ErrorTypes-class.html#CHECK_NO_DOC
-lxml.etree.ErrorTypes.IO_EFBIG lxml.etree.ErrorTypes-class.html#IO_EFBIG
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_WHITE_SPACE      lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_WHITE_SPACE
-lxml.etree.ErrorTypes.RNGP_NSNAME_ATTR_ANCESTOR        lxml.etree.ErrorTypes-class.html#RNGP_NSNAME_ATTR_ANCESTOR
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ELEM_NOT_ALLOWED     lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_NOT_ALLOWED
-lxml.etree.ErrorTypes.RNGP_START_CHOICE_AND_INTERLEAVE lxml.etree.ErrorTypes-class.html#RNGP_START_CHOICE_AND_INTERLEAVE
-lxml.etree.ErrorTypes.DTD_UNKNOWN_NOTATION     lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_NOTATION
-lxml.etree.ErrorTypes.ERR_NS_DECL_ERROR        lxml.etree.ErrorTypes-class.html#ERR_NS_DECL_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_GROUP_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_GROUP_CHILD
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_LIST       lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_LIST
-lxml.etree.ErrorTypes.CHECK_WRONG_DOC  lxml.etree.ErrorTypes-class.html#CHECK_WRONG_DOC
-lxml.etree.ErrorTypes.ERR_LITERAL_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_FINISHED
-lxml.etree.ErrorTypes.CHECK_FOUND_CDATA        lxml.etree.ErrorTypes-class.html#CHECK_FOUND_CDATA
-lxml.etree.ErrorTypes.SAVE_UNKNOWN_ENCODING    lxml.etree.ErrorTypes-class.html#SAVE_UNKNOWN_ENCODING
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_MISSING     lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_MISSING
-lxml.etree.ErrorTypes.SCHEMAV_NOTSIMPLE        lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTSIMPLE
-lxml.etree.ErrorTypes.DTD_ID_REDEFINED lxml.etree.ErrorTypes-class.html#DTD_ID_REDEFINED
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ATTR   lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTR
-lxml.etree.ErrorTypes.RNGP_ERROR_TYPE_LIB      lxml.etree.ErrorTypes-class.html#RNGP_ERROR_TYPE_LIB
-lxml.etree.ErrorTypes.CHECK_NAME_NOT_NULL      lxml.etree.ErrorTypes-class.html#CHECK_NAME_NOT_NULL
-lxml.etree.ErrorTypes.IO_UNKNOWN       lxml.etree.ErrorTypes-class.html#IO_UNKNOWN
-lxml.etree.ErrorTypes.HTTP_URL_SYNTAX  lxml.etree.ErrorTypes-class.html#HTTP_URL_SYNTAX
-lxml.etree.ErrorTypes.RNGP_NAME_MISSING        lxml.etree.ErrorTypes-class.html#RNGP_NAME_MISSING
-lxml.etree.ErrorTypes.CHECK_WRONG_NEXT lxml.etree.ErrorTypes-class.html#CHECK_WRONG_NEXT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD
-lxml.etree.ErrorTypes.SCHEMAP_NOATTR_NOREF     lxml.etree.ErrorTypes-class.html#SCHEMAP_NOATTR_NOREF
-lxml.etree.ErrorTypes.SAVE_NOT_UTF8    lxml.etree.ErrorTypes-class.html#SAVE_NOT_UTF8
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_1
-lxml.etree.ErrorTypes.CHECK_NOT_UTF8   lxml.etree.ErrorTypes-class.html#CHECK_NOT_UTF8
-lxml.etree.ErrorTypes.DTD_NO_DTD       lxml.etree.ErrorTypes-class.html#DTD_NO_DTD
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_INTERLEAVE lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_INTERLEAVE
-lxml.etree.ErrorTypes.ERR_ENTITY_PE_INTERNAL   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PE_INTERNAL
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_NO_CONTENT       lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_NO_CONTENT
-lxml.etree.ErrorTypes.ERR_CONDSEC_INVALID      lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID
-lxml.etree.ErrorTypes.RNGP_ELEM_CONTENT_EMPTY  lxml.etree.ErrorTypes-class.html#RNGP_ELEM_CONTENT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_NOROOT   lxml.etree.ErrorTypes-class.html#SCHEMAP_NOROOT
-lxml.etree.ErrorTypes.CHECK_UNKNOWN_NODE       lxml.etree.ErrorTypes-class.html#CHECK_UNKNOWN_NODE
-lxml.etree.ErrorTypes.XINCLUDE_UNKNOWN_ENCODING        lxml.etree.ErrorTypes-class.html#XINCLUDE_UNKNOWN_ENCODING
-lxml.etree.ErrorTypes.XPATH_INVALID_TYPE       lxml.etree.ErrorTypes-class.html#XPATH_INVALID_TYPE
-lxml.etree.ErrorTypes.RNGP_PARENTREF_CREATE_FAILED     lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_CREATE_FAILED
-lxml.etree.ErrorTypes.CHECK_NO_PREV    lxml.etree.ErrorTypes-class.html#CHECK_NO_PREV
-lxml.etree.ErrorTypes.XPATH_INVALID_CTXT_SIZE  lxml.etree.ErrorTypes-class.html#XPATH_INVALID_CTXT_SIZE
-lxml.etree.ErrorTypes.RNGP_DATA_CONTENT        lxml.etree.ErrorTypes-class.html#RNGP_DATA_CONTENT
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ELEM_MISSING lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_MISSING
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_BASE_TYPE        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_BASE_TYPE
-lxml.etree.ErrorTypes.XINCLUDE_NO_FALLBACK     lxml.etree.ErrorTypes-class.html#XINCLUDE_NO_FALLBACK
-lxml.etree.ErrorTypes.IO_WRITE lxml.etree.ErrorTypes-class.html#IO_WRITE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_RESOLVE      lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESOLVE
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_1
-lxml.etree.ErrorTypes.SCHEMAV_DOCUMENT_ELEMENT_MISSING lxml.etree.ErrorTypes-class.html#SCHEMAV_DOCUMENT_ELEMENT_MISSING
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_REF lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_REF
-lxml.etree.ErrorTypes.CHECK_NO_NAME    lxml.etree.ErrorTypes-class.html#CHECK_NO_NAME
-lxml.etree.ErrorTypes.IO_ENOSPC        lxml.etree.ErrorTypes-class.html#IO_ENOSPC
-lxml.etree.ErrorTypes.SCHEMAP_AU_PROPS_CORRECT lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT
-lxml.etree.ErrorTypes.TREE_NOT_UTF8    lxml.etree.ErrorTypes-class.html#TREE_NOT_UTF8
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_ELEM       lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_ELEM
-lxml.etree.ErrorTypes.XPATH_EXPRESSION_OK      lxml.etree.ErrorTypes-class.html#XPATH_EXPRESSION_OK
-lxml.etree.ErrorTypes.XPTR_SUB_RESOURCE_ERROR  lxml.etree.ErrorTypes-class.html#XPTR_SUB_RESOURCE_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_ELEM_DEFAULT_FIXED       lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_DEFAULT_FIXED
-lxml.etree.ErrorTypes.WAR_ENTITY_REDEFINED     lxml.etree.ErrorTypes-class.html#WAR_ENTITY_REDEFINED
-lxml.etree.ErrorTypes.DTD_XMLID_VALUE  lxml.etree.ErrorTypes-class.html#DTD_XMLID_VALUE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_2     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_2
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_CONTENT     lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_CONTENT
-lxml.etree.ErrorTypes.ERR_CHARREF_IN_DTD       lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_DTD
-lxml.etree.ErrorTypes.I18N_NO_HANDLER  lxml.etree.ErrorTypes-class.html#I18N_NO_HANDLER
-lxml.etree.ErrorTypes.SCHEMAV_CVC_FACET_VALID  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FACET_VALID
-lxml.etree.ErrorTypes.DTD_MIXED_CORRUPT        lxml.etree.ErrorTypes-class.html#DTD_MIXED_CORRUPT
-lxml.etree.ErrorTypes.ERR_INVALID_DEC_CHARREF  lxml.etree.ErrorTypes-class.html#ERR_INVALID_DEC_CHARREF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TOTALDIGITS_VALID    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TOTALDIGITS_VALID
-lxml.etree.ErrorTypes.CHECK_NOT_NCNAME lxml.etree.ErrorTypes-class.html#CHECK_NOT_NCNAME
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ENUM     lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ENUM
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_MEMBER_TYPE      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_MEMBER_TYPE
-lxml.etree.ErrorTypes.ERR_SPACE_REQUIRED       lxml.etree.ErrorTypes-class.html#ERR_SPACE_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_COMPLEXTYPE_NONAME_NOREF lxml.etree.ErrorTypes-class.html#SCHEMAP_COMPLEXTYPE_NONAME_NOREF
-lxml.etree.ErrorTypes.RNGP_PAT_START_EMPTY     lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_EMPTY
-lxml.etree.ErrorTypes.ERR_DOCUMENT_EMPTY       lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAV_EXTRACONTENT     lxml.etree.ErrorTypes-class.html#SCHEMAV_EXTRACONTENT
-lxml.etree.ErrorTypes.SAVE_CHAR_INVALID        lxml.etree.ErrorTypes-class.html#SAVE_CHAR_INVALID
-lxml.etree.ErrorTypes.RNGP_XML_NS      lxml.etree.ErrorTypes-class.html#RNGP_XML_NS
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD
-lxml.etree.ErrorTypes.DTD_ATTRIBUTE_DEFAULT    lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_DEFAULT
-lxml.etree.ErrorTypes.IO_ENOTSUP       lxml.etree.ErrorTypes-class.html#IO_ENOTSUP
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ATTRIBUTE    lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ATTRIBUTE
-lxml.etree.ErrorTypes.XINCLUDE_INCLUDE_IN_INCLUDE      lxml.etree.ErrorTypes-class.html#XINCLUDE_INCLUDE_IN_INCLUDE
-lxml.etree.ErrorTypes.XPATH_UNFINISHED_LITERAL_ERROR   lxml.etree.ErrorTypes-class.html#XPATH_UNFINISHED_LITERAL_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_ATTRGRP_NONAME_NOREF     lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRGRP_NONAME_NOREF
-lxml.etree.ErrorTypes.SCHEMAV_WRONGELEM        lxml.etree.ErrorTypes-class.html#SCHEMAV_WRONGELEM
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_MINOCCURS        lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MINOCCURS
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NAME_INVALID      lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NAME_INVALID
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_1
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_2     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_2
-lxml.etree.ErrorTypes.IO_ENODEV        lxml.etree.ErrorTypes-class.html#IO_ENODEV
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_2_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_2
-lxml.etree.ErrorTypes.IO_EBUSY lxml.etree.ErrorTypes-class.html#IO_EBUSY
-lxml.etree.ErrorTypes.C14N_REQUIRES_UTF8       lxml.etree.ErrorTypes-class.html#C14N_REQUIRES_UTF8
-lxml.etree.ErrorTypes.SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE
-lxml.etree.ErrorTypes.ERR_URI_REQUIRED lxml.etree.ErrorTypes-class.html#ERR_URI_REQUIRED
-lxml.etree.ErrorTypes.IO_EADDRINUSE    lxml.etree.ErrorTypes-class.html#IO_EADDRINUSE
-lxml.etree.ErrorTypes.SCHEMAV_INTERNAL lxml.etree.ErrorTypes-class.html#SCHEMAV_INTERNAL
-lxml.etree.ErrorTypes.RNGP_VALUE_NO_CONTENT    lxml.etree.ErrorTypes-class.html#RNGP_VALUE_NO_CONTENT
-lxml.etree.ErrorTypes.NS_ERR_UNDEFINED_NAMESPACE       lxml.etree.ErrorTypes-class.html#NS_ERR_UNDEFINED_NAMESPACE
-lxml.etree.ErrorTypes.SCHEMAP_A_PROPS_CORRECT_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.CHECK_FOUND_ELEMENT      lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ELEMENT
-lxml.etree.ErrorTypes.RNGP_ELEM_CONTENT_ERROR  lxml.etree.ErrorTypes-class.html#RNGP_ELEM_CONTENT_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_RESTRICTION_NONAME_NOREF lxml.etree.ErrorTypes-class.html#SCHEMAP_RESTRICTION_NONAME_NOREF
-lxml.etree.ErrorTypes.HTTP_USE_IP      lxml.etree.ErrorTypes-class.html#HTTP_USE_IP
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_3    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_3
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_NOT_FINISHED       lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_FINISHED
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_3_1_1   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_3_1_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_3_1_2   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_3_1_2
-lxml.etree.ErrorTypes.SCHEMATRONV_REPORT       lxml.etree.ErrorTypes-class.html#SCHEMATRONV_REPORT
-lxml.etree.ErrorTypes.SCHEMAV_MISC     lxml.etree.ErrorTypes-class.html#SCHEMAV_MISC
-lxml.etree.ErrorTypes.IO_EPIPE lxml.etree.ErrorTypes-class.html#IO_EPIPE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_GROUP_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_GROUP_3    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_3
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_GROUP_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_2
-lxml.etree.ErrorTypes.IO_EAFNOSUPPORT  lxml.etree.ErrorTypes-class.html#IO_EAFNOSUPPORT
-lxml.etree.ErrorTypes.SCHEMAP_WARN_SKIP_SCHEMA lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_SKIP_SCHEMA
-lxml.etree.ErrorTypes.SCHEMAP_A_PROPS_CORRECT_3        lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.CHECK_FOUND_DOCTYPE      lxml.etree.ErrorTypes-class.html#CHECK_FOUND_DOCTYPE
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD
-lxml.etree.ErrorTypes.TREE_UNTERMINATED_ENTITY lxml.etree.ErrorTypes-class.html#TREE_UNTERMINATED_ENTITY
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_1       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_1
-lxml.etree.ErrorTypes.WAR_UNDECLARED_ENTITY    lxml.etree.ErrorTypes-class.html#WAR_UNDECLARED_ENTITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_4       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_4
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_CONSTRUCT   lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_CONSTRUCT
-lxml.etree.ErrorTypes.SCHEMAP_WARN_ATTR_REDECL_PROH    lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_REDECL_PROH
-lxml.etree.ErrorTypes.ERR_ENTITY_IS_EXTERNAL   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_EXTERNAL
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_1_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1_2
-lxml.etree.ErrorTypes.RNGP_INVALID_DEFINE_NAME lxml.etree.ErrorTypes-class.html#RNGP_INVALID_DEFINE_NAME
-lxml.etree.ErrorTypes.SCHEMAP_PREFIX_UNDEFINED lxml.etree.ErrorTypes-class.html#SCHEMAP_PREFIX_UNDEFINED
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_EMPTY       lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAV_INVALIDELEM      lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDELEM
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_IMPORT_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_IMPORT_CHILD
-lxml.etree.ErrorTypes.RNGP_EXTERNALREF_EMTPY   lxml.etree.ErrorTypes-class.html#RNGP_EXTERNALREF_EMTPY
-lxml.etree.ErrorTypes.SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE     lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE
-lxml.etree.ErrorTypes.IO_EALREADY      lxml.etree.ErrorTypes-class.html#IO_EALREADY
-lxml.etree.ErrorTypes.WAR_NS_URI       lxml.etree.ErrorTypes-class.html#WAR_NS_URI
-lxml.etree.ErrorTypes.SCHEMAP_REF_AND_CONTENT  lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_CONTENT
-lxml.etree.ErrorTypes.ERR_UNDECLARED_ENTITY    lxml.etree.ErrorTypes-class.html#ERR_UNDECLARED_ENTITY
-lxml.etree.ErrorTypes.IO_NETWORK_ATTEMPT       lxml.etree.ErrorTypes-class.html#IO_NETWORK_ATTEMPT
-lxml.etree.ErrorTypes.ERR_INVALID_CHAR lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHAR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_1
-lxml.etree.ErrorTypes.SCHEMAP_GROUP_NONAME_NOREF       lxml.etree.ErrorTypes-class.html#SCHEMAP_GROUP_NONAME_NOREF
-lxml.etree.ErrorTypes.ERR_LITERAL_NOT_STARTED  lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_5       lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_5
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ELEMENT        lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ELEMENT
-lxml.etree.ErrorTypes.SCHEMAP_CVC_SIMPLE_TYPE  lxml.etree.ErrorTypes-class.html#SCHEMAP_CVC_SIMPLE_TYPE
-lxml.etree.ErrorTypes.ERR_UNKNOWN_VERSION      lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_VERSION
-lxml.etree.ErrorTypes.SCHEMAP_NOT_SCHEMA       lxml.etree.ErrorTypes-class.html#SCHEMAP_NOT_SCHEMA
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_COMBINE     lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_COMBINE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_2_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_1
-lxml.etree.ErrorTypes.CHECK_NOT_DTD    lxml.etree.ErrorTypes-class.html#CHECK_NOT_DTD
-lxml.etree.ErrorTypes.CHECK_NO_NEXT    lxml.etree.ErrorTypes-class.html#CHECK_NO_NEXT
-lxml.etree.ErrorTypes.ERR_NOT_WELL_BALANCED    lxml.etree.ErrorTypes-class.html#ERR_NOT_WELL_BALANCED
-lxml.etree.ErrorTypes.RNGP_REF_CYCLE   lxml.etree.ErrorTypes-class.html#RNGP_REF_CYCLE
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.SCHEMAV_FACET    lxml.etree.ErrorTypes-class.html#SCHEMAV_FACET
-lxml.etree.ErrorTypes.ERR_ENCODING_NAME        lxml.etree.ErrorTypes-class.html#ERR_ENCODING_NAME
-lxml.etree.ErrorTypes.SCHEMAV_NOROOT   lxml.etree.ErrorTypes-class.html#SCHEMAV_NOROOT
-lxml.etree.ErrorTypes.DTD_XMLID_TYPE   lxml.etree.ErrorTypes-class.html#DTD_XMLID_TYPE
-lxml.etree.ErrorTypes.C14N_CREATE_STACK        lxml.etree.ErrorTypes-class.html#C14N_CREATE_STACK
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_2       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_2
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SEQUENCE_CHILD   lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SEQUENCE_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_1       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_1
-lxml.etree.ErrorTypes.IO_ENXIO lxml.etree.ErrorTypes-class.html#IO_ENXIO
-lxml.etree.ErrorTypes.SCHEMAV_CVC_PATTERN_VALID        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_PATTERN_VALID
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_WITHOUT_VALUE      lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_WITHOUT_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_INCLUDE_SCHEMA_NOT_URI   lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NOT_URI
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ATTRGROUP      lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTRGROUP
-lxml.etree.ErrorTypes.SCHEMAV_INVALIDATTR      lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDATTR
-lxml.etree.ErrorTypes.ERR_OK   lxml.etree.ErrorTypes-class.html#ERR_OK
-lxml.etree.ErrorTypes.ERR_EQUAL_REQUIRED       lxml.etree.ErrorTypes-class.html#ERR_EQUAL_REQUIRED
-lxml.etree.ErrorTypes.NS_ERR_XML_NAMESPACE     lxml.etree.ErrorTypes-class.html#NS_ERR_XML_NAMESPACE
-lxml.etree.ErrorTypes.ERR_EXTRA_CONTENT        lxml.etree.ErrorTypes-class.html#ERR_EXTRA_CONTENT
-lxml.etree.ErrorTypes.DTD_MULTIPLE_ID  lxml.etree.ErrorTypes-class.html#DTD_MULTIPLE_ID
-lxml.etree.ErrorTypes.IO_ECONNREFUSED  lxml.etree.ErrorTypes-class.html#IO_ECONNREFUSED
-lxml.etree.ErrorTypes.XPTR_UNKNOWN_SCHEME      lxml.etree.ErrorTypes-class.html#XPTR_UNKNOWN_SCHEME
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_5_2     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_5_1     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_1
-lxml.etree.ErrorTypes.RNGP_PAT_ONEMORE_INTERLEAVE_ATTR lxml.etree.ErrorTypes-class.html#RNGP_PAT_ONEMORE_INTERLEAVE_ATTR
-lxml.etree.ErrorTypes.XINCLUDE_ENTITY_DEF_MISMATCH     lxml.etree.ErrorTypes-class.html#XINCLUDE_ENTITY_DEF_MISMATCH
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1
-lxml.etree.ErrorTypes.SCHEMAP_MG_PROPS_CORRECT_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_MG_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_3_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_2
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_3_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_1
-lxml.etree.ErrorTypes.SCHEMAP_MG_PROPS_CORRECT_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_MG_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.RNGP_PAT_START_VALUE     lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_VALUE
-lxml.etree.ErrorTypes.DTD_ROOT_NAME    lxml.etree.ErrorTypes-class.html#DTD_ROOT_NAME
-lxml.etree.ErrorTypes.IO_EISDIR        lxml.etree.ErrorTypes-class.html#IO_EISDIR
-lxml.etree.ErrorTypes.IO_EINPROGRESS   lxml.etree.ErrorTypes-class.html#IO_EINPROGRESS
-lxml.etree.ErrorTypes.IO_EDEADLK       lxml.etree.ErrorTypes-class.html#IO_EDEADLK
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_DERIVED_OK_2_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_2_1  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_1
-lxml.etree.ErrorTypes.SCHEMAP_P_PROPS_CORRECT_2_2      lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_2_2
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_FACET    lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_FACET
-lxml.etree.ErrorTypes.SCHEMAP_P_PROPS_CORRECT_2_1      lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_2_1
-lxml.etree.ErrorTypes.XINCLUDE_BUILD_FAILED    lxml.etree.ErrorTypes-class.html#XINCLUDE_BUILD_FAILED
-lxml.etree.ErrorTypes.ERR_PEREF_AT_EOF lxml.etree.ErrorTypes-class.html#ERR_PEREF_AT_EOF
-lxml.etree.ErrorTypes.IO_ENOLCK        lxml.etree.ErrorTypes-class.html#IO_ENOLCK
-lxml.etree.ErrorTypes.DTD_MISSING_ATTRIBUTE    lxml.etree.ErrorTypes-class.html#DTD_MISSING_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_3_1     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_1
-lxml.etree.ErrorTypes.CHECK_FOUND_ENTITYREF    lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ENTITYREF
-lxml.etree.ErrorTypes.RNGP_PARAM_FORBIDDEN     lxml.etree.ErrorTypes-class.html#RNGP_PARAM_FORBIDDEN
-lxml.etree.ErrorTypes.DTD_ELEM_NAMESPACE       lxml.etree.ErrorTypes-class.html#DTD_ELEM_NAMESPACE
-lxml.etree.ErrorTypes.SCHEMAP_FAILED_LOAD      lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_LOAD
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_4        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_4
-lxml.etree.ErrorTypes.DTD_ID_FIXED     lxml.etree.ErrorTypes-class.html#DTD_ID_FIXED
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_2
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_3        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_3_2_1   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_1
-lxml.etree.ErrorTypes.XINCLUDE_PARSE_VALUE     lxml.etree.ErrorTypes-class.html#XINCLUDE_PARSE_VALUE
-lxml.etree.ErrorTypes.RNGP_INCLUDE_FAILURE     lxml.etree.ErrorTypes-class.html#RNGP_INCLUDE_FAILURE
-lxml.etree.ErrorTypes.CHECK_NO_DICT    lxml.etree.ErrorTypes-class.html#CHECK_NO_DICT
-lxml.etree.ErrorTypes.CHECK_NOT_ELEM_DECL      lxml.etree.ErrorTypes-class.html#CHECK_NOT_ELEM_DECL
-lxml.etree.ErrorTypes.XPTR_CHILDSEQ_START      lxml.etree.ErrorTypes-class.html#XPTR_CHILDSEQ_START
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_EMPTY     lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_EMPTY
-lxml.etree.ErrorTypes.ERR_ENTITYREF_NO_NAME    lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_NO_NAME
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_ATTRIBUTE   lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_1      lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_1
-lxml.etree.ErrorTypes.DTD_INVALID_CHILD        lxml.etree.ErrorTypes-class.html#DTD_INVALID_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_2      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_2
-lxml.etree.ErrorTypes.RNGP_EXCEPT_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_EMPTY
-lxml.etree.ErrorTypes.RNGP_PAT_ATTR_ATTR       lxml.etree.ErrorTypes-class.html#RNGP_PAT_ATTR_ATTR
-lxml.etree.ErrorTypes.ERR_GT_REQUIRED  lxml.etree.ErrorTypes-class.html#ERR_GT_REQUIRED
-lxml.etree.ErrorTypes.RNGP_ATTR_CONFLICT       lxml.etree.ErrorTypes-class.html#RNGP_ATTR_CONFLICT
-lxml.etree.ErrorTypes.SCHEMAV_CVC_FRACTIONDIGITS_VALID lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FRACTIONDIGITS_VALID
-lxml.etree.ErrorTypes.IO_ETIMEDOUT     lxml.etree.ErrorTypes-class.html#IO_ETIMEDOUT
-lxml.etree.ErrorTypes.SCHEMAP_C_PROPS_CORRECT  lxml.etree.ErrorTypes-class.html#SCHEMAP_C_PROPS_CORRECT
-lxml.etree.ErrorTypes.I18N_NO_OUTPUT   lxml.etree.ErrorTypes-class.html#I18N_NO_OUTPUT
-lxml.etree.ErrorTypes.CHECK_NS_ANCESTOR        lxml.etree.ErrorTypes-class.html#CHECK_NS_ANCESTOR
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_FACET_VALUE      lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_FACET_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ALL_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ALL_CHILD
-lxml.etree.ErrorTypes.CHECK_FOUND_FRAGMENT     lxml.etree.ErrorTypes-class.html#CHECK_FOUND_FRAGMENT
-lxml.etree.ErrorTypes.ERR_DOCUMENT_START       lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_START
-lxml.etree.ErrorTypes.SCHEMAV_CVC_LENGTH_VALID lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_LENGTH_VALID
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MINLENGTH_VALID      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINLENGTH_VALID
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_1
-lxml.etree.ErrorTypes.XINCLUDE_FALLBACK_NOT_IN_INCLUDE lxml.etree.ErrorTypes-class.html#XINCLUDE_FALLBACK_NOT_IN_INCLUDE
-lxml.etree.ErrorTypes.RNGP_EXTERNALREF_RECURSE lxml.etree.ErrorTypes-class.html#RNGP_EXTERNALREF_RECURSE
-lxml.etree.ErrorTypes.ERR_TAG_NAME_MISMATCH    lxml.etree.ErrorTypes-class.html#ERR_TAG_NAME_MISMATCH
-lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_1 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_2 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_3 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_3_2_2   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_2
-lxml.etree.ErrorTypes.CHECK_FOUND_COMMENT      lxml.etree.ErrorTypes-class.html#CHECK_FOUND_COMMENT
-lxml.etree.ErrorTypes.SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE       lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE
-lxml.etree.ErrorTypes.SCHEMAP_NOTYPE_NOREF     lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTYPE_NOREF
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SCHEMAS_CHILD    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SCHEMAS_CHILD
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_CONTENT   lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_CONTENT
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ENTITY       lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ENTITY
-lxml.etree.ErrorTypes.XPATH_UNDEF_PREFIX_ERROR lxml.etree.ErrorTypes-class.html#XPATH_UNDEF_PREFIX_ERROR
-lxml.etree.ErrorTypes.NS_ERR_ATTRIBUTE_REDEFINED       lxml.etree.ErrorTypes-class.html#NS_ERR_ATTRIBUTE_REDEFINED
-lxml.etree.ErrorTypes.ERR_CONDSEC_NOT_STARTED  lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_STARTED
-lxml.etree.ErrorTypes.CHECK_FOUND_PI   lxml.etree.ErrorTypes-class.html#CHECK_FOUND_PI
-lxml.etree.ErrorTypes.DTD_DUP_TOKEN    lxml.etree.ErrorTypes-class.html#DTD_DUP_TOKEN
-lxml.etree.ErrorTypes.DTD_ATTRIBUTE_VALUE      lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_VALUE
-lxml.etree.ErrorTypes.XPATH_INVALID_ARITY      lxml.etree.ErrorTypes-class.html#XPATH_INVALID_ARITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_EXTENSION_CHILD  lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_EXTENSION_CHILD
-lxml.etree.ErrorTypes.SCHEMAP_REF_AND_SUBTYPE  lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_SUBTYPE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT       lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT
-lxml.etree.ErrorTypes.SCHEMAP_NO_XSI   lxml.etree.ErrorTypes-class.html#SCHEMAP_NO_XSI
-lxml.etree.ErrorTypes.SCHEMAV_HAVEDEFAULT      lxml.etree.ErrorTypes-class.html#SCHEMAV_HAVEDEFAULT
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_LIST        lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_LIST
-lxml.etree.ErrorTypes.SCHEMAP_WARN_UNLOCATED_SCHEMA    lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_UNLOCATED_SCHEMA
-lxml.etree.ErrorTypes.ERR_NOT_STANDALONE       lxml.etree.ErrorTypes-class.html#ERR_NOT_STANDALONE
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_COMBINATION lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_COMBINATION
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_3      lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_3
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_1      lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_1
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_UNION_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_UNION_CHILD
-lxml.etree.ErrorTypes.XINCLUDE_FALLBACKS_IN_INCLUDE    lxml.etree.ErrorTypes-class.html#XINCLUDE_FALLBACKS_IN_INCLUDE
-lxml.etree.ErrorTypes.IO_BUFFER_FULL   lxml.etree.ErrorTypes-class.html#IO_BUFFER_FULL
-lxml.etree.ErrorTypes.TREE_INVALID_DEC lxml.etree.ErrorTypes-class.html#TREE_INVALID_DEC
-lxml.etree.ErrorTypes.DTD_STANDALONE_DEFAULTED lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_DEFAULTED
-lxml.etree.FallbackElementClassLookup  lxml.etree.FallbackElementClassLookup-class.html
-lxml.etree.FallbackElementClassLookup.__new__  lxml.etree.FallbackElementClassLookup-class.html#__new__
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__ lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.HTMLParser  lxml.etree.HTMLParser-class.html
-lxml.etree._FeedParser.feed    lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close   lxml.etree._FeedParser-class.html#close
-lxml.etree.HTMLParser.__init__ lxml.etree.HTMLParser-class.html#__init__
-lxml.etree.HTMLParser.__new__  lxml.etree.HTMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log  lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree.LxmlError   lxml.etree.LxmlError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.LxmlRegistryError   lxml.etree.LxmlRegistryError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.LxmlSyntaxError     lxml.etree.LxmlSyntaxError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.NamespaceRegistryError      lxml.etree.NamespaceRegistryError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.PIBase      lxml.etree.PIBase-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag  lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.PIBase.__new__      lxml.etree.PIBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.PIBase.__init__     lxml.etree.PIBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target       lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__     lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree.ParseError  lxml.etree.ParseError-class.html
-lxml.etree.ParseError.__init__ lxml.etree.ParseError-class.html#__init__
-lxml.etree.ParserBasedElementClassLookup       lxml.etree.ParserBasedElementClassLookup-class.html
-lxml.etree.ParserBasedElementClassLookup.__new__       lxml.etree.ParserBasedElementClassLookup-class.html#__new__
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__ lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.ParserError lxml.etree.ParserError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.PyErrorLog  lxml.etree.PyErrorLog-class.html
-lxml.etree.PyErrorLog.level_map        lxml.etree.PyErrorLog-class.html#level_map
-lxml.etree.PyErrorLog.__new__  lxml.etree.PyErrorLog-class.html#__new__
-lxml.etree.PyErrorLog.receive  lxml.etree.PyErrorLog-class.html#receive
-lxml.etree._BaseErrorLog.last_error    lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._BaseErrorLog.__repr__      lxml.etree._BaseErrorLog-class.html#__repr__
-lxml.etree.PyErrorLog.copy     lxml.etree.PyErrorLog-class.html#copy
-lxml.etree.PyErrorLog.__init__ lxml.etree.PyErrorLog-class.html#__init__
-lxml.etree.PyErrorLog.log      lxml.etree.PyErrorLog-class.html#log
-lxml.etree.PythonElementClassLookup    lxml.etree.PythonElementClassLookup-class.html
-lxml.etree.PythonElementClassLookup.__new__    lxml.etree.PythonElementClassLookup-class.html#__new__
-lxml.etree.PythonElementClassLookup.lookup     lxml.etree.PythonElementClassLookup-class.html#lookup
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__ lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.QName       lxml.etree.QName-class.html
-lxml.etree.QName.text  lxml.etree.QName-class.html#text
-lxml.etree.QName.__str__       lxml.etree.QName-class.html#__str__
-lxml.etree.QName.localname     lxml.etree.QName-class.html#localname
-lxml.etree.QName.__lt__        lxml.etree.QName-class.html#__lt__
-lxml.etree.QName.__init__      lxml.etree.QName-class.html#__init__
-lxml.etree.QName.__new__       lxml.etree.QName-class.html#__new__
-lxml.etree.QName.namespace     lxml.etree.QName-class.html#namespace
-lxml.etree.QName.__ne__        lxml.etree.QName-class.html#__ne__
-lxml.etree.QName.__gt__        lxml.etree.QName-class.html#__gt__
-lxml.etree.QName.__eq__        lxml.etree.QName-class.html#__eq__
-lxml.etree.QName.__le__        lxml.etree.QName-class.html#__le__
-lxml.etree.QName.__hash__      lxml.etree.QName-class.html#__hash__
-lxml.etree.QName.__ge__        lxml.etree.QName-class.html#__ge__
-lxml.etree.RelaxNG     lxml.etree.RelaxNG-class.html
-lxml.etree.RelaxNG.__new__     lxml.etree.RelaxNG-class.html#__new__
-lxml.etree._Validator._clear_error_log lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid      lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message      lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log        lxml.etree._Validator-class.html#error_log
-lxml.etree.RelaxNG.__call__    lxml.etree.RelaxNG-class.html#__call__
-lxml.etree._Validator.assert_  lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate lxml.etree._Validator-class.html#validate
-lxml.etree.RelaxNG.__init__    lxml.etree.RelaxNG-class.html#__init__
-lxml.etree.RelaxNGError        lxml.etree.RelaxNGError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.RelaxNGErrorTypes   lxml.etree.RelaxNGErrorTypes-class.html
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TEXTWRONG     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TEXTWRONG
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_EXTRACONTENT  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_EXTRACONTENT
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TYPEVAL       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TYPEVAL
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NODEFINE      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NODEFINE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOTELEM       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOTELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_VALUE lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_VALUE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TYPECMP       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TYPECMP
-lxml.etree.RelaxNGErrorTypes._getName  lxml.etree.RelaxNGErrorTypes-class.html#_getName
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LISTELEM      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LISTELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTERNAL      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTERNAL
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_DATATYPE      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_DATATYPE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_DATAELEM      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_DATAELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INVALIDATTR   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INVALIDATTR
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMNAME      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMNAME
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_DUPID lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_DUPID
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMNOTEMPTY  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMNOTEMPTY
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOELEM        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TYPE  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TYPE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_OK        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_OK
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMNONS      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMNONS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_CONTENTVALID  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_CONTENTVALID
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LIST  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LIST
-lxml.etree.RelaxNGErrorTypes._names    lxml.etree.RelaxNGErrorTypes-class.html#_names
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_EXTRADATA     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_EXTRADATA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_MEMORY        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_MEMORY
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOSTATE       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOSTATE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMWRONG     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMWRONG
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LISTEXTRA     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LISTEXTRA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRNONS      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRNONS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMWRONGNS   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMWRONGNS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRNAME      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRNAME
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_VALELEM       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_VALELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTERNODATA   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTERNODATA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOGRAMMAR     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOGRAMMAR
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMEXTRANS   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMEXTRANS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRWRONGNS   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRWRONGNS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTEREXTRA    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTEREXTRA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTREXTRANS   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTREXTRANS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LACKDATA      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LACKDATA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LISTEMPTY     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LISTEMPTY
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTERSEQ      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTERSEQ
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRVALID     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRVALID
-lxml.etree.RelaxNGParseError   lxml.etree.RelaxNGParseError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.RelaxNGValidateError        lxml.etree.RelaxNGValidateError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.Resolver    lxml.etree.Resolver-class.html
-lxml.etree.Resolver.resolve    lxml.etree.Resolver-class.html#resolve
-lxml.etree.Resolver.resolve_filename   lxml.etree.Resolver-class.html#resolve_filename
-lxml.etree.Resolver.__new__    lxml.etree.Resolver-class.html#__new__
-lxml.etree.Resolver.resolve_string     lxml.etree.Resolver-class.html#resolve_string
-lxml.etree.Resolver.resolve_file       lxml.etree.Resolver-class.html#resolve_file
-lxml.etree.Resolver.resolve_empty      lxml.etree.Resolver-class.html#resolve_empty
-lxml.etree.Schematron  lxml.etree.Schematron-class.html
-lxml.etree.Schematron.__new__  lxml.etree.Schematron-class.html#__new__
-lxml.etree._Validator._clear_error_log lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid      lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message      lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log        lxml.etree._Validator-class.html#error_log
-lxml.etree.Schematron.__call__ lxml.etree.Schematron-class.html#__call__
-lxml.etree._Validator.assert_  lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate lxml.etree._Validator-class.html#validate
-lxml.etree.Schematron.__init__ lxml.etree.Schematron-class.html#__init__
-lxml.etree.SchematronError     lxml.etree.SchematronError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SchematronParseError        lxml.etree.SchematronParseError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SchematronValidateError     lxml.etree.SchematronValidateError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SerialisationError  lxml.etree.SerialisationError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SiblingsIterator    lxml.etree.SiblingsIterator-class.html
-lxml.etree.SiblingsIterator.__new__    lxml.etree.SiblingsIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__   lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next       lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__   lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree.TreeBuilder lxml.etree.TreeBuilder-class.html
-lxml.etree.TreeBuilder.comment lxml.etree.TreeBuilder-class.html#comment
-lxml.etree.TreeBuilder.end     lxml.etree.TreeBuilder-class.html#end
-lxml.etree.TreeBuilder.__new__ lxml.etree.TreeBuilder-class.html#__new__
-lxml.etree.TreeBuilder.start   lxml.etree.TreeBuilder-class.html#start
-lxml.etree.TreeBuilder.close   lxml.etree.TreeBuilder-class.html#close
-lxml.etree.TreeBuilder.pi      lxml.etree.TreeBuilder-class.html#pi
-lxml.etree.TreeBuilder.data    lxml.etree.TreeBuilder-class.html#data
-lxml.etree.TreeBuilder.__init__        lxml.etree.TreeBuilder-class.html#__init__
-lxml.etree.XInclude    lxml.etree.XInclude-class.html
-lxml.etree.XInclude.__new__    lxml.etree.XInclude-class.html#__new__
-lxml.etree.XInclude.error_log  lxml.etree.XInclude-class.html#error_log
-lxml.etree.XInclude.__call__   lxml.etree.XInclude-class.html#__call__
-lxml.etree.XInclude.__init__   lxml.etree.XInclude-class.html#__init__
-lxml.etree.XIncludeError       lxml.etree.XIncludeError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLParser   lxml.etree.XMLParser-class.html
-lxml.etree._FeedParser.feed    lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close   lxml.etree._FeedParser-class.html#close
-lxml.etree.XMLParser.__init__  lxml.etree.XMLParser-class.html#__init__
-lxml.etree.XMLParser.__new__   lxml.etree.XMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log  lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree.XMLSchema   lxml.etree.XMLSchema-class.html
-lxml.etree.XMLSchema.__new__   lxml.etree.XMLSchema-class.html#__new__
-lxml.etree._Validator._clear_error_log lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid      lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message      lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log        lxml.etree._Validator-class.html#error_log
-lxml.etree.XMLSchema.__call__  lxml.etree.XMLSchema-class.html#__call__
-lxml.etree._Validator.assert_  lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate lxml.etree._Validator-class.html#validate
-lxml.etree.XMLSchema.__init__  lxml.etree.XMLSchema-class.html#__init__
-lxml.etree.XMLSchemaError      lxml.etree.XMLSchemaError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLSchemaParseError lxml.etree.XMLSchemaParseError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLSchemaValidateError      lxml.etree.XMLSchemaValidateError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLSyntaxError      lxml.etree.XMLSyntaxError-class.html
-lxml.etree.ParseError.__init__ lxml.etree.ParseError-class.html#__init__
-lxml.etree.XPath       lxml.etree.XPath-class.html
-lxml.etree.XPath.__new__       lxml.etree.XPath-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate        lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log       lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPath.__repr__      lxml.etree.XPath-class.html#__repr__
-lxml.etree.XPath.__call__      lxml.etree.XPath-class.html#__call__
-lxml.etree.XPath.path  lxml.etree.XPath-class.html#path
-lxml.etree.XPath.__init__      lxml.etree.XPath-class.html#__init__
-lxml.etree.XPathDocumentEvaluator      lxml.etree.XPathDocumentEvaluator-class.html
-lxml.etree.XPathElementEvaluator.register_namespace    lxml.etree.XPathElementEvaluator-class.html#register_namespace
-lxml.etree.XPathDocumentEvaluator.__new__      lxml.etree.XPathDocumentEvaluator-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate        lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log       lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPathDocumentEvaluator.__call__     lxml.etree.XPathDocumentEvaluator-class.html#__call__
-lxml.etree.XPathElementEvaluator.register_namespaces   lxml.etree.XPathElementEvaluator-class.html#register_namespaces
-lxml.etree.XPathDocumentEvaluator.__init__     lxml.etree.XPathDocumentEvaluator-class.html#__init__
-lxml.etree.XPathElementEvaluator       lxml.etree.XPathElementEvaluator-class.html
-lxml.etree.XPathElementEvaluator.register_namespace    lxml.etree.XPathElementEvaluator-class.html#register_namespace
-lxml.etree.XPathElementEvaluator.__new__       lxml.etree.XPathElementEvaluator-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate        lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log       lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPathElementEvaluator.__call__      lxml.etree.XPathElementEvaluator-class.html#__call__
-lxml.etree.XPathElementEvaluator.register_namespaces   lxml.etree.XPathElementEvaluator-class.html#register_namespaces
-lxml.etree.XPathElementEvaluator.__init__      lxml.etree.XPathElementEvaluator-class.html#__init__
-lxml.etree.XPathError  lxml.etree.XPathError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathEvalError      lxml.etree.XPathEvalError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathFunctionError  lxml.etree.XPathFunctionError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathResultError    lxml.etree.XPathResultError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathSyntaxError    lxml.etree.XPathSyntaxError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLT        lxml.etree.XSLT-class.html
-lxml.etree.XSLT.__new__        lxml.etree.XSLT-class.html#__new__
-lxml.etree.XSLT.__deepcopy__   lxml.etree.XSLT-class.html#__deepcopy__
-lxml.etree.XSLT.strparam       lxml.etree.XSLT-class.html#strparam
-lxml.etree.XSLT.error_log      lxml.etree.XSLT-class.html#error_log
-lxml.etree.XSLT.tostring       lxml.etree.XSLT-class.html#tostring
-lxml.etree.XSLT.__call__       lxml.etree.XSLT-class.html#__call__
-lxml.etree.XSLT.apply  lxml.etree.XSLT-class.html#apply
-lxml.etree.XSLT.__copy__       lxml.etree.XSLT-class.html#__copy__
-lxml.etree.XSLT.__init__       lxml.etree.XSLT-class.html#__init__
-lxml.etree.XSLTAccessControl   lxml.etree.XSLTAccessControl-class.html
-lxml.etree.XSLTAccessControl.DENY_WRITE        lxml.etree.XSLTAccessControl-class.html#DENY_WRITE
-lxml.etree.XSLTAccessControl.__new__   lxml.etree.XSLTAccessControl-class.html#__new__
-lxml.etree.XSLTAccessControl.__repr__  lxml.etree.XSLTAccessControl-class.html#__repr__
-lxml.etree.XSLTAccessControl.options   lxml.etree.XSLTAccessControl-class.html#options
-lxml.etree.XSLTAccessControl.DENY_ALL  lxml.etree.XSLTAccessControl-class.html#DENY_ALL
-lxml.etree.XSLTApplyError      lxml.etree.XSLTApplyError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTError   lxml.etree.XSLTError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTExtension       lxml.etree.XSLTExtension-class.html
-lxml.etree.XSLTExtension.execute       lxml.etree.XSLTExtension-class.html#execute
-lxml.etree.XSLTExtension.__new__       lxml.etree.XSLTExtension-class.html#__new__
-lxml.etree.XSLTExtension.apply_templates       lxml.etree.XSLTExtension-class.html#apply_templates
-lxml.etree.XSLTExtension.process_children      lxml.etree.XSLTExtension-class.html#process_children
-lxml.etree.XSLTExtensionError  lxml.etree.XSLTExtensionError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTParseError      lxml.etree.XSLTParseError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTSaveError       lxml.etree.XSLTSaveError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.etree._AppendOnlyElementProxy     lxml.etree._AppendOnlyElementProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._AppendOnlyElementProxy.text        lxml.etree._AppendOnlyElementProxy-class.html#text
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyElementProxy.prefix        lxml.etree._ReadOnlyElementProxy-class.html#prefix
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._AppendOnlyElementProxy.append      lxml.etree._AppendOnlyElementProxy-class.html#append
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._AppendOnlyElementProxy.__new__     lxml.etree._AppendOnlyElementProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._AppendOnlyElementProxy.extend      lxml.etree._AppendOnlyElementProxy-class.html#extend
-lxml.etree._ReadOnlyElementProxy.get   lxml.etree._ReadOnlyElementProxy-class.html#get
-lxml.etree._ReadOnlyElementProxy.keys  lxml.etree._ReadOnlyElementProxy-class.html#keys
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyElementProxy.items lxml.etree._ReadOnlyElementProxy-class.html#items
-lxml.etree._ReadOnlyElementProxy.values        lxml.etree._ReadOnlyElementProxy-class.html#values
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyElementProxy.attrib        lxml.etree._ReadOnlyElementProxy-class.html#attrib
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._Attrib     lxml.etree._Attrib-class.html
-lxml.etree._Attrib.iteritems   lxml.etree._Attrib-class.html#iteritems
-lxml.etree._Attrib.pop lxml.etree._Attrib-class.html#pop
-lxml.etree._Attrib.has_key     lxml.etree._Attrib-class.html#has_key
-lxml.etree._Attrib.__lt__      lxml.etree._Attrib-class.html#__lt__
-lxml.etree._Attrib.__new__     lxml.etree._Attrib-class.html#__new__
-lxml.etree._Attrib.__contains__        lxml.etree._Attrib-class.html#__contains__
-lxml.etree._Attrib.itervalues  lxml.etree._Attrib-class.html#itervalues
-lxml.etree._Attrib.__len__     lxml.etree._Attrib-class.html#__len__
-lxml.etree._Attrib.__ne__      lxml.etree._Attrib-class.html#__ne__
-lxml.etree._Attrib.__getitem__ lxml.etree._Attrib-class.html#__getitem__
-lxml.etree._Attrib.get lxml.etree._Attrib-class.html#get
-lxml.etree._Attrib.keys        lxml.etree._Attrib-class.html#keys
-lxml.etree._Attrib.update      lxml.etree._Attrib-class.html#update
-lxml.etree._Attrib.__iter__    lxml.etree._Attrib-class.html#__iter__
-lxml.etree._Attrib.__gt__      lxml.etree._Attrib-class.html#__gt__
-lxml.etree._Attrib.__eq__      lxml.etree._Attrib-class.html#__eq__
-lxml.etree._Attrib.iterkeys    lxml.etree._Attrib-class.html#iterkeys
-lxml.etree._Attrib.__delitem__ lxml.etree._Attrib-class.html#__delitem__
-lxml.etree._Attrib.__nonzero__ lxml.etree._Attrib-class.html#__nonzero__
-lxml.etree._Attrib.items       lxml.etree._Attrib-class.html#items
-lxml.etree._Attrib.clear       lxml.etree._Attrib-class.html#clear
-lxml.etree._Attrib.__setitem__ lxml.etree._Attrib-class.html#__setitem__
-lxml.etree._Attrib.__le__      lxml.etree._Attrib-class.html#__le__
-lxml.etree._Attrib.values      lxml.etree._Attrib-class.html#values
-lxml.etree._Attrib.__repr__    lxml.etree._Attrib-class.html#__repr__
-lxml.etree._Attrib.__ge__      lxml.etree._Attrib-class.html#__ge__
-lxml.etree._AttribIterator     lxml.etree._AttribIterator-class.html
-lxml.etree._AttribIterator.__new__     lxml.etree._AttribIterator-class.html#__new__
-lxml.etree._AttribIterator.__next__    lxml.etree._AttribIterator-class.html#__next__
-lxml.etree._AttribIterator.next        lxml.etree._AttribIterator-class.html#next
-lxml.etree._AttribIterator.__iter__    lxml.etree._AttribIterator-class.html#__iter__
-lxml.etree._BaseContext        lxml.etree._BaseContext-class.html
-lxml.etree._BaseContext.__new__        lxml.etree._BaseContext-class.html#__new__
-lxml.etree._BaseContext.eval_context   lxml.etree._BaseContext-class.html#eval_context
-lxml.etree._BaseContext.context_node   lxml.etree._BaseContext-class.html#context_node
-lxml.etree._BaseContext.__init__       lxml.etree._BaseContext-class.html#__init__
-lxml.etree._BaseErrorLog       lxml.etree._BaseErrorLog-class.html
-lxml.etree._BaseErrorLog.__new__       lxml.etree._BaseErrorLog-class.html#__new__
-lxml.etree._BaseErrorLog.last_error    lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._BaseErrorLog.__repr__      lxml.etree._BaseErrorLog-class.html#__repr__
-lxml.etree._BaseErrorLog.copy  lxml.etree._BaseErrorLog-class.html#copy
-lxml.etree._BaseErrorLog.__init__      lxml.etree._BaseErrorLog-class.html#__init__
-lxml.etree._BaseParser lxml.etree._BaseParser-class.html
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._BaseParser.__init__        lxml.etree._BaseParser-class.html#__init__
-lxml.etree._BaseParser.__new__ lxml.etree._BaseParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._ClassNamespaceRegistry     lxml.etree._ClassNamespaceRegistry-class.html
-lxml.etree._ClassNamespaceRegistry.__new__     lxml.etree._ClassNamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__      lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update   lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__ lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems        lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._ClassNamespaceRegistry.__delitem__ lxml.etree._ClassNamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items    lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear    lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._ClassNamespaceRegistry.__setitem__ lxml.etree._ClassNamespaceRegistry-class.html#__setitem__
-lxml.etree._ClassNamespaceRegistry.__repr__    lxml.etree._ClassNamespaceRegistry-class.html#__repr__
-lxml.etree._Comment    lxml.etree._Comment-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Comment.tag        lxml.etree._Comment-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Comment.__new__    lxml.etree._Comment-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Comment.__repr__   lxml.etree._Comment-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Document   lxml.etree._Document-class.html
-lxml.etree._Document.__new__   lxml.etree._Document-class.html#__new__
-lxml.etree._DomainErrorLog     lxml.etree._DomainErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains        lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error    lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings  lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._DomainErrorLog.__init__    lxml.etree._DomainErrorLog-class.html#__init__
-lxml.etree._DomainErrorLog.__new__     lxml.etree._DomainErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__  lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level     lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__       lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__   lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ErrorLog.__iter__  lxml.etree._ErrorLog-class.html#__iter__
-lxml.etree._ErrorLog.copy      lxml.etree._ErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__   lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals    lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._DomainErrorLog.receive     lxml.etree._DomainErrorLog-class.html#receive
-lxml.etree._ErrorLog.clear     lxml.etree._ErrorLog-class.html#clear
-lxml.etree._ListErrorLog.filter_from_errors    lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types  lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__      lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._Element    lxml.etree._Element-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.__new__    lxml.etree._Element-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._ElementIterator    lxml.etree._ElementIterator-class.html
-lxml.etree._ElementIterator.__new__    lxml.etree._ElementIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__   lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next       lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__   lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree._ElementStringResult        lxml.etree._ElementStringResult-class.html
-lxml.etree._ElementStringResult.getparent      lxml.etree._ElementStringResult-class.html#getparent
-lxml.etree._ElementTagMatcher  lxml.etree._ElementTagMatcher-class.html
-lxml.etree._ElementTagMatcher.__new__  lxml.etree._ElementTagMatcher-class.html#__new__
-lxml.etree._ElementTree        lxml.etree._ElementTree-class.html
-lxml.etree._ElementTree.getroot        lxml.etree._ElementTree-class.html#getroot
-lxml.etree._ElementTree.iterfind       lxml.etree._ElementTree-class.html#iterfind
-lxml.etree._ElementTree.parse  lxml.etree._ElementTree-class.html#parse
-lxml.etree._ElementTree.relaxng        lxml.etree._ElementTree-class.html#relaxng
-lxml.etree._ElementTree.find   lxml.etree._ElementTree-class.html#find
-lxml.etree._ElementTree.__new__        lxml.etree._ElementTree-class.html#__new__
-lxml.etree._ElementTree.findtext       lxml.etree._ElementTree-class.html#findtext
-lxml.etree._ElementTree.findall        lxml.etree._ElementTree-class.html#findall
-lxml.etree._ElementTree.write  lxml.etree._ElementTree-class.html#write
-lxml.etree._ElementTree._setroot       lxml.etree._ElementTree-class.html#_setroot
-lxml.etree._ElementTree.xpath  lxml.etree._ElementTree-class.html#xpath
-lxml.etree._ElementTree.parser lxml.etree._ElementTree-class.html#parser
-lxml.etree._ElementTree.xslt   lxml.etree._ElementTree-class.html#xslt
-lxml.etree._ElementTree.__deepcopy__   lxml.etree._ElementTree-class.html#__deepcopy__
-lxml.etree._ElementTree.getpath        lxml.etree._ElementTree-class.html#getpath
-lxml.etree._ElementTree.write_c14n     lxml.etree._ElementTree-class.html#write_c14n
-lxml.etree._ElementTree.xmlschema      lxml.etree._ElementTree-class.html#xmlschema
-lxml.etree._ElementTree.xinclude       lxml.etree._ElementTree-class.html#xinclude
-lxml.etree._ElementTree.docinfo        lxml.etree._ElementTree-class.html#docinfo
-lxml.etree._ElementTree.getiterator    lxml.etree._ElementTree-class.html#getiterator
-lxml.etree._ElementTree.iter   lxml.etree._ElementTree-class.html#iter
-lxml.etree._ElementTree.__copy__       lxml.etree._ElementTree-class.html#__copy__
-lxml.etree._ElementUnicodeResult       lxml.etree._ElementUnicodeResult-class.html
-lxml.etree._ElementUnicodeResult.getparent     lxml.etree._ElementUnicodeResult-class.html#getparent
-lxml.etree._ElementUnicodeResult.is_attribute  lxml.etree._ElementUnicodeResult-class.html#is_attribute
-lxml.etree._ElementUnicodeResult.__new__       lxml.etree._ElementUnicodeResult-class.html#__new__
-lxml.etree._ElementUnicodeResult.is_text       lxml.etree._ElementUnicodeResult-class.html#is_text
-lxml.etree._ElementUnicodeResult.attrname      lxml.etree._ElementUnicodeResult-class.html#attrname
-lxml.etree._ElementUnicodeResult.is_tail       lxml.etree._ElementUnicodeResult-class.html#is_tail
-lxml.etree._Entity     lxml.etree._Entity-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Entity.text        lxml.etree._Entity-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Entity.tag lxml.etree._Entity-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Entity.__new__     lxml.etree._Entity-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Entity.name        lxml.etree._Entity-class.html#name
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Entity.__repr__    lxml.etree._Entity-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._ErrorLog   lxml.etree._ErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains        lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error    lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings  lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._ErrorLog.__init__  lxml.etree._ErrorLog-class.html#__init__
-lxml.etree._ErrorLog.__new__   lxml.etree._ErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__  lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level     lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__       lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__   lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ErrorLog.__iter__  lxml.etree._ErrorLog-class.html#__iter__
-lxml.etree._ErrorLog.copy      lxml.etree._ErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__   lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals    lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._ErrorLog.receive   lxml.etree._ErrorLog-class.html#receive
-lxml.etree._ErrorLog.clear     lxml.etree._ErrorLog-class.html#clear
-lxml.etree._ListErrorLog.filter_from_errors    lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types  lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__      lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._ExceptionContext   lxml.etree._ExceptionContext-class.html
-lxml.etree._ExceptionContext.__new__   lxml.etree._ExceptionContext-class.html#__new__
-lxml.etree._ExsltRegExp        lxml.etree._ExsltRegExp-class.html
-lxml.etree._ExsltRegExp.__new__        lxml.etree._ExsltRegExp-class.html#__new__
-lxml.etree._ExsltRegExp.replace        lxml.etree._ExsltRegExp-class.html#replace
-lxml.etree._ExsltRegExp.test   lxml.etree._ExsltRegExp-class.html#test
-lxml.etree._ExsltRegExp.match  lxml.etree._ExsltRegExp-class.html#match
-lxml.etree._FeedParser lxml.etree._FeedParser-class.html
-lxml.etree._FeedParser.feed    lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close   lxml.etree._FeedParser-class.html#close
-lxml.etree._BaseParser.__init__        lxml.etree._BaseParser-class.html#__init__
-lxml.etree._FeedParser.__new__ lxml.etree._FeedParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log  lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree._FileReaderContext  lxml.etree._FileReaderContext-class.html
-lxml.etree._FileReaderContext.__new__  lxml.etree._FileReaderContext-class.html#__new__
-lxml.etree._FilelikeWriter     lxml.etree._FilelikeWriter-class.html
-lxml.etree._FilelikeWriter.__new__     lxml.etree._FilelikeWriter-class.html#__new__
-lxml.etree._FunctionNamespaceRegistry  lxml.etree._FunctionNamespaceRegistry-class.html
-lxml.etree._FunctionNamespaceRegistry.__new__  lxml.etree._FunctionNamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__      lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update   lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__ lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems        lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._FunctionNamespaceRegistry.__delitem__      lxml.etree._FunctionNamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items    lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear    lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._FunctionNamespaceRegistry.__setitem__      lxml.etree._FunctionNamespaceRegistry-class.html#__setitem__
-lxml.etree._FunctionNamespaceRegistry.__repr__ lxml.etree._FunctionNamespaceRegistry-class.html#__repr__
-lxml.etree._IDDict     lxml.etree._IDDict-class.html
-lxml.etree._IDDict.has_key     lxml.etree._IDDict-class.html#has_key
-lxml.etree._IDDict.__new__     lxml.etree._IDDict-class.html#__new__
-lxml.etree._IDDict.__contains__        lxml.etree._IDDict-class.html#__contains__
-lxml.etree._IDDict.itervalues  lxml.etree._IDDict-class.html#itervalues
-lxml.etree._IDDict.__len__     lxml.etree._IDDict-class.html#__len__
-lxml.etree._IDDict.__getitem__ lxml.etree._IDDict-class.html#__getitem__
-lxml.etree._IDDict.get lxml.etree._IDDict-class.html#get
-lxml.etree._IDDict.keys        lxml.etree._IDDict-class.html#keys
-lxml.etree._IDDict.__iter__    lxml.etree._IDDict-class.html#__iter__
-lxml.etree._IDDict.iteritems   lxml.etree._IDDict-class.html#iteritems
-lxml.etree._IDDict.copy        lxml.etree._IDDict-class.html#copy
-lxml.etree._IDDict.iterkeys    lxml.etree._IDDict-class.html#iterkeys
-lxml.etree._IDDict.items       lxml.etree._IDDict-class.html#items
-lxml.etree._IDDict.values      lxml.etree._IDDict-class.html#values
-lxml.etree._IDDict.__repr__    lxml.etree._IDDict-class.html#__repr__
-lxml.etree._InputDocument      lxml.etree._InputDocument-class.html
-lxml.etree._InputDocument.__new__      lxml.etree._InputDocument-class.html#__new__
-lxml.etree._IterparseContext   lxml.etree._IterparseContext-class.html
-lxml.etree._IterparseContext.__new__   lxml.etree._IterparseContext-class.html#__new__
-lxml.etree._ListErrorLog       lxml.etree._ListErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains        lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error    lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings  lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._ListErrorLog.__init__      lxml.etree._ListErrorLog-class.html#__init__
-lxml.etree._ListErrorLog.__new__       lxml.etree._ListErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__  lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level     lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__       lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__   lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ListErrorLog.__iter__      lxml.etree._ListErrorLog-class.html#__iter__
-lxml.etree._ListErrorLog.copy  lxml.etree._ListErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__   lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals    lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._ListErrorLog.filter_from_errors    lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types  lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__      lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._LogEntry   lxml.etree._LogEntry-class.html
-lxml.etree._LogEntry.domain    lxml.etree._LogEntry-class.html#domain
-lxml.etree._LogEntry.message   lxml.etree._LogEntry-class.html#message
-lxml.etree._LogEntry.level_name        lxml.etree._LogEntry-class.html#level_name
-lxml.etree._LogEntry.__new__   lxml.etree._LogEntry-class.html#__new__
-lxml.etree._LogEntry.type_name lxml.etree._LogEntry-class.html#type_name
-lxml.etree._LogEntry.domain_name       lxml.etree._LogEntry-class.html#domain_name
-lxml.etree._LogEntry.filename  lxml.etree._LogEntry-class.html#filename
-lxml.etree._LogEntry.type      lxml.etree._LogEntry-class.html#type
-lxml.etree._LogEntry.line      lxml.etree._LogEntry-class.html#line
-lxml.etree._LogEntry.level     lxml.etree._LogEntry-class.html#level
-lxml.etree._LogEntry.column    lxml.etree._LogEntry-class.html#column
-lxml.etree._LogEntry.__repr__  lxml.etree._LogEntry-class.html#__repr__
-lxml.etree._ModifyContentOnlyEntityProxy       lxml.etree._ModifyContentOnlyEntityProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ModifyContentOnlyProxy.text        lxml.etree._ModifyContentOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ModifyContentOnlyEntityProxy.__new__       lxml.etree._ModifyContentOnlyEntityProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ModifyContentOnlyEntityProxy.name  lxml.etree._ModifyContentOnlyEntityProxy-class.html#name
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ModifyContentOnlyPIProxy   lxml.etree._ModifyContentOnlyPIProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ModifyContentOnlyProxy.text        lxml.etree._ModifyContentOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ModifyContentOnlyPIProxy.__new__   lxml.etree._ModifyContentOnlyPIProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ModifyContentOnlyPIProxy.target    lxml.etree._ModifyContentOnlyPIProxy-class.html#target
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ModifyContentOnlyProxy     lxml.etree._ModifyContentOnlyProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ModifyContentOnlyProxy.text        lxml.etree._ModifyContentOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ModifyContentOnlyProxy.__new__     lxml.etree._ModifyContentOnlyProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._NamespaceRegistry  lxml.etree._NamespaceRegistry-class.html
-lxml.etree._NamespaceRegistry.__new__  lxml.etree._NamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__      lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update   lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__ lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems        lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._NamespaceRegistry.__delitem__      lxml.etree._NamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items    lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear    lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._NamespaceRegistry.__setitem__      lxml.etree._NamespaceRegistry-class.html#__setitem__
-lxml.etree._OpaqueDocumentWrapper      lxml.etree._OpaqueDocumentWrapper-class.html
-lxml.etree._OpaqueDocumentWrapper.__new__      lxml.etree._OpaqueDocumentWrapper-class.html#__new__
-lxml.etree._OpaqueDocumentWrapper.extend       lxml.etree._OpaqueDocumentWrapper-class.html#extend
-lxml.etree._OpaqueDocumentWrapper.append       lxml.etree._OpaqueDocumentWrapper-class.html#append
-lxml.etree._OpaqueNodeWrapper.__init__ lxml.etree._OpaqueNodeWrapper-class.html#__init__
-lxml.etree._OpaqueNodeWrapper  lxml.etree._OpaqueNodeWrapper-class.html
-lxml.etree._OpaqueNodeWrapper.__new__  lxml.etree._OpaqueNodeWrapper-class.html#__new__
-lxml.etree._OpaqueNodeWrapper.__init__ lxml.etree._OpaqueNodeWrapper-class.html#__init__
-lxml.etree._ParserContext      lxml.etree._ParserContext-class.html
-lxml.etree._ParserContext.__new__      lxml.etree._ParserContext-class.html#__new__
-lxml.etree._ParserDictionaryContext    lxml.etree._ParserDictionaryContext-class.html
-lxml.etree._ParserDictionaryContext.__new__    lxml.etree._ParserDictionaryContext-class.html#__new__
-lxml.etree._ParserSchemaValidationContext      lxml.etree._ParserSchemaValidationContext-class.html
-lxml.etree._ParserSchemaValidationContext.__new__      lxml.etree._ParserSchemaValidationContext-class.html#__new__
-lxml.etree._ProcessingInstruction      lxml.etree._ProcessingInstruction-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag  lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._ProcessingInstruction.__new__      lxml.etree._ProcessingInstruction-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target       lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__     lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._PythonSaxParserTarget      lxml.etree._PythonSaxParserTarget-class.html
-lxml.etree._PythonSaxParserTarget.__new__      lxml.etree._PythonSaxParserTarget-class.html#__new__
-lxml.etree._ReadOnlyElementProxy       lxml.etree._ReadOnlyElementProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyProxy.text lxml.etree._ReadOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyElementProxy.prefix        lxml.etree._ReadOnlyElementProxy-class.html#prefix
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyElementProxy.__new__       lxml.etree._ReadOnlyElementProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyElementProxy.get   lxml.etree._ReadOnlyElementProxy-class.html#get
-lxml.etree._ReadOnlyElementProxy.keys  lxml.etree._ReadOnlyElementProxy-class.html#keys
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyElementProxy.items lxml.etree._ReadOnlyElementProxy-class.html#items
-lxml.etree._ReadOnlyElementProxy.values        lxml.etree._ReadOnlyElementProxy-class.html#values
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyElementProxy.attrib        lxml.etree._ReadOnlyElementProxy-class.html#attrib
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ReadOnlyEntityProxy        lxml.etree._ReadOnlyEntityProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyEntityProxy.text   lxml.etree._ReadOnlyEntityProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyEntityProxy.__new__        lxml.etree._ReadOnlyEntityProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyEntityProxy.name   lxml.etree._ReadOnlyEntityProxy-class.html#name
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ReadOnlyPIProxy    lxml.etree._ReadOnlyPIProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyProxy.text lxml.etree._ReadOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyPIProxy.__new__    lxml.etree._ReadOnlyPIProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyPIProxy.target     lxml.etree._ReadOnlyPIProxy-class.html#target
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ReadOnlyProxy      lxml.etree._ReadOnlyProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious  lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent    lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline   lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyProxy.text lxml.etree._ReadOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag  lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext      lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyProxy.__new__      lxml.etree._ReadOnlyProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.tail lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.getchildren  lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.__len__      lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__  lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__ lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__     lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__  lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyProxy.__repr__     lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__     lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ResolverContext    lxml.etree._ResolverContext-class.html
-lxml.etree._ResolverContext.__new__    lxml.etree._ResolverContext-class.html#__new__
-lxml.etree._ResolverRegistry   lxml.etree._ResolverRegistry-class.html
-lxml.etree._ResolverRegistry.resolve   lxml.etree._ResolverRegistry-class.html#resolve
-lxml.etree._ResolverRegistry.__new__   lxml.etree._ResolverRegistry-class.html#__new__
-lxml.etree._ResolverRegistry.remove    lxml.etree._ResolverRegistry-class.html#remove
-lxml.etree._ResolverRegistry.add       lxml.etree._ResolverRegistry-class.html#add
-lxml.etree._ResolverRegistry.__repr__  lxml.etree._ResolverRegistry-class.html#__repr__
-lxml.etree._ResolverRegistry.copy      lxml.etree._ResolverRegistry-class.html#copy
-lxml.etree._RotatingErrorLog   lxml.etree._RotatingErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains        lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error    lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings  lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._RotatingErrorLog.__init__  lxml.etree._RotatingErrorLog-class.html#__init__
-lxml.etree._RotatingErrorLog.__new__   lxml.etree._RotatingErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__  lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level     lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__       lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__   lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ErrorLog.__iter__  lxml.etree._ErrorLog-class.html#__iter__
-lxml.etree._ErrorLog.copy      lxml.etree._ErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__   lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals    lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._RotatingErrorLog.receive   lxml.etree._RotatingErrorLog-class.html#receive
-lxml.etree._ErrorLog.clear     lxml.etree._ErrorLog-class.html#clear
-lxml.etree._ListErrorLog.filter_from_errors    lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types  lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__      lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._SaxParserContext   lxml.etree._SaxParserContext-class.html
-lxml.etree._SaxParserContext.__new__   lxml.etree._SaxParserContext-class.html#__new__
-lxml.etree._SaxParserTarget    lxml.etree._SaxParserTarget-class.html
-lxml.etree._SaxParserTarget.__new__    lxml.etree._SaxParserTarget-class.html#__new__
-lxml.etree._TargetParserContext        lxml.etree._TargetParserContext-class.html
-lxml.etree._TargetParserContext.__new__        lxml.etree._TargetParserContext-class.html#__new__
-lxml.etree._TargetParserResult lxml.etree._TargetParserResult-class.html
-lxml.etree._TargetParserResult.__init__        lxml.etree._TargetParserResult-class.html#__init__
-lxml.etree._TempStore  lxml.etree._TempStore-class.html
-lxml.etree._TempStore.__new__  lxml.etree._TempStore-class.html#__new__
-lxml.etree._TempStore.__init__ lxml.etree._TempStore-class.html#__init__
-lxml.etree._Validator  lxml.etree._Validator-class.html
-lxml.etree._Validator.__new__  lxml.etree._Validator-class.html#__new__
-lxml.etree._Validator._clear_error_log lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid      lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message      lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log        lxml.etree._Validator-class.html#error_log
-lxml.etree._Validator.assert_  lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate lxml.etree._Validator-class.html#validate
-lxml.etree._XPathContext       lxml.etree._XPathContext-class.html
-lxml.etree._XPathContext.__new__       lxml.etree._XPathContext-class.html#__new__
-lxml.etree._BaseContext.eval_context   lxml.etree._BaseContext-class.html#eval_context
-lxml.etree._BaseContext.context_node   lxml.etree._BaseContext-class.html#context_node
-lxml.etree._XPathContext.__init__      lxml.etree._XPathContext-class.html#__init__
-lxml.etree._XPathEvaluatorBase lxml.etree._XPathEvaluatorBase-class.html
-lxml.etree._XPathEvaluatorBase.__new__ lxml.etree._XPathEvaluatorBase-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate        lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log       lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree._XPathEvaluatorBase.__init__        lxml.etree._XPathEvaluatorBase-class.html#__init__
-lxml.etree._XPathFunctionNamespaceRegistry     lxml.etree._XPathFunctionNamespaceRegistry-class.html
-lxml.etree._XPathFunctionNamespaceRegistry.prefix      lxml.etree._XPathFunctionNamespaceRegistry-class.html#prefix
-lxml.etree._XPathFunctionNamespaceRegistry.__new__     lxml.etree._XPathFunctionNamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__      lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update   lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__ lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems        lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._FunctionNamespaceRegistry.__delitem__      lxml.etree._FunctionNamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items    lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear    lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._FunctionNamespaceRegistry.__setitem__      lxml.etree._FunctionNamespaceRegistry-class.html#__setitem__
-lxml.etree._FunctionNamespaceRegistry.__repr__ lxml.etree._FunctionNamespaceRegistry-class.html#__repr__
-lxml.etree._XSLTContext        lxml.etree._XSLTContext-class.html
-lxml.etree._XSLTContext.__new__        lxml.etree._XSLTContext-class.html#__new__
-lxml.etree._BaseContext.eval_context   lxml.etree._BaseContext-class.html#eval_context
-lxml.etree._BaseContext.context_node   lxml.etree._BaseContext-class.html#context_node
-lxml.etree._XSLTContext.__init__       lxml.etree._XSLTContext-class.html#__init__
-lxml.etree._XSLTProcessingInstruction  lxml.etree._XSLTProcessingInstruction-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._XSLTProcessingInstruction.set      lxml.etree._XSLTProcessingInstruction-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag  lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._XSLTProcessingInstruction.__new__  lxml.etree._XSLTProcessingInstruction-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.PIBase.__init__     lxml.etree.PIBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree._XSLTProcessingInstruction.get      lxml.etree._XSLTProcessingInstruction-class.html#get
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target       lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__     lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._XSLTProcessingInstruction.parseXSL lxml.etree._XSLTProcessingInstruction-class.html#parseXSL
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._XSLTQuotedStringParam      lxml.etree._XSLTQuotedStringParam-class.html
-lxml.etree._XSLTQuotedStringParam.__new__      lxml.etree._XSLTQuotedStringParam-class.html#__new__
-lxml.etree._XSLTResolverContext        lxml.etree._XSLTResolverContext-class.html
-lxml.etree._XSLTResolverContext.__new__        lxml.etree._XSLTResolverContext-class.html#__new__
-lxml.etree._XSLTResultTree     lxml.etree._XSLTResultTree-class.html
-lxml.etree._ElementTree.getroot        lxml.etree._ElementTree-class.html#getroot
-lxml.etree._XSLTResultTree.__str__     lxml.etree._XSLTResultTree-class.html#__str__
-lxml.etree._ElementTree.parser lxml.etree._ElementTree-class.html#parser
-lxml.etree._ElementTree.parse  lxml.etree._ElementTree-class.html#parse
-lxml.etree._ElementTree.relaxng        lxml.etree._ElementTree-class.html#relaxng
-lxml.etree._ElementTree.findall        lxml.etree._ElementTree-class.html#findall
-lxml.etree._XSLTResultTree.__new__     lxml.etree._XSLTResultTree-class.html#__new__
-lxml.etree._ElementTree.findtext       lxml.etree._ElementTree-class.html#findtext
-lxml.etree._ElementTree.find   lxml.etree._ElementTree-class.html#find
-lxml.etree._ElementTree.write  lxml.etree._ElementTree-class.html#write
-lxml.etree._ElementTree._setroot       lxml.etree._ElementTree-class.html#_setroot
-lxml.etree._ElementTree.xpath  lxml.etree._ElementTree-class.html#xpath
-lxml.etree._ElementTree.iterfind       lxml.etree._ElementTree-class.html#iterfind
-lxml.etree._ElementTree.xslt   lxml.etree._ElementTree-class.html#xslt
-lxml.etree._ElementTree.__deepcopy__   lxml.etree._ElementTree-class.html#__deepcopy__
-lxml.etree._ElementTree.getpath        lxml.etree._ElementTree-class.html#getpath
-lxml.etree._ElementTree.write_c14n     lxml.etree._ElementTree-class.html#write_c14n
-lxml.etree._ElementTree.xmlschema      lxml.etree._ElementTree-class.html#xmlschema
-lxml.etree._ElementTree.xinclude       lxml.etree._ElementTree-class.html#xinclude
-lxml.etree._ElementTree.docinfo        lxml.etree._ElementTree-class.html#docinfo
-lxml.etree._XSLTResultTree.__unicode__ lxml.etree._XSLTResultTree-class.html#__unicode__
-lxml.etree._XSLTResultTree.xslt_profile        lxml.etree._XSLTResultTree-class.html#xslt_profile
-lxml.etree._ElementTree.iter   lxml.etree._ElementTree-class.html#iter
-lxml.etree._ElementTree.getiterator    lxml.etree._ElementTree-class.html#getiterator
-lxml.etree._ElementTree.__copy__       lxml.etree._ElementTree-class.html#__copy__
-lxml.etree.__ContentOnlyElement        lxml.etree.__ContentOnlyElement-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.__ContentOnlyElement.__new__        lxml.etree.__ContentOnlyElement-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree.iterparse   lxml.etree.iterparse-class.html
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree.iterparse.__init__  lxml.etree.iterparse-class.html#__init__
-lxml.etree.iterparse.__new__   lxml.etree.iterparse-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree.iterparse.next      lxml.etree.iterparse-class.html#next
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree.iterparse.__next__  lxml.etree.iterparse-class.html#__next__
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree.iterparse.__iter__  lxml.etree.iterparse-class.html#__iter__
-lxml.etree.iterparse.copy      lxml.etree.iterparse-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree.iterparse.error_log lxml.etree.iterparse-class.html#error_log
-lxml.etree.iterparse.root      lxml.etree.iterparse-class.html#root
-lxml.etree.iterwalk    lxml.etree.iterwalk-class.html
-lxml.etree.iterwalk.__new__    lxml.etree.iterwalk-class.html#__new__
-lxml.etree.iterwalk.__next__   lxml.etree.iterwalk-class.html#__next__
-lxml.etree.iterwalk.next       lxml.etree.iterwalk-class.html#next
-lxml.etree.iterwalk.__iter__   lxml.etree.iterwalk-class.html#__iter__
-lxml.etree.iterwalk.__init__   lxml.etree.iterwalk-class.html#__init__
-lxml.html.CheckboxGroup        lxml.html.CheckboxGroup-class.html
-lxml.html.CheckboxGroup._value__del    lxml.html.CheckboxGroup-class.html#_value__del
-lxml.html.CheckboxGroup.value  lxml.html.CheckboxGroup-class.html#value
-lxml.html.CheckboxGroup._value__set    lxml.html.CheckboxGroup-class.html#_value__set
-lxml.html.CheckboxGroup.__repr__       lxml.html.CheckboxGroup-class.html#__repr__
-lxml.html.CheckboxGroup._value__get    lxml.html.CheckboxGroup-class.html#_value__get
-lxml.html.CheckboxValues       lxml.html.CheckboxValues-class.html
-lxml.html.CheckboxValues.__init__      lxml.html.CheckboxValues-class.html#__init__
-lxml.html.CheckboxValues.add   lxml.html.CheckboxValues-class.html#add
-lxml.html.CheckboxValues.__iter__      lxml.html.CheckboxValues-class.html#__iter__
-lxml.html.CheckboxValues.remove        lxml.html.CheckboxValues-class.html#remove
-lxml.html.CheckboxValues.__repr__      lxml.html.CheckboxValues-class.html#__repr__
-lxml.html.FieldsDict   lxml.html.FieldsDict-class.html
-lxml.html.FieldsDict.__init__  lxml.html.FieldsDict-class.html#__init__
-lxml.html.FieldsDict.__contains__      lxml.html.FieldsDict-class.html#__contains__
-lxml.html.FieldsDict.__getitem__       lxml.html.FieldsDict-class.html#__getitem__
-lxml.html.FieldsDict.keys      lxml.html.FieldsDict-class.html#keys
-lxml.html.FieldsDict.__delitem__       lxml.html.FieldsDict-class.html#__delitem__
-lxml.html.FieldsDict.__setitem__       lxml.html.FieldsDict-class.html#__setitem__
-lxml.html.FieldsDict.__repr__  lxml.html.FieldsDict-class.html#__repr__
-lxml.html.FormElement  lxml.html.FormElement-class.html
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.FormElement._fields__get     lxml.html.FormElement-class.html#_fields__get
-lxml.html.FormElement.form_values      lxml.html.FormElement-class.html#form_values
-lxml.html.FormElement._action__del     lxml.html.FormElement-class.html#_action__del
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.html.FormElement._fields__set     lxml.html.FormElement-class.html#_fields__set
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.html.FormElement._method__set     lxml.html.FormElement-class.html#_method__set
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.FormElement.fields   lxml.html.FormElement-class.html#fields
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.html.FormElement.method   lxml.html.FormElement-class.html#method
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.html.FormElement._action__get     lxml.html.FormElement-class.html#_action__get
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.html.FormElement._name    lxml.html.FormElement-class.html#_name
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.html.FormElement.action   lxml.html.FormElement-class.html#action
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.html.FormElement._method__get     lxml.html.FormElement-class.html#_method__get
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.html.FormElement._action__set     lxml.html.FormElement-class.html#_action__set
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.html.FormElement.inputs   lxml.html.FormElement-class.html#inputs
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.html.HTMLParser   lxml.html.HTMLParser-class.html
-lxml.etree._FeedParser.feed    lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close   lxml.etree._FeedParser-class.html#close
-lxml.html.HTMLParser.__init__  lxml.html.HTMLParser-class.html#__init__
-lxml.etree.HTMLParser.__new__  lxml.etree.HTMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log  lxml.etree._FeedParser-class.html#feed_error_log
-lxml.html.HtmlComment  lxml.html.HtmlComment-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Comment.tag        lxml.etree._Comment-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.CommentBase.__new__ lxml.etree.CommentBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.CommentBase.__init__        lxml.etree.CommentBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Comment.__repr__   lxml.etree._Comment-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.html.HtmlElement  lxml.html.HtmlElement-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.html.HtmlElementClassLookup       lxml.html.HtmlElementClassLookup-class.html
-lxml.html.HtmlElementClassLookup._default_element_classes      lxml.html.HtmlElementClassLookup-class.html#_default_element_classes
-lxml.etree.CustomElementClassLookup.__new__    lxml.etree.CustomElementClassLookup-class.html#__new__
-lxml.html.HtmlElementClassLookup.lookup        lxml.html.HtmlElementClassLookup-class.html#lookup
-lxml.etree.FallbackElementClassLookup.fallback lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback     lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.html.HtmlElementClassLookup.__init__      lxml.html.HtmlElementClassLookup-class.html#__init__
-lxml.html.HtmlEntity   lxml.html.HtmlEntity-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Entity.text        lxml.etree._Entity-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Entity.tag lxml.etree._Entity-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.EntityBase.__new__  lxml.etree.EntityBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.EntityBase.__init__ lxml.etree.EntityBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Entity.name        lxml.etree._Entity-class.html#name
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Entity.__repr__    lxml.etree._Entity-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.html.HtmlMixin    lxml.html.HtmlMixin-class.html
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.html.HtmlProcessingInstruction    lxml.html.HtmlProcessingInstruction-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree.__ContentOnlyElement.set    lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text   lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag  lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append lxml.etree.__ContentOnlyElement-class.html#append
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.PIBase.__new__      lxml.etree.PIBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.PIBase.__init__     lxml.etree.PIBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__delitem__    lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree.__ContentOnlyElement.__len__        lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree.__ContentOnlyElement.__getitem__    lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.get    lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree.__ContentOnlyElement.keys   lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__    lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.insert lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target       lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items  lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__     lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree.__ContentOnlyElement.attrib lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.html.InputElement lxml.html.InputElement-class.html
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.html.InputMixin._name__del        lxml.html.InputMixin-class.html#_name__del
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.InputMixin._name__set        lxml.html.InputMixin-class.html#_name__set
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.InputMixin.name      lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get        lxml.html.InputMixin-class.html#_name__get
-lxml.html.InputElement._type__set      lxml.html.InputElement-class.html#_type__set
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.InputMixin.__repr__  lxml.html.InputMixin-class.html#__repr__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.html.InputElement.checked lxml.html.InputElement-class.html#checked
-lxml.html.InputElement._type__get      lxml.html.InputElement-class.html#_type__get
-lxml.html.InputElement.type    lxml.html.InputElement-class.html#type
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.html.InputElement.checkable       lxml.html.InputElement-class.html#checkable
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.html.InputElement.value   lxml.html.InputElement-class.html#value
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.html.InputElement._value__del     lxml.html.InputElement-class.html#_value__del
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.html.InputElement._value__set     lxml.html.InputElement-class.html#_value__set
-lxml.html.InputElement._checked__set   lxml.html.InputElement-class.html#_checked__set
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.html.InputElement._value__get     lxml.html.InputElement-class.html#_value__get
-lxml.html.InputElement._checked__get   lxml.html.InputElement-class.html#_checked__get
-lxml.html.InputGetter  lxml.html.InputGetter-class.html
-lxml.html.InputGetter.__getitem__      lxml.html.InputGetter-class.html#__getitem__
-lxml.html.InputGetter.__contains__     lxml.html.InputGetter-class.html#__contains__
-lxml.html.InputGetter.keys     lxml.html.InputGetter-class.html#keys
-lxml.html.InputGetter.__iter__ lxml.html.InputGetter-class.html#__iter__
-lxml.html.InputGetter.__repr__ lxml.html.InputGetter-class.html#__repr__
-lxml.html.InputGetter._all_xpath       lxml.html.InputGetter-class.html#_all_xpath
-lxml.html.InputGetter.__init__ lxml.html.InputGetter-class.html#__init__
-lxml.html.InputGetter._name_xpath      lxml.html.InputGetter-class.html#_name_xpath
-lxml.html.InputMixin   lxml.html.InputMixin-class.html
-lxml.html.InputMixin.name      lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get        lxml.html.InputMixin-class.html#_name__get
-lxml.html.InputMixin._name__set        lxml.html.InputMixin-class.html#_name__set
-lxml.html.InputMixin.__repr__  lxml.html.InputMixin-class.html#__repr__
-lxml.html.InputMixin._name__del        lxml.html.InputMixin-class.html#_name__del
-lxml.html.LabelElement lxml.html.LabelElement-class.html
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.html.LabelElement._for_element__get       lxml.html.LabelElement-class.html#_for_element__get
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.html.LabelElement.for_element     lxml.html.LabelElement-class.html#for_element
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.html.LabelElement._for_element__del       lxml.html.LabelElement-class.html#_for_element__del
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.html.LabelElement._for_element__set       lxml.html.LabelElement-class.html#_for_element__set
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.html.MultipleSelectOptions        lxml.html.MultipleSelectOptions-class.html
-lxml.html.MultipleSelectOptions.__init__       lxml.html.MultipleSelectOptions-class.html#__init__
-lxml.html.MultipleSelectOptions.add    lxml.html.MultipleSelectOptions-class.html#add
-lxml.html.MultipleSelectOptions.__iter__       lxml.html.MultipleSelectOptions-class.html#__iter__
-lxml.html.MultipleSelectOptions.remove lxml.html.MultipleSelectOptions-class.html#remove
-lxml.html.MultipleSelectOptions.__repr__       lxml.html.MultipleSelectOptions-class.html#__repr__
-lxml.html.MultipleSelectOptions.options        lxml.html.MultipleSelectOptions-class.html#options
-lxml.html.RadioGroup   lxml.html.RadioGroup-class.html
-lxml.html.RadioGroup._value__del       lxml.html.RadioGroup-class.html#_value__del
-lxml.html.RadioGroup.value_options     lxml.html.RadioGroup-class.html#value_options
-lxml.html.RadioGroup._value__set       lxml.html.RadioGroup-class.html#_value__set
-lxml.html.RadioGroup.value     lxml.html.RadioGroup-class.html#value
-lxml.html.RadioGroup.__repr__  lxml.html.RadioGroup-class.html#__repr__
-lxml.html.RadioGroup._value__get       lxml.html.RadioGroup-class.html#_value__get
-lxml.html.SelectElement        lxml.html.SelectElement-class.html
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.html.InputMixin._name__del        lxml.html.InputMixin-class.html#_name__del
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.InputMixin._name__set        lxml.html.InputMixin-class.html#_name__set
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.InputMixin.name      lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get        lxml.html.InputMixin-class.html#_name__get
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.InputMixin.__repr__  lxml.html.InputMixin-class.html#__repr__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.html.SelectElement._multiple__set lxml.html.SelectElement-class.html#_multiple__set
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.SelectElement.value_options  lxml.html.SelectElement-class.html#value_options
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.html.SelectElement.value  lxml.html.SelectElement-class.html#value
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.html.SelectElement._value__del    lxml.html.SelectElement-class.html#_value__del
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.html.SelectElement.multiple       lxml.html.SelectElement-class.html#multiple
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.html.SelectElement._value__set    lxml.html.SelectElement-class.html#_value__set
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.html.SelectElement._multiple__get lxml.html.SelectElement-class.html#_multiple__get
-lxml.html.SelectElement._value__get    lxml.html.SelectElement-class.html#_value__get
-lxml.html.TextareaElement      lxml.html.TextareaElement-class.html
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.html.InputMixin._name__del        lxml.html.InputMixin-class.html#_name__del
-lxml.html.HtmlMixin.drop_tag   lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks  lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url   lxml.html.HtmlMixin-class.html#base_url
-lxml.html.InputMixin._name__set        lxml.html.InputMixin-class.html#_name__set
-lxml.html.HtmlMixin.forms      lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get        lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.InputMixin.name      lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get        lxml.html.InputMixin-class.html#_name__get
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.html.HtmlMixin.find_rel_links     lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label      lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href  lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body       lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del        lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.html.HtmlMixin.cssselect  lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.InputMixin.__repr__  lxml.html.InputMixin-class.html#__repr__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree  lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content       lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links      lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head       lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.html.TextareaElement.value        lxml.html.TextareaElement-class.html#value
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.html.TextareaElement._value__del  lxml.html.TextareaElement-class.html#_value__del
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute        lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set        lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id  lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.html.TextareaElement._value__set  lxml.html.TextareaElement-class.html#_value__set
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.html.TextareaElement._value__get  lxml.html.TextareaElement-class.html#_value__get
-lxml.html.XHTMLParser  lxml.html.XHTMLParser-class.html
-lxml.etree._FeedParser.feed    lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup        lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close   lxml.etree._FeedParser-class.html#close
-lxml.html.XHTMLParser.__init__ lxml.html.XHTMLParser-class.html#__init__
-lxml.etree.XMLParser.__new__   lxml.etree.XMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup   lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement     lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy    lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers       lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target  lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log       lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log  lxml.etree._FeedParser-class.html#feed_error_log
-lxml.html._MethodFunc  lxml.html._MethodFunc-class.html
-lxml.html._MethodFunc.__call__ lxml.html._MethodFunc-class.html#__call__
-lxml.html._MethodFunc.__init__ lxml.html._MethodFunc-class.html#__init__
-lxml.html.clean.Cleaner        lxml.html.clean.Cleaner-class.html
-lxml.html.clean.Cleaner.annoying_tags  lxml.html.clean.Cleaner-class.html#annoying_tags
-lxml.html.clean.Cleaner.links  lxml.html.clean.Cleaner-class.html#links
-lxml.html.clean.Cleaner.allow_embedded_url     lxml.html.clean.Cleaner-class.html#allow_embedded_url
-lxml.html.clean.Cleaner.remove_unknown_tags    lxml.html.clean.Cleaner-class.html#remove_unknown_tags
-lxml.html.clean.Cleaner.clean_html     lxml.html.clean.Cleaner-class.html#clean_html
-lxml.html.clean.Cleaner.meta   lxml.html.clean.Cleaner-class.html#meta
-lxml.html.clean.Cleaner.page_structure lxml.html.clean.Cleaner-class.html#page_structure
-lxml.html.clean.Cleaner.frames lxml.html.clean.Cleaner-class.html#frames
-lxml.html.clean.Cleaner.allow_follow   lxml.html.clean.Cleaner-class.html#allow_follow
-lxml.html.clean.Cleaner.__init__       lxml.html.clean.Cleaner-class.html#__init__
-lxml.html.clean.Cleaner.style  lxml.html.clean.Cleaner-class.html#style
-lxml.html.clean.Cleaner.allow_tags     lxml.html.clean.Cleaner-class.html#allow_tags
-lxml.html.clean.Cleaner._remove_javascript_link        lxml.html.clean.Cleaner-class.html#_remove_javascript_link
-lxml.html.clean.Cleaner.comments       lxml.html.clean.Cleaner-class.html#comments
-lxml.html.clean.Cleaner.forms  lxml.html.clean.Cleaner-class.html#forms
-lxml.html.clean.Cleaner._substitute_comments   lxml.html.clean.Cleaner-class.html#_substitute_comments
-lxml.html.clean.Cleaner.kill_conditional_comments      lxml.html.clean.Cleaner-class.html#kill_conditional_comments
-lxml.html.clean.Cleaner.host_whitelist lxml.html.clean.Cleaner-class.html#host_whitelist
-lxml.html.clean.Cleaner.whitelist_tags lxml.html.clean.Cleaner-class.html#whitelist_tags
-lxml.html.clean.Cleaner.__call__       lxml.html.clean.Cleaner-class.html#__call__
-lxml.html.clean.Cleaner.remove_tags    lxml.html.clean.Cleaner-class.html#remove_tags
-lxml.html.clean.Cleaner._kill_elements lxml.html.clean.Cleaner-class.html#_kill_elements
-lxml.html.clean.Cleaner._has_sneaky_javascript lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript
-lxml.html.clean.Cleaner.processing_instructions        lxml.html.clean.Cleaner-class.html#processing_instructions
-lxml.html.clean.Cleaner.javascript     lxml.html.clean.Cleaner-class.html#javascript
-lxml.html.clean.Cleaner.add_nofollow   lxml.html.clean.Cleaner-class.html#add_nofollow
-lxml.html.clean.Cleaner.allow_element  lxml.html.clean.Cleaner-class.html#allow_element
-lxml.html.clean.Cleaner.scripts        lxml.html.clean.Cleaner-class.html#scripts
-lxml.html.clean.Cleaner._tag_link_attrs        lxml.html.clean.Cleaner-class.html#_tag_link_attrs
-lxml.html.clean.Cleaner.safe_attrs_only        lxml.html.clean.Cleaner-class.html#safe_attrs_only
-lxml.html.clean.Cleaner.embedded       lxml.html.clean.Cleaner-class.html#embedded
-lxml.html.diff.DEL_END lxml.html.diff.DEL_END-class.html
-lxml.html.diff.DEL_START       lxml.html.diff.DEL_START-class.html
-lxml.html.diff.InsensitiveSequenceMatcher      lxml.html.diff.InsensitiveSequenceMatcher-class.html
-lxml.html.diff.InsensitiveSequenceMatcher.get_matching_blocks  lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks
-lxml.html.diff.InsensitiveSequenceMatcher.threshold    lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold
-lxml.html.diff.NoDeletes       lxml.html.diff.NoDeletes-class.html
-lxml.html.diff.href_token      lxml.html.diff.href_token-class.html
-lxml.html.diff.href_token.hide_when_equal      lxml.html.diff.href_token-class.html#hide_when_equal
-lxml.html.diff.token.__new__   lxml.html.diff.token-class.html#__new__
-lxml.html.diff.href_token.html lxml.html.diff.href_token-class.html#html
-lxml.html.diff.token.__repr__  lxml.html.diff.token-class.html#__repr__
-lxml.html.diff.tag_token       lxml.html.diff.tag_token-class.html
-lxml.html.diff.token.hide_when_equal   lxml.html.diff.token-class.html#hide_when_equal
-lxml.html.diff.tag_token.__new__       lxml.html.diff.tag_token-class.html#__new__
-lxml.html.diff.tag_token.html  lxml.html.diff.tag_token-class.html#html
-lxml.html.diff.tag_token.__repr__      lxml.html.diff.tag_token-class.html#__repr__
-lxml.html.diff.token   lxml.html.diff.token-class.html
-lxml.html.diff.token.hide_when_equal   lxml.html.diff.token-class.html#hide_when_equal
-lxml.html.diff.token.__new__   lxml.html.diff.token-class.html#__new__
-lxml.html.diff.token.html      lxml.html.diff.token-class.html#html
-lxml.html.diff.token.__repr__  lxml.html.diff.token-class.html#__repr__
-lxml.html.formfill.DefaultErrorCreator lxml.html.formfill.DefaultErrorCreator-class.html
-lxml.html.formfill.DefaultErrorCreator.error_container_tag     lxml.html.formfill.DefaultErrorCreator-class.html#error_container_tag
-lxml.html.formfill.DefaultErrorCreator.default_message lxml.html.formfill.DefaultErrorCreator-class.html#default_message
-lxml.html.formfill.DefaultErrorCreator.insert_before   lxml.html.formfill.DefaultErrorCreator-class.html#insert_before
-lxml.html.formfill.DefaultErrorCreator.error_message_class     lxml.html.formfill.DefaultErrorCreator-class.html#error_message_class
-lxml.html.formfill.DefaultErrorCreator.__call__        lxml.html.formfill.DefaultErrorCreator-class.html#__call__
-lxml.html.formfill.DefaultErrorCreator.block_inside    lxml.html.formfill.DefaultErrorCreator-class.html#block_inside
-lxml.html.formfill.DefaultErrorCreator.error_block_class       lxml.html.formfill.DefaultErrorCreator-class.html#error_block_class
-lxml.html.formfill.DefaultErrorCreator.__init__        lxml.html.formfill.DefaultErrorCreator-class.html#__init__
-lxml.html.formfill.FormNotFound        lxml.html.formfill.FormNotFound-class.html
-lxml.html.html5parser.HTMLParser       lxml.html.html5parser.HTMLParser-class.html
-lxml.html.html5parser.HTMLParser.__init__      lxml.html.html5parser.HTMLParser-class.html#__init__
-lxml.html.html5parser.XHTMLParser      lxml.html.html5parser.XHTMLParser-class.html
-lxml.html.html5parser.XHTMLParser.__init__     lxml.html.html5parser.XHTMLParser-class.html#__init__
-lxml.isoschematron.Schematron  lxml.isoschematron.Schematron-class.html
-lxml.isoschematron.Schematron._extract_rng     lxml.isoschematron.Schematron-class.html#_extract_rng
-lxml.etree._Validator._append_log_message      lxml.etree._Validator-class.html#_append_log_message
-lxml.isoschematron.Schematron.validation_report        lxml.isoschematron.Schematron-class.html#validation_report
-lxml.isoschematron.Schematron.validator_xslt   lxml.isoschematron.Schematron-class.html#validator_xslt
-lxml.isoschematron.Schematron._expand  lxml.isoschematron.Schematron-class.html#_expand
-lxml.etree._Validator.assert_  lxml.etree._Validator-class.html#assert_
-lxml.isoschematron.Schematron.__init__ lxml.isoschematron.Schematron-class.html#__init__
-lxml.etree._Validator.__new__  lxml.etree._Validator-class.html#__new__
-lxml.etree._Validator._clear_error_log lxml.etree._Validator-class.html#_clear_error_log
-lxml.isoschematron.Schematron._extract lxml.isoschematron.Schematron-class.html#_extract
-lxml.isoschematron.Schematron.__call__ lxml.isoschematron.Schematron-class.html#__call__
-lxml.isoschematron.Schematron._compile lxml.isoschematron.Schematron-class.html#_compile
-lxml.isoschematron.Schematron.schematron       lxml.isoschematron.Schematron-class.html#schematron
-lxml.isoschematron.Schematron._validation_errors       lxml.isoschematron.Schematron-class.html#_validation_errors
-lxml.isoschematron.Schematron._include lxml.isoschematron.Schematron-class.html#_include
-lxml.etree._Validator.validate lxml.etree._Validator-class.html#validate
-lxml.isoschematron.Schematron._level   lxml.isoschematron.Schematron-class.html#_level
-lxml.isoschematron.Schematron._domain  lxml.isoschematron.Schematron-class.html#_domain
-lxml.etree._Validator.assertValid      lxml.etree._Validator-class.html#assertValid
-lxml.isoschematron.Schematron._error_type      lxml.isoschematron.Schematron-class.html#_error_type
-lxml.etree._Validator.error_log        lxml.etree._Validator-class.html#error_log
-lxml.isoschematron.Schematron._extract_xsd     lxml.isoschematron.Schematron-class.html#_extract_xsd
-lxml.objectify.BoolElement     lxml.objectify.BoolElement-class.html
-lxml.objectify.NumberElement.__int__   lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__   lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.BoolElement.__str__     lxml.objectify.BoolElement-class.html#__str__
-lxml.objectify.BoolElement._init       lxml.objectify.BoolElement-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__  lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__  lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.BoolElement.__lt__      lxml.objectify.BoolElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__        lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__   lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.BoolElement.__gt__      lxml.objectify.BoolElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__   lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__  lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.objectify.BoolElement.__nonzero__ lxml.objectify.BoolElement-class.html#__nonzero__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__  lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__       lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__  lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__  lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.BoolElement.__le__      lxml.objectify.BoolElement-class.html#__le__
-lxml.objectify.NumberElement.__float__ lxml.objectify.NumberElement-class.html#__float__
-lxml.objectify.BoolElement.__ne__      lxml.objectify.BoolElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__   lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__   lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__   lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__       lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__  lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__   lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__complex__       lxml.objectify.NumberElement-class.html#__complex__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__   lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__        lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__        lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.BoolElement.__eq__      lxml.objectify.BoolElement-class.html#__eq__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__   lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.BoolElement.__hash__    lxml.objectify.BoolElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__   lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.BoolElement.__ge__      lxml.objectify.BoolElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__      lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__  lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__       lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.BoolElement.__new__     lxml.objectify.BoolElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser   lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__   lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__  lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.BoolElement.pyval       lxml.objectify.BoolElement-class.html#pyval
-lxml.objectify.BoolElement.__repr__    lxml.objectify.BoolElement-class.html#__repr__
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__    lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__   lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__   lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__   lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.ElementMaker    lxml.objectify.ElementMaker-class.html
-lxml.objectify.ElementMaker.__new__    lxml.objectify.ElementMaker-class.html#__new__
-lxml.objectify.ElementMaker.__getattribute__   lxml.objectify.ElementMaker-class.html#__getattribute__
-lxml.objectify.ElementMaker.__getattr__        lxml.objectify.ElementMaker-class.html#__getattr__
-lxml.objectify.ElementMaker.__init__   lxml.objectify.ElementMaker-class.html#__init__
-lxml.objectify.FloatElement    lxml.objectify.FloatElement-class.html
-lxml.objectify.NumberElement.__int__   lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__   lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__   lxml.objectify.NumberElement-class.html#__str__
-lxml.objectify.FloatElement._init      lxml.objectify.FloatElement-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__  lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__  lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__    lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__        lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__   lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__    lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__   lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__  lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__       lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__  lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__       lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__  lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__  lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__    lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__       lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__    lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__   lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__   lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__   lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__       lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__  lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__   lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__ lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__   lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__        lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__        lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__    lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__   lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__  lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__   lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__    lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__      lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__  lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__       lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.FloatElement.__new__    lxml.objectify.FloatElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser   lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__   lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__  lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.NumberElement.pyval     lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__repr__  lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__    lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__   lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__   lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__   lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.IntElement      lxml.objectify.IntElement-class.html
-lxml.objectify.NumberElement.__int__   lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__   lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__   lxml.objectify.NumberElement-class.html#__str__
-lxml.objectify.IntElement._init        lxml.objectify.IntElement-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__  lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__  lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__    lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__        lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__   lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__    lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__   lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__  lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__       lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__  lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__       lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__  lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__  lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__    lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__       lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__    lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__   lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__   lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__   lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__       lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__  lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__   lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__ lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__   lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__        lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__        lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__    lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__   lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__  lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__   lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__    lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__      lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__  lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__       lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.IntElement.__new__      lxml.objectify.IntElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser   lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__   lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__  lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.NumberElement.pyval     lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__repr__  lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__    lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__   lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__   lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__   lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.LongElement     lxml.objectify.LongElement-class.html
-lxml.objectify.NumberElement.__int__   lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__   lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__   lxml.objectify.NumberElement-class.html#__str__
-lxml.objectify.LongElement._init       lxml.objectify.LongElement-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__  lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__  lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__    lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__        lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__   lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__    lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__   lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__  lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__       lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__  lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__       lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__  lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__  lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__    lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__       lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__    lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__   lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__   lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__   lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__       lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__  lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__   lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__ lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__   lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__        lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__        lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__    lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__   lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__  lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__   lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__    lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__      lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__  lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__       lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.LongElement.__new__     lxml.objectify.LongElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser   lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__   lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__  lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.NumberElement.pyval     lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__repr__  lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__    lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__   lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__   lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__   lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.NoneElement     lxml.objectify.NoneElement-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NoneElement.__str__     lxml.objectify.NoneElement-class.html#__str__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.NoneElement.__lt__      lxml.objectify.NoneElement-class.html#__lt__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.objectify.NoneElement.__new__     lxml.objectify.NoneElement-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.NoneElement.pyval       lxml.objectify.NoneElement-class.html#pyval
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.NoneElement.__ne__      lxml.objectify.NoneElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NoneElement.__gt__      lxml.objectify.NoneElement-class.html#__gt__
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NoneElement.__eq__      lxml.objectify.NoneElement-class.html#__eq__
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NoneElement.__nonzero__ lxml.objectify.NoneElement-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NoneElement.__le__      lxml.objectify.NoneElement-class.html#__le__
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NoneElement.__repr__    lxml.objectify.NoneElement-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.objectify.NoneElement.__hash__    lxml.objectify.NoneElement-class.html#__hash__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.objectify.NoneElement.__ge__      lxml.objectify.NoneElement-class.html#__ge__
-lxml.objectify.NumberElement   lxml.objectify.NumberElement-class.html
-lxml.objectify.NumberElement.__int__   lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__   lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__   lxml.objectify.NumberElement-class.html#__str__
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__  lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__  lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__    lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__        lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__   lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__    lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__   lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__  lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__       lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__  lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__       lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__  lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__  lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__    lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__       lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__    lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__   lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__   lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__repr__  lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rpow__  lxml.objectify.NumberElement-class.html#__rpow__
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__  lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__   lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__ lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__   lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__        lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__        lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__    lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__   lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__  lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__   lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__    lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__      lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__  lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__       lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.NumberElement.__new__   lxml.objectify.NumberElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser   lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__   lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__or__    lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.pyval     lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__mul__   lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__rlshift__       lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.objectify.NumberElement.__add__   lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__   lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__   lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.ObjectPath      lxml.objectify.ObjectPath-class.html
-lxml.objectify.ObjectPath.addattr      lxml.objectify.ObjectPath-class.html#addattr
-lxml.objectify.ObjectPath.__new__      lxml.objectify.ObjectPath-class.html#__new__
-lxml.objectify.ObjectPath.setattr      lxml.objectify.ObjectPath-class.html#setattr
-lxml.objectify.ObjectPath.__str__      lxml.objectify.ObjectPath-class.html#__str__
-lxml.objectify.ObjectPath.hasattr      lxml.objectify.ObjectPath-class.html#hasattr
-lxml.objectify.ObjectPath.__call__     lxml.objectify.ObjectPath-class.html#__call__
-lxml.objectify.ObjectPath.find lxml.objectify.ObjectPath-class.html#find
-lxml.objectify.ObjectPath.__init__     lxml.objectify.ObjectPath-class.html#__init__
-lxml.objectify.ObjectifiedDataElement  lxml.objectify.ObjectifiedDataElement-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.objectify.ObjectifiedDataElement.__str__  lxml.objectify.ObjectifiedDataElement-class.html#__str__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.objectify.ObjectifiedDataElement.__new__  lxml.objectify.ObjectifiedDataElement-class.html#__new__
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.ObjectifiedDataElement.pyval    lxml.objectify.ObjectifiedDataElement-class.html#pyval
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.ObjectifiedDataElement.__repr__ lxml.objectify.ObjectifiedDataElement-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.objectify.ObjectifiedElement      lxml.objectify.ObjectifiedElement-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.ObjectifiedElement.__str__      lxml.objectify.ObjectifiedElement-class.html#__str__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.objectify.ObjectifiedElement.__new__      lxml.objectify.ObjectifiedElement-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.objectify.ObjectifyElementClassLookup     lxml.objectify.ObjectifyElementClassLookup-class.html
-lxml.objectify.ObjectifyElementClassLookup.__new__     lxml.objectify.ObjectifyElementClassLookup-class.html#__new__
-lxml.objectify.ObjectifyElementClassLookup.__init__    lxml.objectify.ObjectifyElementClassLookup-class.html#__init__
-lxml.objectify.PyType  lxml.objectify.PyType-class.html
-lxml.objectify.PyType.stringify        lxml.objectify.PyType-class.html#stringify
-lxml.objectify.PyType.__new__  lxml.objectify.PyType-class.html#__new__
-lxml.objectify.PyType.xmlSchemaTypes   lxml.objectify.PyType-class.html#xmlSchemaTypes
-lxml.objectify.PyType.unregister       lxml.objectify.PyType-class.html#unregister
-lxml.objectify.PyType.register lxml.objectify.PyType-class.html#register
-lxml.objectify.PyType.__repr__ lxml.objectify.PyType-class.html#__repr__
-lxml.objectify.PyType.type_check       lxml.objectify.PyType-class.html#type_check
-lxml.objectify.PyType.__init__ lxml.objectify.PyType-class.html#__init__
-lxml.objectify.PyType.name     lxml.objectify.PyType-class.html#name
-lxml.objectify.StringElement   lxml.objectify.StringElement-class.html
-lxml.objectify.StringElement.__int__   lxml.objectify.StringElement-class.html#__int__
-lxml.objectify.ObjectifiedElement.addattr      lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.ObjectifiedDataElement.__str__  lxml.objectify.ObjectifiedDataElement-class.html#__str__
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.objectify.StringElement.__rmul__  lxml.objectify.StringElement-class.html#__rmul__
-lxml.objectify.StringElement.__lt__    lxml.objectify.StringElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.findall      lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__  lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.StringElement.__gt__    lxml.objectify.StringElement-class.html#__gt__
-lxml.objectify.ObjectifiedElement.__delitem__  lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.objectify.StringElement.__nonzero__       lxml.objectify.StringElement-class.html#__nonzero__
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.objectify.ObjectifiedElement.descendantpaths      lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.StringElement.__long__  lxml.objectify.StringElement-class.html#__long__
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.objectify.StringElement.__rmod__  lxml.objectify.StringElement-class.html#__rmod__
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__  lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__  lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.ObjectifiedElement.getchildren  lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.StringElement.__float__ lxml.objectify.StringElement-class.html#__float__
-lxml.objectify.StringElement.__ne__    lxml.objectify.StringElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext     lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__  lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.objectify.ObjectifiedElement.__delattr__  lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.StringElement.__mul__   lxml.objectify.StringElement-class.html#__mul__
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.objectify.StringElement.__complex__       lxml.objectify.StringElement-class.html#__complex__
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.objectify.ObjectifiedElement.__len__      lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.objectify.ObjectifiedElement.__reduce__   lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__     lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren        lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.objectify.StringElement.__eq__    lxml.objectify.StringElement-class.html#__eq__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.objectify.StringElement.__mod__   lxml.objectify.StringElement-class.html#__mod__
-lxml.objectify.StringElement.__le__    lxml.objectify.StringElement-class.html#__le__
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.objectify.StringElement.__hash__  lxml.objectify.StringElement-class.html#__hash__
-lxml.objectify.StringElement.__ge__    lxml.objectify.StringElement-class.html#__ge__
-lxml.objectify.ObjectifiedElement.iterfind     lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__     lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.StringElement.__radd__  lxml.objectify.StringElement-class.html#__radd__
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.objectify.StringElement.strlen    lxml.objectify.StringElement-class.html#strlen
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.StringElement.__new__   lxml.objectify.StringElement-class.html#__new__
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.StringElement.pyval     lxml.objectify.StringElement-class.html#pyval
-lxml.objectify.StringElement.__repr__  lxml.objectify.StringElement-class.html#__repr__
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.objectify.StringElement.__add__   lxml.objectify.StringElement-class.html#__add__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.objectify._ObjectifyElementMakerCaller    lxml.objectify._ObjectifyElementMakerCaller-class.html
-lxml.objectify._ObjectifyElementMakerCaller.__new__    lxml.objectify._ObjectifyElementMakerCaller-class.html#__new__
-lxml.objectify._ObjectifyElementMakerCaller.__call__   lxml.objectify._ObjectifyElementMakerCaller-class.html#__call__
-lxml.sax.ElementTreeContentHandler     lxml.sax.ElementTreeContentHandler-class.html
-lxml.sax.ElementTreeContentHandler.startPrefixMapping  lxml.sax.ElementTreeContentHandler-class.html#startPrefixMapping
-lxml.sax.ElementTreeContentHandler.endPrefixMapping    lxml.sax.ElementTreeContentHandler-class.html#endPrefixMapping
-lxml.sax.ElementTreeContentHandler.etree       lxml.sax.ElementTreeContentHandler-class.html#etree
-lxml.sax.ElementTreeContentHandler.processingInstruction       lxml.sax.ElementTreeContentHandler-class.html#processingInstruction
-lxml.sax.ElementTreeContentHandler.endElement  lxml.sax.ElementTreeContentHandler-class.html#endElement
-lxml.sax.ElementTreeContentHandler._get_etree  lxml.sax.ElementTreeContentHandler-class.html#_get_etree
-lxml.sax.ElementTreeContentHandler.startElement        lxml.sax.ElementTreeContentHandler-class.html#startElement
-lxml.sax.ElementTreeContentHandler.setDocumentLocator  lxml.sax.ElementTreeContentHandler-class.html#setDocumentLocator
-lxml.sax.ElementTreeContentHandler.startDocument       lxml.sax.ElementTreeContentHandler-class.html#startDocument
-lxml.sax.ElementTreeContentHandler.startElementNS      lxml.sax.ElementTreeContentHandler-class.html#startElementNS
-lxml.sax.ElementTreeContentHandler.characters  lxml.sax.ElementTreeContentHandler-class.html#characters
-lxml.sax.ElementTreeContentHandler.endDocument lxml.sax.ElementTreeContentHandler-class.html#endDocument
-lxml.sax.ElementTreeContentHandler.ignorableWhitespace lxml.sax.ElementTreeContentHandler-class.html#ignorableWhitespace
-lxml.sax.ElementTreeContentHandler.__init__    lxml.sax.ElementTreeContentHandler-class.html#__init__
-lxml.sax.ElementTreeContentHandler.endElementNS        lxml.sax.ElementTreeContentHandler-class.html#endElementNS
-lxml.sax.ElementTreeProducer   lxml.sax.ElementTreeProducer-class.html
-lxml.sax.ElementTreeProducer._build_qname      lxml.sax.ElementTreeProducer-class.html#_build_qname
-lxml.sax.ElementTreeProducer.saxify    lxml.sax.ElementTreeProducer-class.html#saxify
-lxml.sax.ElementTreeProducer.__init__  lxml.sax.ElementTreeProducer-class.html#__init__
-lxml.sax.ElementTreeProducer._recursive_saxify lxml.sax.ElementTreeProducer-class.html#_recursive_saxify
-lxml.sax.SaxError      lxml.sax.SaxError-class.html
-lxml.etree.LxmlError.__init__  lxml.etree.LxmlError-class.html#__init__
-lxml.tests.common_imports.HelperTestCase       lxml.tests.common_imports.HelperTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.common_imports.LargeFileLike        lxml.tests.common_imports.LargeFileLike-class.html
-lxml.tests.common_imports.LargeFileLike.read   lxml.tests.common_imports.LargeFileLike-class.html#read
-lxml.tests.common_imports.LargeFileLike.iterelements   lxml.tests.common_imports.LargeFileLike-class.html#iterelements
-lxml.tests.common_imports.LargeFileLike.__init__       lxml.tests.common_imports.LargeFileLike-class.html#__init__
-lxml.tests.common_imports.LargeFileLikeUnicode lxml.tests.common_imports.LargeFileLikeUnicode-class.html
-lxml.tests.common_imports.LargeFileLike.read   lxml.tests.common_imports.LargeFileLike-class.html#read
-lxml.tests.common_imports.LargeFileLikeUnicode.iterelements    lxml.tests.common_imports.LargeFileLikeUnicode-class.html#iterelements
-lxml.tests.common_imports.LargeFileLikeUnicode.__init__        lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__
-lxml.tests.common_imports.SillyFileLike        lxml.tests.common_imports.SillyFileLike-class.html
-lxml.tests.common_imports.SillyFileLike.read   lxml.tests.common_imports.SillyFileLike-class.html#read
-lxml.tests.common_imports.SillyFileLike.__init__       lxml.tests.common_imports.SillyFileLike-class.html#__init__
-lxml.tests.test_classlookup.ClassLookupTestCase        lxml.tests.test_classlookup.ClassLookupTestCase-class.html
-lxml.tests.test_classlookup.ClassLookupTestCase.tearDown       lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_classlookup.ClassLookupTestCase.test_attribute_based_lookup    lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.test_default_class_lookup      lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_classlookup.ClassLookupTestCase.test_class_lookup_reentry      lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry
-lxml.tests.test_classlookup.ClassLookupTestCase.test_namespace_lookup  lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.test_parser_based_lookup       lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.test_lookup_without_fallback   lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback
-lxml.tests.test_classlookup.ClassLookupTestCase.test_custom_lookup     lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.etree  lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_classlookup.ClassLookupTestCase.test_custom_lookup_ns_fallback lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_css.CSSTestCase        lxml.tests.test_css.CSSTestCase-class.html
-lxml.tests.test_css.CSSTestCase.all    lxml.tests.test_css.CSSTestCase-class.html#all
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_css.CSSTestCase.shortDescription       lxml.tests.test_css.CSSTestCase-class.html#shortDescription
-lxml.tests.test_css.CSSTestCase.__init__       lxml.tests.test_css.CSSTestCase-class.html#__init__
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_css.CSSTestCase.selectors      lxml.tests.test_css.CSSTestCase-class.html#selectors
-lxml.tests.test_css.CSSTestCase.runTest        lxml.tests.test_css.CSSTestCase-class.html#runTest
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_dtd.ETreeDtdTestCase   lxml.tests.test_dtd.ETreeDtdTestCase-class.html
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_valid      lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_broken   lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken
-lxml.tests.test_dtd.ETreeDtdTestCase.test_parse_file_dtd       lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_parse_file_dtd
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_stringio lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_invalid    lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_internal_invalid lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_assertValid      lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_file_not_found     lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_valid_relative     lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_file     lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_internal lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal
-lxml.tests.test_dtd.ETreeDtdTestCase.test_iterparse_file_dtd   lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_invalid  lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd  lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd
-lxml.tests.test_elementtree.CElementTreeTestCase       lxml.tests.test_elementtree.CElementTreeTestCase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity_unknown        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_broken    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext_child      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_property      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_explicit        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_override        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_single       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_whitespace  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_extend      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_register_namespace  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.CElementTreeTestCase.etree lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_from_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_incomplete  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_html   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_position  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_html        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_characters   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_elementtree.ETreeTestCase      lxml.tests.test_elementtree.ETreeTestCase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity_unknown        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_broken    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext_child      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_property      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_explicit        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_override        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_single       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_whitespace  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_extend      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_register_namespace  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.ETreeTestCase.etree        lxml.etree-module.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_from_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_incomplete  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_html   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_position  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_html        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_characters   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity_unknown        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext_child      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_broken    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_whitespace  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_override        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_explicit        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_single       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_extend      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_register_namespace  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_position  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.etree    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#etree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_from_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_incomplete  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_html   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_html        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_property      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_characters   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_elementtree.ElementTreeTestCase        lxml.tests.test_elementtree.ElementTreeTestCase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parser_target_entity_unknown      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ElementTreeTestCase.test_fromstringlist_characters lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_close_empty     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ElementTreeTestCase.test_fromstringlist    lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ElementTreeTestCase.test_comment_whitespace        lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ElementTreeTestCase.test_write_method_text lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_broken  lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_error_from_file     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ElementTreeTestCase.test_itertext_child    lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_encoding_8bit_override      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ElementTreeTestCase.test_itertext  lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_encoding_8bit_explicit      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parser_target_property    lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ElementTreeTestCase.test_fromstringlist_single     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ElementTreeTestCase.test_extend    lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_error       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ElementTreeTestCase.test_register_namespace        lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ElementTreeTestCase.test_tostring_method_text      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ElementTreeTestCase.test_write_method_html lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.ElementTreeTestCase.etree  xml.etree.ElementTree-module.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_close_incomplete        lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ElementTreeTestCase.test_iter      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_position        lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.test_elementtree.ElementTreeTestCase.test_tostring_method_html      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ElementTreeTestCase.test_comment_text      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_errors.ErrorTestCase   lxml.tests.test_errors.ErrorTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_errors.ErrorTestCase.test_bad_element  lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element
-lxml.tests.test_errors.ErrorTestCase.etree     lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_errors.ErrorTestCase.test_element_cyclic_gc_none       lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none
-lxml.tests.test_errors.ErrorTestCase.test_empty_parse  lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeC14NTestCase        lxml.tests.test_etree.ETreeC14NTestCase-class.html
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_exclusive    lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_tostring_exclusive   lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_gzip lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_element_tostring_with_comments       lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_file lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_tostring_with_comments       lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n      lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_with_comments        lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_element_tostring_exclusive   lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_file_gzip    lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeErrorLogTest        lxml.tests.test_etree.ETreeErrorLogTest-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeErrorLogTest._test_python_error_logging     lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging
-lxml.tests.test_etree.ETreeErrorLogTest.etree  lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeErrorLogTest.test_parse_error_logging       lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeOnlyTestCase        lxml.tests.test_etree.ETreeOnlyTestCase-class.html
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root
-lxml.tests.test_etree.ETreeOnlyTestCase.test_dump_none lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_invalid_sequence     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence
-lxml.tests.test_etree.ETreeOnlyTestCase.test_nsmap_prefix_invalid      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase.test_xml_base  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_tag  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_elementtree    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_start    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root_pi   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_pi  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_space       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_deepcopy_elementtree_pi   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_quote     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_start_end        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parseid   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_fileobject_unicode  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_strip   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip
-lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base_tag     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_xml_base_attribute        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root_comment      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_remove_comments lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_element_tail     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.etree  lxml.etree-module.html
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_space        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns_all      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_empty       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_replace   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_element        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_elements_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_append_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_iterparse_start        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_getiterator      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_pretty   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_c_api     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api
-lxml.tests.test_etree.ETreeOnlyTestCase.test_standalone        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_8bit_override  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_reuse_after_move       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_text_resolve        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_broken  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_parser_target_type_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_elements    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_namespace_localname lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_findall_ns        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_immutable lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_set_invalid     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_nsmap  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_pi_parse  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_set_base_url_docinfo  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setitem_assert    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_overrun     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun
-lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_base_url_docinfo    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo
-lxml.tests.test_etree.ETreeOnlyTestCase.test_replace_new       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_error     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_feed_exception      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_attrib_ns        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_parse  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_pis     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getparent lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_element lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_doctype_name_only_roundtrip       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip
-lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_zero lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_tag      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespace_cleanup lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_quote        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_no_proxy_yet      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_element     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_pretty   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filename_dtd_relative     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_string_dtd        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_root_comment  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_pi_comment     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filelike_dtd      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_keep_cdata      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_names     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_nsmap     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filename_dtd      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_element  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_invalid      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors_tag lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_none     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_version   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_comment   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_negative2   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_clear    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_values     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_iterparse_end  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_tag_reversed lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_attribute_invalid      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default_and_attr       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_colon        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_copy_element   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_encoding_unknown   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default_copy_element   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_ns     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_empty        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_set     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getroottree       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_values  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_root_pi       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_method_text_unicode      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_recover     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_errors      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors
-lxml.tests.test_etree.ETreeOnlyTestCase.test_deepcopy_elementtree_dtd  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_pi_comment_all lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_none     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_element        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tree_comments   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_zero lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_stringio_base_url   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_xpath       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_pi    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_findall_qname lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XMLDTDID  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_method_text_encoding     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_parser_type_error   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_find_qname    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_encoding_tostring_utf16   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_pretty  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_fromstring_exception        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_system    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes_ns       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_pis  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_error  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_public    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_colon       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_cdata       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getnext   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_encoding   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default
-lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings_tag  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_type        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_colon     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_all_empty_reversed       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed
-lxml.tests.test_etree.ETreeOnlyTestCase.test_doctype_output_override   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getprevious       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_XML    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML
-lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_invalid      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterdescendants_tag       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_parse_empty       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_name_only lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_base_url_docinfo      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_comments        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_with_tail        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix_default_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_namespace      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_comments     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_append     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_space     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space
-lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix
-lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_has_key lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_comment       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_index     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index
-lxml.tests.test_etree.ETreeOnlyTestCase.test_HTML_base_url_docinfo     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo
-lxml.tests.test_etree.ETreeOnlyTestCase.test_feed_parser_recover       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_reversed     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_bytes_dtd lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_file_dtd  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_parse      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_negative    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative
-lxml.tests.test_etree.ETreeOnlyTestCase.test_deepcopy_pi       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_doc_style      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode
-lxml.tests.test_etree.ETreeOnlyTestCase.test_dtd_io    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XMLDTDID_empty    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_entities       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterdescendants   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_all lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_none    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_parser      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_tag_all  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone_in_out        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_element_tail    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_restructure        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_findall_ns_qname      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_comment     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi
-lxml.tests.test_etree.ETreeWriteTestCase       lxml.tests.test_etree.ETreeWriteTestCase-class.html
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzip  lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_etree.ETreeWriteTestCase.test_write    lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file       lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_gzip_level lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzipfile_parse        lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_gzip       lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzip_parse    lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeXIncludeTestCase    lxml.tests.test_etree.ETreeXIncludeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude   lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeXIncludeTestCase.include    lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_resolver  lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_resolver
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_text      lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_text
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ElementIncludeTestCase   lxml.tests.test_etree.ElementIncludeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.ElementIncludeTestCase.ElementInclude    lxml.ElementInclude-module.html
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude   lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.ElementIncludeTestCase.include   lxml.tests.test_etree.ElementIncludeTestCase-class.html#include
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_resolver  lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_resolver
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_text      lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_text
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.XIncludeTestCase lxml.tests.test_etree.XIncludeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude   lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_resolver  lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_resolver
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_text      lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_text
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_htmlparser.HtmlParserTestCase  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_broken  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_cdata   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata
-lxml.tests.test_htmlparser.HtmlParserTestCase.tearDown lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_colon  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_quote     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote
-lxml.tests.test_htmlparser.HtmlParserTestCase.uhtml_str        lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#uhtml_str
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html_filelike  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_pretty_print    lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_empty  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html_norecover lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_norecover
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_default_parser_HTML_broken  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_space  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_space
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_htmlparser.HtmlParserTestCase.etree    lxml.etree-module.html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_iterparse      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_unicode lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_colon     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_file_error     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_quote  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_parse_encoding_8bit_override        lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_htmlparser.HtmlParserTestCase.broken_html_str  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#broken_html_str
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html_error     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_iterparse_file lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_access  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_parse_encoding_8bit_explicit        lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_empty     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty
-lxml.tests.test_htmlparser.HtmlParserTestCase.html_str lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#html_str
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_space     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space
-lxml.tests.test_htmlparser.HtmlParserTestCase.html_str_pretty  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#html_str_pretty
-lxml.tests.test_io.ETreeIOTestCase     lxml.tests.test_io.ETreeIOTestCase-class.html
-lxml.tests.test_io.IOTestCaseBase.buildNodes   lxml.tests.test_io.IOTestCaseBase-class.html#buildNodes
-lxml.tests.test_io.IOTestCaseBase.tearDown     lxml.tests.test_io.IOTestCaseBase-class.html#tearDown
-lxml.tests.test_io.IOTestCaseBase.test_write_filename  lxml.tests.test_io.IOTestCaseBase-class.html#test_write_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_fileobject  lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_fileobject
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_gzipobject lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_gzipobject
-lxml.tests.test_io.IOTestCaseBase.getTestFilePath      lxml.tests.test_io.IOTestCaseBase-class.html#getTestFilePath
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_error   lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_error
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_large_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_large_fileobject
-lxml.tests.test_io.ETreeIOTestCase.etree       lxml.etree-module.html
-lxml.tests.test_io.IOTestCaseBase.test_tree_io_latin1  lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io_latin1
-lxml.tests.test_io.IOTestCaseBase.setUp        lxml.tests.test_io.IOTestCaseBase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename_remove_previous    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename_remove_previous
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_io.IOTestCaseBase.test_tree_io lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_late_error      lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_late_error
-lxml.tests.test_io.IOTestCaseBase.test_write_invalid_filename  lxml.tests.test_io.IOTestCaseBase-class.html#test_write_invalid_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_unamed_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_type_error      lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_type_error
-lxml.tests.test_io.ElementTreeIOTestCase       lxml.tests.test_io.ElementTreeIOTestCase-class.html
-lxml.tests.test_io.IOTestCaseBase.buildNodes   lxml.tests.test_io.IOTestCaseBase-class.html#buildNodes
-lxml.tests.test_io.IOTestCaseBase.tearDown     lxml.tests.test_io.IOTestCaseBase-class.html#tearDown
-lxml.tests.test_io.IOTestCaseBase.test_write_filename  lxml.tests.test_io.IOTestCaseBase-class.html#test_write_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_fileobject  lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_fileobject
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_gzipobject lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_gzipobject
-lxml.tests.test_io.IOTestCaseBase.getTestFilePath      lxml.tests.test_io.IOTestCaseBase-class.html#getTestFilePath
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_error   lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_error
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_large_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_large_fileobject
-lxml.tests.test_io.ElementTreeIOTestCase.etree xml.etree.ElementTree-module.html
-lxml.tests.test_io.IOTestCaseBase.test_tree_io_latin1  lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io_latin1
-lxml.tests.test_io.IOTestCaseBase.setUp        lxml.tests.test_io.IOTestCaseBase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename_remove_previous    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename_remove_previous
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_io.IOTestCaseBase.test_tree_io lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_late_error      lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_late_error
-lxml.tests.test_io.IOTestCaseBase.test_write_invalid_filename  lxml.tests.test_io.IOTestCaseBase-class.html#test_write_invalid_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_unamed_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_type_error      lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_type_error
-lxml.tests.test_io.IOTestCaseBase      lxml.tests.test_io.IOTestCaseBase-class.html
-lxml.tests.test_io.IOTestCaseBase.buildNodes   lxml.tests.test_io.IOTestCaseBase-class.html#buildNodes
-lxml.tests.test_io.IOTestCaseBase.tearDown     lxml.tests.test_io.IOTestCaseBase-class.html#tearDown
-lxml.tests.test_io.IOTestCaseBase.test_write_filename  lxml.tests.test_io.IOTestCaseBase-class.html#test_write_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_fileobject  lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_fileobject
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_gzipobject lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_gzipobject
-lxml.tests.test_io.IOTestCaseBase.getTestFilePath      lxml.tests.test_io.IOTestCaseBase-class.html#getTestFilePath
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_error   lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_error
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_large_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_large_fileobject
-lxml.tests.test_io.IOTestCaseBase.etree        lxml.tests.test_io.IOTestCaseBase-class.html#etree
-lxml.tests.test_io.IOTestCaseBase.test_tree_io_latin1  lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io_latin1
-lxml.tests.test_io.IOTestCaseBase.setUp        lxml.tests.test_io.IOTestCaseBase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename_remove_previous    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename_remove_previous
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_io.IOTestCaseBase.test_tree_io lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_late_error      lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_late_error
-lxml.tests.test_io.IOTestCaseBase.test_write_invalid_filename  lxml.tests.test_io.IOTestCaseBase-class.html#test_write_invalid_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_unamed_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_type_error      lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_type_error
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_store_xslt    lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_call  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_validate      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_from_element  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_invalid_schema_namespace      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_from_file     lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_assertValid   lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_customization lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_phases_kwarg  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_error_log     lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_invalid_schema_empty  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_result_report lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_empty_pattern lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_store_schematron      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_invalid_args  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_elementtree_error     lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_relaxng_embedded      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_abstract      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_phases        lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_xmlschema_embedded    lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_from_tree     lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase        lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_ns_classes        lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.tearDown       lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_create_element_default    lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element_default
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class  lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_default_tagname   lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class     lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.setUp  lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_create_element    lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_element_creation  lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class    lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_registry  lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class    lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class.bluff      lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html#bluff
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class  lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class     lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
-lxml.etree._Element.getprevious        lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set        lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent  lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text       lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind   lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init      lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap      lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace    lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix     lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag        lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter       lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext    lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious        lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find       lxml.etree._Element-class.html#find
-lxml.etree._Element.append     lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext    lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index      lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__ lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__       lxml.etree._Element-class.html#__contains__
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class.maeh        lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html#maeh
-lxml.etree._Element.findtext   lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail       lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree        lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants    lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren        lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__        lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__    lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath      lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__        lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get        lxml.etree._Element-class.html#get
-lxml.etree._Element.keys       lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__       lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement        lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__   lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base       lxml.etree._Element-class.html#base
-lxml.etree._Element.insert     lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren       lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors      lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend     lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__        lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__       lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings       lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__        lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items      lxml.etree._Element-class.html#items
-lxml.etree._Element.clear      lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext   lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall    lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__        lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove     lxml.etree._Element-class.html#remove
-lxml.etree._Element.values     lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__   lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator        lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib     lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__   lxml.etree._Element-class.html#__copy__
-lxml.tests.test_objectify.ObjectifyTestCase    lxml.tests.test_objectify.ObjectifyTestCase-class.html
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_nested       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_allneg       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_bool_cmp lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_floattelement  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_unregistered     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered
-lxml.tests.test_objectify.ObjectifyTestCase.test_xml_base      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_annotation_use_old     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_registered_types      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_custom lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_default     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_nonexistant     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_list      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsiannotate_ignore_old        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_schema_types  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_attrib_attributes_precedence     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot
-lxml.tests.test_objectify.ObjectifyTestCase.test_pyannotate_use_old    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_build_tree    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_empty   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_root_list     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_float_hash       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash
-lxml.tests.test_objectify.ObjectifyTestCase.test_setitem_string        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_hash lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_list  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytypes  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes
-lxml.tests.test_objectify.ObjectifyTestCase.test_xml_base_attribute    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_create_element    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_invalid_pytype  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype
-lxml.tests.test_objectify.ObjectifyTestCase.etree      lxml.etree-module.html
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_custom_prefixes    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsitype_deannotate    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_custom     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_complex   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail_parse_empty  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_addattr_element       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_pyannotate_ignore_old lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_ns        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns
-lxml.tests.test_objectify.ObjectifyTestCase.test_pyannotate_empty      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_attrib       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib
-lxml.tests.test_objectify.ObjectifyTestCase.test_class_lookup  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup
-lxml.tests.test_objectify.ObjectifyTestCase.test_change_pytype_attribute       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index_fail_lookup lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path
-lxml.tests.test_objectify.ObjectifyTestCase.test_addattr_list  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_wrong_length lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_default_absolute  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index_fail_parse  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse
-lxml.tests.test_objectify.ObjectifyTestCase.test_findall_ns    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_ns_list   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_descendant_paths_prefix       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix
-lxml.tests.test_objectify.ObjectifyTestCase.tearDown   lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_xsitype_annotation     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_elementtree    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_int_hash lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash
-lxml.tests.test_objectify.ObjectifyTestCase.test_parse_stringio_base_url       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url
-lxml.tests.test_objectify.ObjectifyTestCase.test_setitem_string_special        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_intliteral  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create_list   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_root  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_empty        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_int       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr_floatliteral        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_bool lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_intelement     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_xsitypes lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle
-lxml.tests.test_objectify.ObjectifyTestCase._test_pickle       lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_custom      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsinil_deannotate     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_float    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi_prefix_error  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error
-lxml.tests.test_objectify.ObjectifyTestCase.setUp      lxml.tests.test_objectify.ObjectifyTestCase-class.html#setUp
-lxml.tests.test_objectify.ObjectifyTestCase.test_setattr       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_cmp  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype_none     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_custom_prefixes     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index_list        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_element   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_default    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default
-lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi_nsmap lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_subtype      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype_xsitype  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_elements     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_index   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_empty  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_partial      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_str      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_xsitype lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_sequence     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_create    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_element       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_str_intliteral   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_str  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_none lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none
-lxml.tests.test_objectify.ObjectifyTestCase.test_str   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_syntax    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_bool     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_NoneType lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_NoneType lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_getattr_empty_ns        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_float        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_default lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_annotation_empty       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_addattr lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_complete     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_xsitypes_prefixed        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_create_list       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list
-lxml.tests.test_objectify.ObjectifyTestCase.XML        lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_custom_prefixes        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_invalid_xsi      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_boolelement    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi
-lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_partial_neg  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_element_arg      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_none_cmp lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_len     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytype_none      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_insert       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_empty      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_schema_types_prefixed lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_floatliteral        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_noneelement    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_addattr       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_XML_set_base_url_docinfo      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_int      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_registered_type_stringify     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify
-lxml.tests.test_objectify.ObjectifyTestCase.test_dir   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir
-lxml.tests.test_objectify.ObjectifyTestCase.test_findall       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_add lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_root  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_hasattr   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_XML_base_url_docinfo  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_default_relative  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsiannotate_use_old   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytype_none_compat       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_int      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_unregistered     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_str_floatliteral lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mul  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr_intliteral  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create_element        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_add  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_float    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_mul lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_invalid_xsi     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_getattr lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_default        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_objectify.ObjectifyTestCase.test_descendant_paths_child        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail_parse_empty_list     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_annotation     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_int_cmp  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_strelement     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_set_ro  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_intliteral   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_custom_prefixes lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg
-lxml.tests.test_objectify.ObjectifyTestCase.test_vars  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_vars
-lxml.tests.test_objectify.ObjectifyTestCase.test_child lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_floatliteral lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_parse_base_url_docinfo        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_custom  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_bool     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_insert_neg   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_value_concatenation  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_deannotate     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_neg  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_int  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod_data_elements    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_invalid_pytype   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype
-lxml.tests.test_objectify.ObjectifyTestCase.test_setattr_nonunicode    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_empty       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_descendant_paths      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_float     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_deannotate    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_complete     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_unicode      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode
-lxml.tests.test_objectify.ObjectifyTestCase.test_set_string    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_index_neg       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_objectify.ObjectifyTestCase.test_standard_lookup       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_iter    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter
-lxml.tests.test_objectify.ObjectifyTestCase.test_countchildren lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_countchildren
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_get_default    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_attrib lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.tearDown   lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getitem_neg    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase._setClassLookup    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_setClassLookup
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getparent      lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_iterchildren   lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_len    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getnext        lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_iterchildren_tag       lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_prefix lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getprevious    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_text   lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase._buildElementClass lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_buildElementClass
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_bool   lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_tag    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML        lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.etree      lxml.etree-module.html
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup        lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getitem        lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_keep_ref_assertion     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getchildren    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_tail   lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_get    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getslice       lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_sourceline     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_iter_children  lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase   lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_multiple_elementrees lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_multiple_elementrees
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_stringio     lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema       lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_shortcut     lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema4      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema4
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema2      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema3      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema3
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_include      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_elementtree_error    lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_error        lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_sax.ETreeSaxTestCase   lxml.tests.test_sax.ETreeSaxTestCase-class.html
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_comment    lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment
-lxml.tests.test_sax.ETreeSaxTestCase.test_element_sax_ns       lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_sax.ETreeSaxTestCase._saxify_unsaxify  lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_unsaxify
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_comment_root       lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_error      lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_error2     lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_pi_root    lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root
-lxml.tests.test_sax.ETreeSaxTestCase.test_element_sax  lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_redefine_ns        lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns
-lxml.tests.test_sax.ETreeSaxTestCase._saxify_serialize lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_serialize
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_pi lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_simple     lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_double     lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_ns1        lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_attributes lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_ns2        lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2
-lxml.tests.test_sax.ETreeSaxTestCase.test_sax_to_pulldom       lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_handler_default_ns lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_no_ns      lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_schematron.ETreeSchematronTestCase     lxml.tests.test_schematron.ETreeSchematronTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron     lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_invalid_schema_empty        lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_invalid_schema      lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_elementtree_error   lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_invalid_schema_namespace    lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_threading.ThreadPipelineTestCase       lxml.tests.test_threading.ThreadPipelineTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.xml   lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml
-lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker  lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.item_count    lxml.tests.test_threading.ThreadPipelineTestCase-class.html#item_count
-lxml.tests.test_threading.ThreadPipelineTestCase._build_pipeline       lxml.tests.test_threading.ThreadPipelineTestCase-class.html#_build_pipeline
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker   lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker  lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker       lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.test_thread_pipeline_global_parse     lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse
-lxml.tests.test_threading.ThreadPipelineTestCase.etree lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_threading.ThreadPipelineTestCase.test_thread_pipeline_thread_parse     lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker  lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__       lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.XML      lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#XML
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run    lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle   lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker   lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__       lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.XML       lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#XML
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run    lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle    lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__       lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run    lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle  lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker  lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__       lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run    lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle   lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker       lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__       lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run    lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle        lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__       lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run    lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadingTestCase    lxml.tests.test_threading.ThreadingTestCase-class.html
-lxml.tests.test_threading.ThreadingTestCase.test_concurrent_class_lookup       lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_class_lookup
-lxml.tests.test_threading.ThreadingTestCase.test_thread_mix    lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix
-lxml.tests.test_threading.ThreadingTestCase.test_subtree_copy_thread   lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_threading.ThreadingTestCase.test_main_xslt_in_thread   lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread
-lxml.tests.test_threading.ThreadingTestCase._run_thread        lxml.tests.test_threading.ThreadingTestCase-class.html#_run_thread
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_threading.ThreadingTestCase.test_concurrent_proxies    lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_proxies
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_threading.ThreadingTestCase.test_thread_create_xslt    lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt
-lxml.tests.test_threading.ThreadingTestCase.etree      lxml.etree-module.html
-lxml.tests.test_threading.ThreadingTestCase.test_thread_xslt_attr_replace      lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace
-lxml.tests.test_threading.ThreadingTestCase.test_thread_xslt   lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_threading.ThreadingTestCase.test_thread_error_log      lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log
-lxml.tests.test_unicode.UnicodeTestCase        lxml.tests.test_unicode.UnicodeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_qname     lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_xml_broken        lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_nstag     lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_ns_invalid        lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_qname_invalid     lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_attr      lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_comment   lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_tag       lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_nstag_invalid     lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_parse_stringio    lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_tag_invalid       lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_xml       lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.resolver_schema_int2 lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_int2
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_resolvers_noroot      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_resolvers     lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_resolvers_root        lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_nested_resolvers      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.resolver_schema_ext  lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_ext
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.resolver_schema_int  lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_int
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.resolve      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#resolve
-lxml.etree.Resolver.resolve_filename   lxml.etree.Resolver-class.html#resolve_filename
-lxml.etree.Resolver.__new__    lxml.etree.Resolver-class.html#__new__
-lxml.etree.Resolver.resolve_string     lxml.etree.Resolver-class.html#resolve_string
-lxml.etree.Resolver.resolve_file       lxml.etree.Resolver-class.html#resolve_file
-lxml.etree.Resolver.resolve_empty      lxml.etree.Resolver-class.html#resolve_empty
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__     lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase       lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_stringio       lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_import_file    lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_invalid_schema2        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_invalid_schema1        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse  lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_shortcut       lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_iterparse_fail lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_elementtree_error      lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_default_attributes     lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_file   lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse_default_attributes_schema_config lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse_fixed_attributes lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_iterparse      lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse_default_attributes       lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes
-lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase       lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase.test_xpath_compile_ns lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase._test_xpath_compile_unicode   lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_vars lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_elementtree_error    lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_doc  lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_error        lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_element      lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase.test_xpath_exslt_functions_date lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase.NSMAP   lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#NSMAP
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase.test_xpath_exslt_functions_strings      lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_comment      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_boolean   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_prefix_error      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_elementtree_getpath_partial     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator_element lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_attribute_parent     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_elementtree_getpath     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_text_parent  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_error     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_variables lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_eval_context_propagation  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_elements     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_namespace lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator_tree    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_unicode_text_parent  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_mix    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_attribute    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_namespace_empty   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_eval_context_clear        lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_nothing      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_class_error       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_nodes  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_variables_nodeset lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_nodes_append2  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_string    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions        lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_ns_none   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_text lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_attribute_parent_no_smart_strings    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_document_root     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_wrong_args     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_text_from_other_document  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_number    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_ns_empty  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_rel_xpath_list_elements lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_nodes_append   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_text_parent_no_smart_strings lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_rel_xpath_boolean       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator_tree_absolute   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_class_prefix_error        lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_context_node      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_error  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_ns        lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase       lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_content        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node    lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase._test_extension_element_attribute_context     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children       lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise    lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_doc_context    lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_raise  lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase  lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_extensions2 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_extensions1 lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment       lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xslt.ETreeXSLTTestCase lxml.tests.test_xslt.ETreeXSLTTestCase-class.html
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_xpath       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_default_parameters    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_repeat_transform      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_set_replace        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_all    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_html_output   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_invalid     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_shortcut      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_allow  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match1        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match1
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_message       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match2        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match2
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_str  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_str
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_unicode       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_message_terminate     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_resolver_url_building lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building
-lxml.tests.test_xslt.ETreeXSLTTestCase._test_exslt_regexp_match4       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#_test_exslt_regexp_match4
-lxml.tests.test_xslt.ETreeXSLTTestCase._test_exslt_regexp_match3       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#_test_exslt_regexp_match3
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_replace       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_replace
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_broken        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_copy  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input_none    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_xpath_object        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_unknown        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_multiple_transforms   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_test  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_test
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_error        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_empty lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_missing     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_math lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_math
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_invalid_stylesheet    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_encoding_override     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_include_from_filelike lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_elementtree_error     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_multiple_elementrees       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input_partial_doc     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_include       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_str_attribute_replace        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_str_attribute_replace
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_embedded_id        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match_groups  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match_groups
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_deny   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_XML_resolver lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_move_result   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_string_parameters     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_deny_all       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_elementtree  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_multiple_parameters   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameters    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_XML  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_set_new    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_utf8  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_encoding      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_all_reversed   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed
-lxml.tests.test_xslt.Py3XSLTTestCase   lxml.tests.test_xslt.Py3XSLTTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException     exceptions.AssertionError-class.html
-lxml.tests.test_xslt.Py3XSLTTestCase.test_xslt_result_bytearray        lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray
-lxml.tests.test_xslt.Py3XSLTTestCase.test_xslt_result_memoryview       lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview
-lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.Py3XSLTTestCase.test_xslt_result_bytes    lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes
-lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-xml.etree.ElementTree.ElementTree      xml.etree.ElementTree.ElementTree-class.html
-xml.etree.ElementTree.ElementTree.parse        xml.etree.ElementTree.ElementTree-class.html#parse
-xml.etree.ElementTree.ElementTree.getroot      xml.etree.ElementTree.ElementTree-class.html#getroot
-xml.etree.ElementTree.ElementTree.getiterator  xml.etree.ElementTree.ElementTree-class.html#getiterator
-xml.etree.ElementTree.ElementTree.findtext     xml.etree.ElementTree.ElementTree-class.html#findtext
-xml.etree.ElementTree.ElementTree.find xml.etree.ElementTree.ElementTree-class.html#find
-xml.etree.ElementTree.ElementTree.write        xml.etree.ElementTree.ElementTree-class.html#write
-xml.etree.ElementTree.ElementTree._setroot     xml.etree.ElementTree.ElementTree-class.html#_setroot
-xml.etree.ElementTree.ElementTree._write       xml.etree.ElementTree.ElementTree-class.html#_write
-xml.etree.ElementTree.ElementTree.findall      xml.etree.ElementTree.ElementTree-class.html#findall
-xml.etree.ElementTree.ElementTree.__init__     xml.etree.ElementTree.ElementTree-class.html#__init__
-xml.etree.ElementTree.QName    xml.etree.ElementTree.QName-class.html
-xml.etree.ElementTree.QName.__hash__   xml.etree.ElementTree.QName-class.html#__hash__
-xml.etree.ElementTree.QName.__str__    xml.etree.ElementTree.QName-class.html#__str__
-xml.etree.ElementTree.QName.__init__   xml.etree.ElementTree.QName-class.html#__init__
-xml.etree.ElementTree.QName.__cmp__    xml.etree.ElementTree.QName-class.html#__cmp__
-xml.etree.ElementTree.TreeBuilder      xml.etree.ElementTree.TreeBuilder-class.html
-xml.etree.ElementTree.TreeBuilder.end  xml.etree.ElementTree.TreeBuilder-class.html#end
-xml.etree.ElementTree.TreeBuilder.start        xml.etree.ElementTree.TreeBuilder-class.html#start
-xml.etree.ElementTree.TreeBuilder._flush       xml.etree.ElementTree.TreeBuilder-class.html#_flush
-xml.etree.ElementTree.TreeBuilder.close        xml.etree.ElementTree.TreeBuilder-class.html#close
-xml.etree.ElementTree.TreeBuilder.data xml.etree.ElementTree.TreeBuilder-class.html#data
-xml.etree.ElementTree.TreeBuilder.__init__     xml.etree.ElementTree.TreeBuilder-class.html#__init__
-xml.etree.ElementTree.XMLTreeBuilder   xml.etree.ElementTree.XMLTreeBuilder-class.html
-xml.etree.ElementTree.XMLTreeBuilder.feed      xml.etree.ElementTree.XMLTreeBuilder-class.html#feed
-xml.etree.ElementTree.XMLTreeBuilder._start    xml.etree.ElementTree.XMLTreeBuilder-class.html#_start
-xml.etree.ElementTree.XMLTreeBuilder.doctype   xml.etree.ElementTree.XMLTreeBuilder-class.html#doctype
-xml.etree.ElementTree.XMLTreeBuilder._end      xml.etree.ElementTree.XMLTreeBuilder-class.html#_end
-xml.etree.ElementTree.XMLTreeBuilder._fixtext  xml.etree.ElementTree.XMLTreeBuilder-class.html#_fixtext
-xml.etree.ElementTree.XMLTreeBuilder._fixname  xml.etree.ElementTree.XMLTreeBuilder-class.html#_fixname
-xml.etree.ElementTree.XMLTreeBuilder.close     xml.etree.ElementTree.XMLTreeBuilder-class.html#close
-xml.etree.ElementTree.XMLTreeBuilder._data     xml.etree.ElementTree.XMLTreeBuilder-class.html#_data
-xml.etree.ElementTree.XMLTreeBuilder._start_list       xml.etree.ElementTree.XMLTreeBuilder-class.html#_start_list
-xml.etree.ElementTree.XMLTreeBuilder._default  xml.etree.ElementTree.XMLTreeBuilder-class.html#_default
-xml.etree.ElementTree.XMLTreeBuilder.__init__  xml.etree.ElementTree.XMLTreeBuilder-class.html#__init__
-xml.etree.ElementTree._ElementInterface        xml.etree.ElementTree._ElementInterface-class.html
-xml.etree.ElementTree._ElementInterface.set    xml.etree.ElementTree._ElementInterface-class.html#set
-xml.etree.ElementTree._ElementInterface.__getslice__   xml.etree.ElementTree._ElementInterface-class.html#__getslice__
-xml.etree.ElementTree._ElementInterface.text   xml.etree.ElementTree._ElementInterface-class.html#text
-xml.etree.ElementTree._ElementInterface.tag    xml.etree.ElementTree._ElementInterface-class.html#tag
-xml.etree.ElementTree._ElementInterface.find   xml.etree.ElementTree._ElementInterface-class.html#find
-xml.etree.ElementTree._ElementInterface.__init__       xml.etree.ElementTree._ElementInterface-class.html#__init__
-xml.etree.ElementTree._ElementInterface.__delslice__   xml.etree.ElementTree._ElementInterface-class.html#__delslice__
-xml.etree.ElementTree._ElementInterface.findtext       xml.etree.ElementTree._ElementInterface-class.html#findtext
-xml.etree.ElementTree._ElementInterface.tail   xml.etree.ElementTree._ElementInterface-class.html#tail
-xml.etree.ElementTree._ElementInterface.findall        xml.etree.ElementTree._ElementInterface-class.html#findall
-xml.etree.ElementTree._ElementInterface.getchildren    xml.etree.ElementTree._ElementInterface-class.html#getchildren
-xml.etree.ElementTree._ElementInterface.append xml.etree.ElementTree._ElementInterface-class.html#append
-xml.etree.ElementTree._ElementInterface.__delitem__    xml.etree.ElementTree._ElementInterface-class.html#__delitem__
-xml.etree.ElementTree._ElementInterface.__len__        xml.etree.ElementTree._ElementInterface-class.html#__len__
-xml.etree.ElementTree._ElementInterface.__getitem__    xml.etree.ElementTree._ElementInterface-class.html#__getitem__
-xml.etree.ElementTree._ElementInterface.get    xml.etree.ElementTree._ElementInterface-class.html#get
-xml.etree.ElementTree._ElementInterface.keys   xml.etree.ElementTree._ElementInterface-class.html#keys
-xml.etree.ElementTree._ElementInterface.makeelement    xml.etree.ElementTree._ElementInterface-class.html#makeelement
-xml.etree.ElementTree._ElementInterface.__setitem__    xml.etree.ElementTree._ElementInterface-class.html#__setitem__
-xml.etree.ElementTree._ElementInterface.insert xml.etree.ElementTree._ElementInterface-class.html#insert
-xml.etree.ElementTree._ElementInterface.items  xml.etree.ElementTree._ElementInterface-class.html#items
-xml.etree.ElementTree._ElementInterface.__setslice__   xml.etree.ElementTree._ElementInterface-class.html#__setslice__
-xml.etree.ElementTree._ElementInterface.remove xml.etree.ElementTree._ElementInterface-class.html#remove
-xml.etree.ElementTree._ElementInterface.__repr__       xml.etree.ElementTree._ElementInterface-class.html#__repr__
-xml.etree.ElementTree._ElementInterface.getiterator    xml.etree.ElementTree._ElementInterface-class.html#getiterator
-xml.etree.ElementTree._ElementInterface.attrib xml.etree.ElementTree._ElementInterface-class.html#attrib
-xml.etree.ElementTree._ElementInterface.clear  xml.etree.ElementTree._ElementInterface-class.html#clear
-xml.etree.ElementTree._SimpleElementPath       xml.etree.ElementTree._SimpleElementPath-class.html
-xml.etree.ElementTree._SimpleElementPath.findtext      xml.etree.ElementTree._SimpleElementPath-class.html#findtext
-xml.etree.ElementTree._SimpleElementPath.find  xml.etree.ElementTree._SimpleElementPath-class.html#find
-xml.etree.ElementTree._SimpleElementPath.findall       xml.etree.ElementTree._SimpleElementPath-class.html#findall
-xml.etree.ElementTree.iterparse        xml.etree.ElementTree.iterparse-class.html
-xml.etree.ElementTree.iterparse.__iter__       xml.etree.ElementTree.iterparse-class.html#__iter__
-xml.etree.ElementTree.iterparse.__init__       xml.etree.ElementTree.iterparse-class.html#__init__
-xml.etree.ElementTree.iterparse.next   xml.etree.ElementTree.iterparse-class.html#next
diff --git a/doc/sphinx/_sources/html5parser.txt b/doc/sphinx/_sources/html5parser.txt
deleted file mode 100644 (file)
index 3c8b6ff..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-===============
-html5lib Parser
-===============
-
-`html5lib`_ is a Python package that implements the HTML5 parsing algorithm
-which is heavily influenced by current browsers and based on the `WHATWG
-HTML5 specification`_.
-
-.. _html5lib: http://code.google.com/p/html5lib/
-.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/
-.. _WHATWG HTML5 specification: http://www.whatwg.org/specs/web-apps/current-work/
-
-lxml can benefit from the parsing capabilities of `html5lib` through
-the ``lxml.html.html5parser`` module.  It provides a similar interface
-to the ``lxml.html`` module by providing ``fromstring()``,
-``parse()``, ``document_fromstring()``, ``fragment_fromstring()`` and
-``fragments_fromstring()`` that work like the regular html parsing
-functions.
-
-
-Differences to regular HTML parsing
-===================================
-
-There are a few differences in the returned tree to the regular HTML
-parsing functions from ``lxml.html``.  html5lib normalizes some elements
-and element structures to a common format.  For example even if a tables
-does not have a `tbody` html5lib will inject one automatically:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html import tostring, html5parser
-    >>> tostring(html5parser.fromstring("<table><td>foo"))
-    '<table><tbody><tr><td>foo</td></tr></tbody></table>'
-
-Also the parameters the functions accept are different.
-
-
-Function Reference
-==================
-
-``parse(filename_url_or_file)``:
-    Parses the named file or url, or if the object has a ``.read()``
-    method, parses from that.
-
-``document_fromstring(html, guess_charset=True)``:
-    Parses a document from the given string.  This always creates a
-    correct HTML document, which means the parent node is ``<html>``,
-    and there is a body and possibly a head.
-
-    If a bytestring is passed and ``guess_charset`` is true the chardet
-    library (if installed) will guess the charset if ambiguities exist.
-
-``fragment_fromstring(string, create_parent=False, guess_charset=False)``:
-    Returns an HTML fragment from a string.  The fragment must contain
-    just a single element, unless ``create_parent`` is given;
-    e.g,. ``fragment_fromstring(string, create_parent='div')`` will
-    wrap the element in a ``<div>``.  If ``create_parent`` is true the
-    default parent tag (div) is used.
-
-    If a bytestring is passed and ``guess_charset`` is true the chardet
-    library (if installed) will guess the charset if ambiguities exist.
-
-``fragments_fromstring(string, no_leading_text=False, parser=None)``:
-    Returns a list of the elements found in the fragment.  The first item in
-    the list may be a string.  If ``no_leading_text`` is true, then it will
-    be an error if there is leading text, and it will always be a list of
-    only elements.
-
-    If a bytestring is passed and ``guess_charset`` is true the chardet
-    library (if installed) will guess the charset if ambiguities exist.
-
-``fromstring(string)``:
-    Returns ``document_fromstring`` or ``fragment_fromstring``, based
-    on whether the string looks like a full document, or just a
-    fragment.
-
-Additionally all parsing functions accept an ``parser`` keyword argument
-that can be set to a custom parser instance.  To create custom parsers
-you can subclass the ``HTMLParser`` and ``XHTMLParser`` from the same
-module.  Note that these are the parser classes provided by html5lib.
diff --git a/doc/sphinx/_sources/index.txt b/doc/sphinx/_sources/index.txt
deleted file mode 100644 (file)
index df71163..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   api
-   build
-   capi
-   compatibility
-   cssselect
-   element_classes
-   elementsoup
-   extensions
-   FAQ
-   html5parser
-   intro
-   lxml2
-   lxmlhtml
-   lxml-source-howto
-   memorymanagement
-   objectify
-   parsing
-   performance
-   resolvers
-   sax
-   tutorial
-   validation
-   xpathxslt
diff --git a/doc/sphinx/_sources/intro.txt b/doc/sphinx/_sources/intro.txt
deleted file mode 100644 (file)
index 1be3f54..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-Why lxml?
-=========
-
-.. contents::
-..
-   1  Motto
-   2  Aims
-
-
-Motto
------
-
-"the thrills without the strangeness"
-
-To explain the motto:
-
-"Programming with libxml2 is like the thrilling embrace of an exotic stranger.
-It seems to have the potential to fulfill your wildest dreams, but there's a
-nagging voice somewhere in your head warning you that you're about to get
-screwed in the worst way."  (`a quote by Mark Pilgrim`_)
-
-Mark Pilgrim was describing in particular the experience a Python programmer
-has when dealing with libxml2.  The default Python bindings of libxml2 are
-fast, thrilling, powerful, and your code might fail in some horrible way that
-you really shouldn't have to worry about when writing Python code.  lxml
-combines the power of libxml2 with the ease of use of Python.
-
-.. _`a quote by Mark Pilgrim`: http://diveintomark.org/archives/2004/02/18/libxml2
-
-
-Aims
-----
-
-The C libraries libxml2_ and libxslt_ have huge benefits:
-
-* Standards-compliant XML support.
-
-* Support for (broken) HTML.
-
-* Full-featured.
-
-* Actively maintained by XML experts.
-
-* fast. fast! FAST!
-
-.. _libxml2: http://www.xmlsoft.org
-
-.. _libxslt: http://xmlsoft.org/XSLT
-
-
-These libraries already ship with Python bindings, but these Python bindings
-mimic the C-level interface.  This yields a number of problems:
-
-* very low level and C-ish (not Pythonic).
-
-* underdocumented and huge, you get lost in them.
-
-* UTF-8 in API, instead of Python unicode strings.
-
-* Can easily cause segfaults from Python.
-
-* Require manual memory management!
-
-
-lxml is a new Python binding for libxml2 and libxslt, completely independent
-from these existing Python bindings.  Its aims:
-
-* Pythonic API.
-
-* Documented.
-
-* Use Python unicode strings in API.
-
-* Safe (no segfaults).
-
-* No manual memory management!
-
-lxml aims to provide a Pythonic API by following as much as possible the
-`ElementTree API`_.  We're trying to avoid inventing too many new APIs, or you
-having to learn new things -- XML is complicated enough.
-
-.. _`ElementTree API`: http://effbot.org/zone/element-index.htm
diff --git a/doc/sphinx/_sources/licenses/BSD.txt b/doc/sphinx/_sources/licenses/BSD.txt
deleted file mode 100644 (file)
index a76d0ed..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Copyright (c) 2004 Infrae. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-   
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in
-     the documentation and/or other materials provided with the
-     distribution.
-
-  3. Neither the name of Infrae nor the names of its contributors may
-     be used to endorse or promote products derived from this software
-     without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INFRAE OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/doc/sphinx/_sources/licenses/GPL.txt b/doc/sphinx/_sources/licenses/GPL.txt
deleted file mode 100644 (file)
index d60c31a..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-\f
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/doc/sphinx/_sources/licenses/ZopePublicLicense.txt b/doc/sphinx/_sources/licenses/ZopePublicLicense.txt
deleted file mode 100644 (file)
index 44e0648..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-Zope Public License (ZPL) Version 2.0
------------------------------------------------
-
-This software is Copyright (c) Zope Corporation (tm) and
-Contributors. All rights reserved.
-
-This license has been certified as open source. It has also
-been designated as GPL compatible by the Free Software
-Foundation (FSF).
-
-Redistribution and use in source and binary forms, with or
-without modification, are permitted provided that the
-following conditions are met:
-
-1. Redistributions in source code must retain the above
-   copyright notice, this list of conditions, and the following
-   disclaimer.
-
-2. Redistributions in binary form must reproduce the above
-   copyright notice, this list of conditions, and the following
-   disclaimer in the documentation and/or other materials
-   provided with the distribution.
-
-3. The name Zope Corporation (tm) must not be used to
-   endorse or promote products derived from this software
-   without prior written permission from Zope Corporation.
-
-4. The right to distribute this software or to use it for
-   any purpose does not give you the right to use Servicemarks
-   (sm) or Trademarks (tm) of Zope Corporation. Use of them is
-   covered in a separate agreement (see
-   http://www.zope.com/Marks).
-
-5. If any files are modified, you must cause the modified
-   files to carry prominent notices stating that you changed
-   the files and the date of any change.
-
-Disclaimer
-
-  THIS SOFTWARE IS PROVIDED BY ZOPE CORPORATION ``AS IS''
-  AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
-  NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-  AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
-  NO EVENT SHALL ZOPE CORPORATION OR ITS CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-
-This software consists of contributions made by Zope
-Corporation and many individuals on behalf of Zope
-Corporation.  Specific attributions are listed in the
-accompanying credits file.
diff --git a/doc/sphinx/_sources/licenses/elementtree.txt b/doc/sphinx/_sources/licenses/elementtree.txt
deleted file mode 100644 (file)
index dde28f1..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-The ElementTree / XML Toys Library is
-
-Copyright (c) 1999-2003 by Secret Labs AB
-Copyright (c) 1999-2003 by Fredrik Lundh
-
-By obtaining, using, and/or copying this software and/or its
-associated documentation, you agree that you have read, understood,
-and will comply with the following terms and conditions:
-
-Permission to use, copy, modify, and distribute this software and its
-associated documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies, and that both that copyright notice and this permission notice
-appear in supporting documentation, and that the name of Secret Labs
-AB or the author not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/doc/sphinx/_sources/lxml-source-howto.txt b/doc/sphinx/_sources/lxml-source-howto.txt
deleted file mode 100644 (file)
index 16e765a..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-==============================
-How to read the source of lxml
-==============================
-
-:Author:
-  Stefan Behnel
-
-.. meta::
-  :description: How to read and work on the source code of lxml
-  :keywords: lxml, XML, Cython, source code, develop, comprehend, understand
-
-This document describes how to read the source code of lxml_ and how
-to start working on it.  You might also be interested in the companion
-document that describes `how to build lxml from sources`_.
-
-.. _lxml: http://codespeak.net/lxml/
-.. _`how to build lxml from sources`: build.html
-.. _`ReStructured Text`: http://docutils.sourceforge.net/rst.html
-.. _epydoc: http://epydoc.sourceforge.net/
-.. _docutils: http://docutils.sourceforge.net/
-.. _`C-level API`: capi.html
-
-.. contents::
-..
-   1  What is Cython?
-   2  Where to start?
-     2.1  Concepts
-     2.2  The documentation
-   3  lxml.etree
-   4  lxml.objectify
-   5  lxml.html
-
-
-What is Cython?
-===============
-
-.. _Cython: http://cython.org/
-.. _Pyrex: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/
-
-Cython_ is the language that lxml is written in.  It is a very
-Python-like language that was specifically designed for writing Python
-extension modules.
-
-The reason why Cython (or actually its predecessor Pyrex_ at the time)
-was chosen as an implementation language for lxml, is that it makes it
-very easy to interface with both the Python world and external C code.
-Cython generates all the necessary glue code for the Python API,
-including Python types, calling conventions and reference counting.
-On the other side of the table, calling into C code is not more than
-declaring the signature of the function and maybe some variables as
-being C types, pointers or structs, and then calling it.  The rest of
-the code is just plain Python code.
-
-The Cython language is so close to Python that the Cython compiler can
-actually compile many, many Python programs to C without major
-modifications.  But the real speed gains of a C compilation come from
-type annotations that were added to the language and that allow Cython
-to generate very efficient C code.
-
-Even if you are not familiar with Cython, you should keep in mind that
-a slow implementation of a feature is better than none.  So, if you
-want to contribute and have an idea what code you want to write, feel
-free to start with a pure Python implementation.  Chances are, if you
-get the change officially accepted and integrated, others will take
-the time to optimise it so that it runs fast in Cython.
-
-
-Where to start?
-===============
-
-First of all, read `how to build lxml from sources`_ to learn how to
-retrieve the source code from the Subversion repository and how to
-build it.  The source code lives in the subdirectory ``src`` of the
-checkout.
-
-The main extension modules in lxml are ``lxml.etree`` and
-``lxml.objectify``.  All main modules have the file extension
-``.pyx``, which shows the descendence from Pyrex.  As usual in Python,
-the main files start with a short description and a couple of imports.
-Cython distinguishes between the run-time ``import`` statement (as
-known from Python) and the compile-time ``cimport`` statement, which
-imports C declarations, either from external libraries or from other
-Cython modules.
-
-
-Concepts
---------
-
-lxml's tree API is based on proxy objects.  That means, every Element
-object (or rather ``_Element`` object) is a proxy for a libxml2 node
-structure.  The class declaration is (mainly)::
-
-    cdef class _Element:
-        cdef _Document _doc
-        cdef xmlNode* _c_node
-
-It is a naming convention that C variables and C level class members
-that are passed into libxml2 start with a prefixed ``c_`` (commonly
-libxml2 struct pointers), and that C level class members are prefixed
-with an underscore.  So you will often see names like ``c_doc`` for an
-``xmlDoc*`` variable (or ``c_node`` for an ``xmlNode*``), or the above
-``_c_node`` for a class member that points to an ``xmlNode`` struct
-(or ``_c_doc`` for an ``xmlDoc*``).
-
-It is important to know that every proxy in lxml has a factory
-function that properly sets up C level members.  Proxy objects must
-*never* be instantiated outside of that factory.  For example, to
-instantiate an _Element object or its subclasses, you must always call
-its factory function::
-
-    cdef xmlNode* c_node
-    cdef _Document doc
-    cdef _Element element
-    ...
-    element = _elementFactory(doc, c_node)
-
-A good place to see how this factory is used are the Element methods
-``getparent()``, ``getnext()`` and ``getprevious()``.
-
-
-The documentation
------------------
-
-An important part of lxml is the documentation that lives in the
-``doc`` directory.  It describes a large part of the API and comprises
-a lot of example code in the form of doctests.
-
-The documentation is written in the `ReStructured Text`_ format, a
-very powerful text markup language that looks almost like plain text.
-It is part of the docutils_ package.
-
-The project web site of lxml_ is completely generated from these text
-documents.  Even the side menu is just collected from the table of
-contents that the ReST processor writes into each HTML page.
-Obviously, we use lxml for this.
-
-The easiest way to generate the HTML pages is by calling::
-
-    make html
-
-This will call the script ``doc/mkhtml.py`` to run the ReST processor
-on the files.  After generating an HTML page the script parses it back
-in to build the side menu, and injects the complete menu into each
-page at the very end.
-
-Running the ``make`` command will also generate the API documentation
-if you have epydoc_ installed.  The epydoc package will import and
-introspect the extension modules and also introspect and parse the
-Python modules of lxml.  The aggregated information will then be
-written out into an HTML documentation site.
-
-
-lxml.etree
-==========
-
-The main module, ``lxml.etree``, is in the file `lxml.etree.pyx
-<http://codespeak.net/svn/lxml/trunk/src/lxml/lxml.etree.pyx>`_.  It
-implements the main functions and types of the ElementTree API, as
-well as all the factory functions for proxies.  It is the best place
-to start if you want to find out how a specific feature is
-implemented.
-
-At the very end of the file, it contains a series of ``include``
-statements that merge the rest of the implementation into the
-generated C code.  Yes, you read right: no importing, no source file
-namespacing, just plain good old include and a huge C code result of
-more than 100,000 lines that we throw right into the C compiler.
-
-The main include files are:
-
-apihelpers.pxi
-    Private C helper functions.  Except for the factory functions,
-    most of the little functions that are used all over the place are
-    defined here.  This includes things like reading out the text
-    content of a libxml2 tree node, checking input from the API level,
-    creating a new Element node or handling attribute values.  If you
-    want to work on the lxml code, you should keep these functions in
-    the back of your head, as they will definitely make your life
-    easier.
-
-classlookup.pxi
-    Element class lookup mechanisms.  The main API and engines for
-    those who want to define custom Element classes and inject them
-    into lxml.
-
-docloader.pxi
-    Support for custom document loaders.  Base class and registry for
-    custom document resolvers.
-
-extensions.pxi
-    Infrastructure for extension functions in XPath/XSLT, including
-    XPath value conversion and function registration.
-
-iterparse.pxi
-    Incremental XML parsing.  An iterator class that builds iterparse
-    events while parsing.
-
-nsclasses.pxi
-    Namespace implementation and registry.  The registry and engine
-    for Element classes that use the ElementNamespaceClassLookup
-    scheme.
-
-parser.pxi
-    Parsers for XML and HTML.  This is the main parser engine.  It's
-    the reason why you can parse a document from various sources in
-    two lines of Python code.  It's definitely not the right place to
-    start reading lxml's soure code.
-
-parsertarget.pxi
-    An ElementTree compatible parser target implementation based on
-    the SAX2 interface of libxml2.
-
-proxy.pxi
-    Very low-level functions for memory allocation/deallocation
-    and Element proxy handling.  Ignoring this for the beginning
-    will safe your head from exploding.
-
-public-api.pxi
-    The set of C functions that are exported to other extension
-    modules at the C level.  For example, ``lxml.objectify`` makes use
-    of these.  See the `C-level API` documentation.
-
-readonlytree.pxi
-    A separate read-only implementation of the Element API.  This is
-    used in places where non-intrusive access to a tree is required,
-    such as the ``PythonElementClassLookup`` or XSLT extension
-    elements.
-
-saxparser.pxi
-    SAX-like parser interfaces as known from ElementTree's TreeBuilder.
-
-serializer.pxi
-    XML output functions.  Basically everything that creates byte
-    sequences from XML trees.
-
-xinclude.pxi
-    XInclude support.
-
-xmlerror.pxi
-    Error log handling.  All error messages that libxml2 generates
-    internally walk through the code in this file to end up in lxml's
-    Python level error logs.
-
-    At the end of the file, you will find a long list of named error
-    codes.  It is generated from the libxml2 HTML documentation (using
-    lxml, of course).  See the script ``update-error-constants.py``
-    for this.
-
-xmlid.pxi
-    XMLID and IDDict, a dictionary-like way to find Elements by their
-    XML-ID attribute.
-
-xpath.pxi
-    XPath evaluators.
-
-xslt.pxi
-    XSL transformations, including the ``XSLT`` class, document lookup
-    handling and access control.
-
-The different schema languages (DTD, RelaxNG, XML Schema and
-Schematron) are implemented in the following include files:
-
-* dtd.pxi
-* relaxng.pxi
-* schematron.pxi
-* xmlschema.pxi
-
-
-Python modules
-==============
-
-The ``lxml`` package also contains a number of pure Python modules:
-
-builder.py
-    The E-factory and the ElementBuilder class.  These provide a
-    simple interface to XML tree generation.
-
-cssselect.py
-    A CSS selector implementation based on XPath.  The main class is
-    called ``CSSSelector``.
-
-doctestcompare.py
-    A relaxed comparison scheme for XML/HTML markup in doctest.
-
-ElementInclude.py
-    XInclude-like document inclusion, compatible with ElementTree.
-
-_elementpath.py
-    XPath-like path language, compatible with ElementTree.
-
-sax.py
-    SAX2 compatible interfaces to copy lxml trees from/to SAX compatible
-    tools.
-
-usedoctest.py
-    Wrapper module for ``doctestcompare.py`` that simplifies its usage
-    from inside a doctest.
-
-
-lxml.objectify
-==============
-
-A Cython implemented extension module that uses the public C-API of
-lxml.etree.  It provides a Python object-like interface to XML trees.
-The implementation resides in the file `lxml.objectify.pyx
-<http://codespeak.net/svn/lxml/trunk/src/lxml/lxml.objectify.pyx>`_.
-
-
-lxml.html
-=========
-
-A specialised toolkit for HTML handling, based on lxml.etree.  This is
-implemented in pure Python.
diff --git a/doc/sphinx/_sources/lxml2.txt b/doc/sphinx/_sources/lxml2.txt
deleted file mode 100644 (file)
index 07a7b8b..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-=======================
-What's new in lxml 2.0?
-=======================
-
-.. contents::
-..
-   1  Changes in etree and objectify
-     1.1  Incompatible changes
-     1.2  Enhancements
-     1.3  Deprecation
-   2  New modules
-     2.1  lxml.usedoctest
-     2.2  lxml.html
-     2.3  lxml.cssselect
-
-
-During the development of the lxml 1.x series, a couple of quirks were
-discovered in the design that made the API less obvious and its future
-extensions harder than necessary. lxml 2.0 is a soft evolution of lxml 1.x
-towards a simpler, more consistent and more powerful API - with some major
-extensions.  Wherever possible, lxml 1.3 comes close to the semantics of lxml
-2.0, so that migrating should be easier for code that currently runs with 1.3.
-
-One of the important internal changes was the switch from the Pyrex_
-compiler to Cython_, which provides better optimisation and improved
-support for newer Python language features.  This allows the code of
-lxml to become more Python-like again, while the performance improves
-as Cython continues its own development.  The code simplification,
-which will continue throughout the 2.x series, will hopefully make it
-even easier for users to contribute.
-
-.. _Cython: http://www.cython.org/
-.. _Pyrex:  http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/
-
-
-Changes in etree and objectify
-==============================
-
-A graduation towards a more consistent API cannot go without a certain amount
-of incompatible changes.  The following is a list of those differences that
-applications need to take into account when migrating from lxml 1.x to lxml
-2.0.
-
-Incompatible changes
---------------------
-
-* lxml 0.9 introduced a feature called `namespace implementation`_.  The
-  global ``Namespace`` factory was added to register custom element classes
-  and have lxml.etree look them up automatically.  However, the later
-  development of further class lookup mechanisms made it appear less and less
-  adequate to register this mapping at a global level, so lxml 1.1 first
-  removed the namespace based lookup from the default setup and lxml 2.0
-  finally removes the global namespace registry completely.  As all other
-  lookup mechanisms, the namespace lookup is now local to a parser, including
-  the registry itself.  Applications that use a module-level parser can easily
-  map its ``get_namespace()`` method to a global ``Namespace`` function to
-  mimic the old behaviour.
-
-  .. _`namespace implementation`: element_classes.html#implementing-namespaces
-
-* Some API functions now require passing options as keyword arguments,
-  as opposed to positional arguments.  This restriction was introduced
-  to make the API usage independent of future extensions such as the
-  addition of new positional arguments.  Users should not rely on the
-  position of an optional argument in function signatures and instead
-  pass it explicitly named.  This also improves code readability - it
-  is common good practice to pass options in a consistent way
-  independent of their position, so many people may not even notice
-  the change in their code.  Another important reason is compatibility
-  with cElementTree, which also enforces keyword-only arguments in a
-  couple of places.
-
-* XML tag names are validated when creating an Element.  This does not
-  apply to HTML tags, where only HTML special characters are
-  forbidden.  The distinction is made by the ``SubElement()`` factory,
-  which tests if the tree it works on is an HTML tree, and by the
-  ``.makeelement()`` methods of parsers, which behave differently for
-  the ``XMLParser()`` and the ``HTMLParser()``.
-
-* XPath now raises exceptions specific to the part of the execution that
-  failed: ``XPathSyntaxError`` for parser errors and ``XPathEvalError`` for
-  errors that occurred during the evaluation.  Note that the distinction only
-  works for the ``XPath()`` class.  The other two evaluators only have a
-  single evaluation call that includes the parsing step, and will therefore
-  only raise an ``XPathEvalError``.  Applications can catch both exceptions
-  through the common base class ``XPathError`` (which also exists in earlier
-  lxml versions).
-
-* Network access in parsers is now disabled by default, i.e. the
-  ``no_network`` option defaults to True.  Due to a somewhat 'interesting'
-  implementation in libxml2, this does not affect the first document (i.e. the
-  URL that is parsed), but only subsequent documents, such as a DTD when
-  parsing with validation.  This means that you will have to check the URL you
-  pass, instead of relying on lxml to prevent *any* access to external
-  resources.  As this can be helpful in some use cases, lxml does not work
-  around it.
-
-* The type annotations in lxml.objectify (the ``pytype`` attribute) now use
-  ``NoneType`` for the None value as this is the correct Python type name.
-  Previously, lxml 1.x used a lower case ``none``.
-
-* Another change in objectify regards the way it deals with ambiguous types.
-  Previously, setting a value like the string ``"3"`` through normal attribute
-  access would let it come back as an integer when reading the object
-  attribute.  lxml 2.0 prevents this by always setting the ``pytype``
-  attribute to the type the user passed in, so ``"3"`` will come back as a
-  string, while the number ``3`` will come back as a number.  To remove the
-  type annotation on serialisation, you can use the ``deannotate()`` function.
-
-* The C-API function ``findOrBuildNodeNs()`` was replaced by the more generic
-  ``findOrBuildNodeNsPrefix()`` that accepts an additional default prefix.
-
-
-Enhancements
-------------
-
-Most of the enhancements of lxml 2.0 were made under the hood.  Most people
-won't even notice them, but they make the maintenance of lxml easier and thus
-facilitate further enhancements and an improved integration between lxml's
-features.
-
-* lxml.objectify now has its own implementation of the `E factory`_.  It uses
-  the built-in type lookup mechanism of lxml.objectify, thus removing the need
-  for an additional type registry mechanism (as previously available through
-  the ``typemap`` parameter).
-
-* XML entities are supported through the ``Entity()`` factory, an Entity
-  element class and a parser option ``resolve_entities`` that allows to keep
-  entities in the element tree when set to False.  Also, the parser will now
-  report undefined entities as errors if it needs to resolve them (which is
-  still the default, as in lxml 1.x).
-
-* A major part of the XPath code was rewritten and can now benefit from a
-  bigger overlap with the XSLT code.  The main benefits are improved thread
-  safety in the XPath evaluators and Python RegExp support in standard XPath.
-
-* The string results of an XPath evaluation have become 'smart' string
-  subclasses.  Formerly, there was no easy way to find out where a
-  string originated from.  In lxml 2.0, you can call its
-  ``getparent()`` method to `find the Element that carries it`_.  This
-  works for attributes (``//@attribute``) and for ``text()`` nodes,
-  i.e. Element text and tails.  Strings that were constructed in the
-  path expression, e.g. by the ``string()`` function or extension
-  functions, will return None as their parent.
-
-* Setting a ``QName`` object as value of the ``.text`` property or as
-  an attribute value will resolve its prefix in the respective context
-
-* Following ElementTree 1.3, the ``iterfind()`` method supports
-  efficient iteration based on XPath-like expressions.
-
-The parsers also received some major enhancements:
-
-* ``iterparse()`` can parse HTML when passing the boolean ``html``
-  keyword.
-
-* Parse time XML Schema validation by passing an
-  XMLSchema object to the ``schema`` keyword argument of a parser.
-
-* Support for a ``target`` object that implements ElementTree's
-  `TreeBuilder interface`_.
-
-* The ``encoding`` keyword allows overriding the document encoding.
-
-
-.. _`E factory`: objectify.html#tree-generation-with-the-e-factory
-.. _`find the Element that carries it`: tutorial.html#using-xpath-to-find-text
-.. _`TreeBuilder interface`: http://effbot.org/elementtree/elementtree-treebuilder.htm
-
-
-Deprecation
------------
-
-The following functions and methods are now deprecated.  They are
-still available in lxml 2.0 and will be removed in lxml 2.1:
-
-* The ``tounicode()`` function was replaced by the call
-  ``tostring(encoding=unicode)``.
-
-* CamelCaseNamed module functions and methods were renamed to their
-  underscore equivalents to follow `PEP 8`_ in naming.
-
-  - ``etree.clearErrorLog()``, use ``etree.clear_error_log()``
-
-  - ``etree.useGlobalPythonLog()``, use
-    ``etree.use_global_python_log()``
-
-  - ``etree.ElementClassLookup.setFallback()``, use
-    ``etree.ElementClassLookup.set_fallback()``
-
-  - ``etree.getDefaultParser()``, use ``etree.get_default_parser()``
-
-  - ``etree.setDefaultParser()``, use ``etree.set_default_parser()``
-
-  - ``etree.setElementClassLookup()``, use
-    ``etree.set_element_class_lookup()``
-
-  - ``XMLParser.setElementClassLookup()``, use ``.set_element_class_lookup()``
-
-  - ``HTMLParser.setElementClassLookup()``, use ``.set_element_class_lookup()``
-
-    Note that ``parser.setElementClassLookup()`` has not been removed
-    yet, although ``parser.set_element_class_lookup()`` should be used
-    instead.
-
-  - ``xpath_evaluator.registerNamespace()``, use
-    ``xpath_evaluator.register_namespace()``
-
-  - ``xpath_evaluator.registerNamespaces()``, use
-    ``xpath_evaluator.register_namespaces()``
-
-  - ``objectify.setPytypeAttributeTag``, use
-    ``objectify.set_pytype_attribute_tag``
-
-  - ``objectify.setDefaultParser()``, use
-    ``objectify.set_default_parser()``
-
-* The ``.getiterator()`` method on Elements and ElementTrees was
-  renamed to ``.iter()`` to follow ElementTree 1.3.
-
-.. _`PEP 8`: http://www.python.org/dev/peps/pep-0008/
-
-
-New modules
-===========
-
-The most visible changes in lxml 2.0 regard the new modules that were added.
-
-
-lxml.usedoctest
----------------
-
-A very useful module for doctests based on XML or HTML is
-``lxml.doctestcompare``.  It provides a relaxed comparison mechanism
-for XML and HTML in doctests.  Using it for XML comparisons is as
-simple as:
-
-.. sourcecode:: pycon
-
-    >>> import lxml.usedoctest
-
-and for HTML comparisons:
-
-.. sourcecode:: pycon
-
-    >>> import lxml.html.usedoctest
-
-
-lxml.html
----------
-
-The largest new package that was added to lxml 2.0 is `lxml.html`_.  It
-contains various tools and modules for HTML handling.  The major features
-include support for cleaning up HTML (removing unwanted content), a readable
-HTML diff and various tools for working with links.
-
-.. _`lxml.html`: lxmlhtml.html
-
-
-lxml.cssselect
---------------
-
-The Cascading Stylesheet Language (CSS_) has a very short and generic path
-language for pointing at elements in XML/HTML trees (`CSS selectors`_).  The module
-lxml.cssselect_ provides an implementation based on XPath.
-
-.. _lxml.cssselect: cssselect.html
-.. _CSS: http://www.w3.org/Style/CSS/
-.. _`CSS selectors`: http://www.w3.org/TR/CSS21/selector.html
diff --git a/doc/sphinx/_sources/lxmlhtml.txt b/doc/sphinx/_sources/lxmlhtml.txt
deleted file mode 100644 (file)
index ce6d962..0000000
+++ /dev/null
@@ -1,759 +0,0 @@
-=========
-lxml.html
-=========
-
-:Author:
-  Ian Bicking
-
-Since version 2.0, lxml comes with a dedicated Python package for
-dealing with HTML: ``lxml.html``.  It is based on lxml's HTML parser,
-but provides a special Element API for HTML elements, as well as a
-number of utilities for common HTML processing tasks.
-
-.. contents::
-.. 
-   1  Parsing HTML
-     1.1  Parsing HTML fragments
-     1.2  Really broken pages
-   2  HTML Element Methods
-   3  Running HTML doctests
-   4  Creating HTML with the E-factory
-     4.1  Viewing your HTML
-   5  Working with links
-     5.1  Functions
-   6  Forms
-     6.1  Form Filling Example
-     6.2  Form Submission
-   7  Cleaning up HTML
-     7.1  autolink
-     7.2  wordwrap
-   8  HTML Diff
-   9  Examples
-     9.1  Microformat Example
-
-The main API is based on the `lxml.etree`_ API, and thus, on the ElementTree_
-API.
-
-.. _`lxml.etree`: tutorial.html
-.. _ElementTree:  http://effbot.org/zone/element-index.htm
-
-
-Parsing HTML
-============
-
-Parsing HTML fragments
-----------------------
-
-There are several functions available to parse HTML:
-
-``parse(filename_url_or_file)``:
-    Parses the named file or url, or if the object has a ``.read()``
-    method, parses from that.
-
-    If you give a URL, or if the object has a ``.geturl()`` method (as
-    file-like objects from ``urllib.urlopen()`` have), then that URL
-    is used as the base URL.  You can also provide an explicit
-    ``base_url`` keyword argument.
-
-``document_fromstring(string)``:
-    Parses a document from the given string.  This always creates a
-    correct HTML document, which means the parent node is ``<html>``,
-    and there is a body and possibly a head.
-
-``fragment_fromstring(string, create_parent=False)``:
-    Returns an HTML fragment from a string.  The fragment must contain
-    just a single element, unless ``create_parent`` is given;
-    e.g,. ``fragment_fromstring(string, create_parent='div')`` will
-    wrap the element in a ``<div>``.
-
-``fragments_fromstring(string)``:
-    Returns a list of the elements found in the fragment.
-
-``fromstring(string)``:
-    Returns ``document_fromstring`` or ``fragment_fromstring``, based
-    on whether the string looks like a full document, or just a
-    fragment.
-
-Really broken pages
--------------------
-
-The normal HTML parser is capable of handling broken HTML, but for
-pages that are far enough from HTML to call them 'tag soup', it may
-still fail to parse the page in a useful way.  A way to deal with this
-is ElementSoup_, which deploys the well-known BeautifulSoup_ parser to
-build an lxml HTML tree.
-
-.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/
-.. _ElementSoup: elementsoup.html
-
-However, note that the most common problem with web pages is the lack
-of (or the existence of incorrect) encoding declarations.  It is
-therefore often sufficient to only use the encoding detection of
-BeautifulSoup, called UnicodeDammit, and to leave the rest to lxml's
-own HTML parser, which is several times faster.
-
-
-HTML Element Methods
-====================
-
-HTML elements have all the methods that come with ElementTree, but
-also include some extra methods:
-
-``.drop_tree()``:
-    Drops the element and all its children.  Unlike
-    ``el.getparent().remove(el)`` this does *not* remove the tail
-    text; with ``drop_tree`` the tail text is merged with the previous
-    element.
-
-``.drop_tag()``:
-    Drops the tag, but keeps its children and text.
-
-``.find_class(class_name)``:
-    Returns a list of all the elements with the given CSS class name.
-    Note that class names are space separated in HTML, so
-    ``doc.find_class_name('highlight')`` will find an element like
-    ``<div class="sidebar highlight">``.  Class names *are* case
-    sensitive.
-
-``.find_rel_links(rel)``:
-    Returns a list of all the ``<a rel="{rel}">`` elements.  E.g.,
-    ``doc.find_rel_links('tag')`` returns all the links `marked as
-    tags <http://microformats.org/wiki/rel-tag>`_.
-
-``.get_element_by_id(id, default=None)``:
-    Return the element with the given ``id``, or the ``default`` if
-    none is found.  If there are multiple elements with the same id
-    (which there shouldn't be, but there often is), this returns only
-    the first.
-
-``.text_content()``:
-    Returns the text content of the element, including the text
-    content of its children, with no markup.
-
-``.cssselect(expr)``:
-    Select elements from this element and its children, using a CSS
-    selector expression.  (Note that ``.xpath(expr)`` is also
-    available as on all lxml elements.)
-
-``.label``:
-    Returns the corresponding ``<label>`` element for this element, if
-    any exists (None if there is none).  Label elements have a
-    ``label.for_element`` attribute that points back to the element.
-
-``.base_url``:
-    The base URL for this element, if one was saved from the parsing.
-    This attribute is not settable.  Is None when no base URL was
-    saved.
-
-Running HTML doctests
-=====================
-
-One of the interesting modules in the ``lxml.html`` package deals with
-doctests.  It can be hard to compare two HTML pages for equality, as
-whitespace differences aren't meaningful and the structural formatting
-can differ.  This is even more a problem in doctests, where output is
-tested for equality and small differences in whitespace or the order
-of attributes can let a test fail.  And given the verbosity of
-tag-based languages, it may take more than a quick look to find the
-actual differences in the doctest output.
-
-Luckily, lxml provides the ``lxml.doctestcompare`` module that
-supports relaxed comparison of XML and HTML pages and provides a
-readable diff in the output when a test fails.  The HTML comparison is
-most easily used by importing the ``usedoctest`` module in a doctest:
-
-.. sourcecode:: pycon
-
-    >>> import lxml.html.usedoctest
-
-Now, if you have a HTML document and want to compare it to an expected result
-document in a doctest, you can do the following:
-
-.. sourcecode:: pycon
-
-    >>> import lxml.html
-    >>> html = lxml.html.fromstring('''\
-    ...    <html><body onload="" color="white">
-    ...      <p>Hi  !</p>
-    ...    </body></html>
-    ... ''')
-
-    >>> print lxml.html.tostring(html)
-    <html><body onload="" color="white"><p>Hi !</p></body></html>
-
-    >>> print lxml.html.tostring(html)
-    <html> <body color="white" onload=""> <p>Hi    !</p> </body> </html>
-
-    >>> print lxml.html.tostring(html)
-    <html>
-      <body color="white" onload="">
-        <p>Hi !</p>
-      </body>
-    </html>
-
-In documentation, you would likely prefer the pretty printed HTML output, as
-it is the most readable.  However, the three documents are equivalent from the
-point of view of an HTML tool, so the doctest will silently accept any of the
-above.  This allows you to concentrate on readability in your doctests, even
-if the real output is a straight ugly HTML one-liner.
-
-Note that there is also an ``lxml.usedoctest`` module which you can
-import for XML comparisons.  The HTML parser notably ignores
-namespaces and some other XMLisms.
-
-
-Creating HTML with the E-factory
-================================
-
-.. _`E-factory`: http://online.effbot.org/2006_11_01_archive.htm#et-builder
-
-lxml.html comes with a predefined HTML vocabulary for the `E-factory`_,
-originally written by Fredrik Lundh.  This allows you to quickly generate HTML
-pages and fragments:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html import builder as E
-    >>> from lxml.html import usedoctest
-    >>> html = E.HTML(
-    ...   E.HEAD(
-    ...     E.LINK(rel="stylesheet", href="great.css", type="text/css"),
-    ...     E.TITLE("Best Page Ever")
-    ...   ),
-    ...   E.BODY(
-    ...     E.H1(E.CLASS("heading"), "Top News"),
-    ...     E.P("World News only on this page", style="font-size: 200%"),
-    ...     "Ah, and here's some more text, by the way.",
-    ...     lxml.html.fromstring("<p>... and this is a parsed fragment ...</p>")
-    ...   )
-    ... )
-
-    >>> print lxml.html.tostring(html)
-    <html>
-      <head>
-        <link href="great.css" rel="stylesheet" type="text/css">
-        <title>Best Page Ever</title>
-      </head>
-      <body>
-        <h1 class="heading">Top News</h1>
-        <p style="font-size: 200%">World News only on this page</p>
-        Ah, and here's some more text, by the way.
-        <p>... and this is a parsed fragment ...</p>
-      </body>
-    </html>
-
-Note that you should use ``lxml.html.tostring`` and **not**
-``lxml.tostring``.  ``lxml.tostring(doc)`` will return the XML
-representation of the document, which is not valid HTML.  In
-particular, things like ``<script src="..."></script>`` will be
-serialized as ``<script src="..." />``, which completely confuses
-browsers.
-
-Viewing your HTML
------------------
-
-A handy method for viewing your HTML:
-``lxml.html.open_in_browser(lxml_doc)`` will write the document to
-disk and open it in a browser (with the `webbrowser module
-<http://python.org/doc/current/lib/module-webbrowser.html>`_).
-
-Working with links
-==================
-
-There are several methods on elements that allow you to see and modify
-the links in a document.
-
-``.iterlinks()``:
-    This yields ``(element, attribute, link, pos)`` for every link in
-    the document.  ``attribute`` may be None if the link is in the
-    text (as will be the case with a ``<style>`` tag with
-    ``@import``).  
-
-    This finds any link in an ``action``, ``archive``, ``background``,
-    ``cite``, ``classid``, ``codebase``, ``data``, ``href``,
-    ``longdesc``, ``profile``, ``src``, ``usemap``, ``dynsrc``, or
-    ``lowsrc`` attribute.  It also searches ``style`` attributes for
-    ``url(link)``, and ``<style>`` tags for ``@import`` and ``url()``.
-
-    This function does *not* pay attention to ``<base href>``.
-
-``.resolve_base_href()``:
-    This function will modify the document in-place to take account of
-    ``<base href>`` if the document contains that tag.  In the process
-    it will also remove that tag from the document.
-
-``.make_links_absolute(base_href, resolve_base_href=True)``:
-    This makes all links in the document absolute, assuming that
-    ``base_href`` is the URL of the document.  So if you pass
-    ``base_href="http://localhost/foo/bar.html"`` and there is a link
-    to ``baz.html`` that will be rewritten as
-    ``http://localhost/foo/baz.html``.
-
-    If ``resolve_base_href`` is true, then any ``<base href>`` tag
-    will be taken into account (just calling
-    ``self.resolve_base_href()``).
-
-``.rewrite_links(link_repl_func, resolve_base_href=True, base_href=None)``:
-    This rewrites all the links in the document using your given link
-    replacement function.  If you give a ``base_href`` value, all
-    links will be passed in after they are joined with this URL.
-
-    For each link ``link_repl_func(link)`` is called.  That function
-    then returns the new link, or None to remove the attribute or tag
-    that contains the link.  Note that all links will be passed in,
-    including links like ``"#anchor"`` (which is purely internal), and
-    things like ``"mailto:bob@example.com"`` (or ``javascript:...``).
-
-    If you want access to the context of the link, you should use
-    ``.iterlinks()`` instead.
-
-Functions
----------
-
-In addition to these methods, there are corresponding functions:
-
-* ``iterlinks(html)``
-* ``make_links_absolute(html, base_href, ...)``
-* ``rewrite_links(html, link_repl_func, ...)``
-* ``resolve_base_href(html)``
-
-These functions will parse ``html`` if it is a string, then return the new
-HTML as a string.  If you pass in a document, the document will be copied
-(except for ``iterlinks()``), the method performed, and the new document
-returned.
-
-Forms
-=====
-
-Any ``<form>`` elements in a document are available through
-the list ``doc.forms`` (e.g., ``doc.forms[0]``).  Form, input, select,
-and textarea elements each have special methods.
-
-Input elements (including ``<select>`` and ``<textarea>``) have these
-attributes:
-
-``.name``:
-    The name of the element.
-
-``.value``:
-    The value of an input, the content of a textarea, the selected
-    option(s) of a select.  This attribute can be set.  
-
-    In the case of a select that takes multiple options (``<select
-    multiple>``) this will be a set of the selected options; you can
-    add or remove items to select and unselect the options.
-
-Select attributes:
-
-``.value_options``:
-    For select elements, this is all the *possible* values (the values
-    of all the options).
-
-``.multiple``:
-    For select elements, true if this is a ``<select multiple>``
-    element.
-
-Input attributes:
-
-``.type``:
-    The type attribute in ``<input>`` elements.
-
-``.checkable``:
-    True if this can be checked (i.e., true for type=radio and
-    type=checkbox).
-
-``.checked``:
-    If this element is checkable, the checked state.  Raises
-    AttributeError on non-checkable inputs.
-
-The form itself has these attributes:
-
-``.inputs``:
-    A dictionary-like object that can be used to access input elements
-    by name.  When there are multiple input elements with the same
-    name, this returns list-like structures that can also be used to
-    access the options and their values as a group.
-
-``.fields``:
-    A dictionary-like object used to access *values* by their name.
-    ``form.inputs`` returns elements, this only returns values.
-    Setting values in this dictionary will effect the form inputs.
-    Basically ``form.fields[x]`` is equivalent to
-    ``form.inputs[x].value`` and ``form.fields[x] = y`` is equivalent
-    to ``form.inputs[x].value = y``.  (Note that sometimes
-    ``form.inputs[x]`` returns a compound object, but these objects
-    also have ``.value`` attributes.)
-
-    If you set this attribute, it is equivalent to
-    ``form.fields.clear(); form.fields.update(new_value)``
-
-``.form_values()``:
-    Returns a list of ``[(name, value), ...]``, suitable to be passed
-    to ``urllib.urlencode()`` for form submission.
-
-``.action``:
-    The ``action`` attribute.  This is resolved to an absolute URL if
-    possible.
-
-``.method``:
-    The ``method`` attribute, which defaults to ``GET``.
-
-Form Filling Example
---------------------
-
-Note that you can change any of these attributes (values, method,
-action, etc) and then serialize the form to see the updated values.
-You can, for instance, do:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html import fromstring, tostring
-    >>> form_page = fromstring('''<html><body><form>
-    ...   Your name: <input type="text" name="name"> <br>
-    ...   Your phone: <input type="text" name="phone"> <br>
-    ...   Your favorite pets: <br>
-    ...   Dogs: <input type="checkbox" name="interest" value="dogs"> <br>
-    ...   Cats: <input type="checkbox" name="interest" value="cats"> <br>
-    ...   Llamas: <input type="checkbox" name="interest" value="llamas"> <br>
-    ...   <input type="submit"></form></body></html>''')
-    >>> form = form_page.forms[0]
-    >>> form.fields = dict(
-    ...     name='John Smith',
-    ...     phone='555-555-3949',
-    ...     interest=set(['cats', 'llamas']))
-    >>> print tostring(form)
-    <html>
-      <body>
-        <form>
-        Your name:
-          <input name="name" type="text" value="John Smith">
-          <br>Your phone:
-          <input name="phone" type="text" value="555-555-3949">
-          <br>Your favorite pets:
-          <br>Dogs:
-          <input name="interest" type="checkbox" value="dogs">
-          <br>Cats:
-          <input checked name="interest" type="checkbox" value="cats">
-          <br>Llamas:
-          <input checked name="interest" type="checkbox" value="llamas">
-          <br>
-          <input type="submit">
-        </form>
-      </body>
-    </html>
-
-
-Form Submission
----------------
-
-You can submit a form with ``lxml.html.submit_form(form_element)``.
-This will return a file-like object (the result of
-``urllib.urlopen()``).
-
-If you have extra input values you want to pass you can use the
-keyword argument ``extra_values``, like ``extra_values={'submit':
-'Yes!'}``.  This is the only way to get submit values into the form,
-as there is no state of "submitted" for these elements.
-
-You can pass in an alternate opener with the ``open_http`` keyword
-argument, which is a function with the signature ``open_http(method,
-url, values)``.
-
-Example:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html import parse, submit_form
-    >>> page = parse('http://tinyurl.com').getroot()
-    >>> page.forms[1].fields['url'] = 'http://codespeak.net/lxml/'
-    >>> result = parse(submit_form(page.forms[1])).getroot()
-    >>> [a.attrib['href'] for a in result.xpath("//a[@target='_blank']")]
-    ['http://tinyurl.com/2xae8s', 'http://preview.tinyurl.com/2xae8s']
-
-Cleaning up HTML
-================
-
-The module ``lxml.html.clean`` provides a ``Cleaner`` class for cleaning up
-HTML pages.  It supports removing embedded or script content, special tags,
-CSS style annotations and much more.
-
-Say, you have an evil web page from an untrusted source that contains lots of
-content that upsets browsers and tries to run evil code on the client side:
-
-.. sourcecode:: pycon
-
-    >>> html = '''\
-    ... <html>
-    ...  <head>
-    ...    <script type="text/javascript" src="evil-site"></script>
-    ...    <link rel="alternate" type="text/rss" src="evil-rss">
-    ...    <style>
-    ...      body {background-image: url(javascript:do_evil)};
-    ...      div {color: expression(evil)};
-    ...    </style>
-    ...  </head>
-    ...  <body onload="evil_function()">
-    ...    <!-- I am interpreted for EVIL! -->
-    ...    <a href="javascript:evil_function()">a link</a>
-    ...    <a href="#" onclick="evil_function()">another link</a>
-    ...    <p onclick="evil_function()">a paragraph</p>
-    ...    <div style="display: none">secret EVIL!</div>
-    ...    <object> of EVIL! </object>
-    ...    <iframe src="evil-site"></iframe>
-    ...    <form action="evil-site">
-    ...      Password: <input type="password" name="password">
-    ...    </form>
-    ...    <blink>annoying EVIL!</blink>
-    ...    <a href="evil-site">spam spam SPAM!</a>
-    ...    <image src="evil!">
-    ...  </body>
-    ... </html>'''
-
-To remove the all suspicious content from this unparsed document, use the
-``clean_html`` function:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html.clean import clean_html
-    
-    >>> print clean_html(html)
-    <html>
-      <body>
-        <div>
-          <style>/* deleted */</style>
-          <a href="">a link</a>
-          <a href="#">another link</a>
-          <p>a paragraph</p>
-          <div>secret EVIL!</div>
-          of EVIL!
-          Password:
-          annoying EVIL!
-          <a href="evil-site">spam spam SPAM!</a>
-          <img src="evil!">
-        </div>
-      </body>
-    </html>
-
-The ``Cleaner`` class supports several keyword arguments to control exactly
-which content is removed:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html.clean import Cleaner
-
-    >>> cleaner = Cleaner(page_structure=False, links=False)
-    >>> print cleaner.clean_html(html)
-    <html>
-      <head>
-        <link rel="alternate" src="evil-rss" type="text/rss">
-        <style>/* deleted */</style>
-      </head>
-      <body>
-        <a href="">a link</a>
-        <a href="#">another link</a>
-        <p>a paragraph</p>
-        <div>secret EVIL!</div>
-        of EVIL!
-        Password:
-        annoying EVIL!
-        <a href="evil-site">spam spam SPAM!</a>
-        <img src="evil!">
-      </body>
-    </html>
-
-    >>> cleaner = Cleaner(style=True, links=True, add_nofollow=True,
-    ...                   page_structure=False, safe_attrs_only=False)
-    
-    >>> print cleaner.clean_html(html)
-    <html>
-      <head>
-      </head>
-      <body>
-        <a href="">a link</a>
-        <a href="#">another link</a>
-        <p>a paragraph</p>
-        <div>secret EVIL!</div>
-        of EVIL!
-        Password:
-        annoying EVIL!
-        <a href="evil-site" rel="nofollow">spam spam SPAM!</a>
-        <img src="evil!">
-      </body>
-    </html>
-
-You can also whitelist some otherwise dangerous content with
-``Cleaner(host_whitelist=['www.youtube.com'])``, which would allow
-embedded media from YouTube, while still filtering out embedded media
-from other sites.
-
-See the docstring of ``Cleaner`` for the details of what can be
-cleaned.
-
-
-autolink
---------
-
-In addition to cleaning up malicious HTML, ``lxml.html.clean``
-contains functions to do other things to your HTML.  This includes
-autolinking::
-
-   autolink(doc, ...)
-
-   autolink_html(html, ...)
-
-This finds anything that looks like a link (e.g.,
-``http://example.com``) in the *text* of an HTML document, and
-turns it into an anchor.  It avoids making bad links.
-
-Links in the elements ``<textarea>``, ``<pre>``, ``<code>``,
-anything in the head of the document.  You can pass in a list of
-elements to avoid in ``avoid_elements=['textarea', ...]``.
-
-Links to some hosts can be avoided.  By default links to
-``localhost*``, ``example.*`` and ``127.0.0.1`` are not
-autolinked.  Pass in ``avoid_hosts=[list_of_regexes]`` to control
-this.
-
-Elements with the ``nolink`` CSS class are not autolinked.  Pass
-in ``avoid_classes=['code', ...]`` to control this.
-
-The ``autolink_html()`` version of the function parses the HTML
-string first, and returns a string.
-
-
-wordwrap
---------
-
-You can also wrap long words in your html::
-
-   word_break(doc, max_width=40, ...)
-
-   word_break_html(html, ...)
-
-This finds any long words in the text of the document and inserts
-``&#8203;`` in the document (which is the Unicode zero-width space).
-
-This avoids the elements ``<pre>``, ``<textarea>``, and ``<code>``.
-You can control this with ``avoid_elements=['textarea', ...]``.
-
-It also avoids elements with the CSS class ``nobreak``.  You can
-control this with ``avoid_classes=['code', ...]``.
-
-Lastly you can control the character that is inserted with
-``break_character=u'\u200b'``.  However, you cannot insert markup,
-only text.
-
-``word_break_html(html)`` parses the HTML document and returns a
-string.
-
-HTML Diff
-=========
-
-The module ``lxml.html.diff`` offers some ways to visualize
-differences in HTML documents.  These differences are *content*
-oriented.  That is, changes in markup are largely ignored; only
-changes in the content itself are highlighted.
-
-There are two ways to view differences: ``htmldiff`` and
-``html_annotate``.  One shows differences with ``<ins>`` and
-``<del>``, while the other annotates a set of changes similar to ``svn
-blame``.  Both these functions operate on text, and work best with
-content fragments (only what goes in ``<body>``), not complete
-documents.
-
-Example of ``htmldiff``:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.html.diff import htmldiff, html_annotate
-    >>> doc1 = '''<p>Here is some text.</p>'''
-    >>> doc2 = '''<p>Here is <b>a lot</b> of <i>text</i>.</p>'''
-    >>> doc3 = '''<p>Here is <b>a little</b> <i>text</i>.</p>'''
-    >>> print htmldiff(doc1, doc2)
-    <p>Here is <ins><b>a lot</b> of <i>text</i>.</ins> <del>some text.</del> </p>
-    >>> print html_annotate([(doc1, 'author1'), (doc2, 'author2'),
-    ...                      (doc3, 'author3')])
-    <p><span title="author1">Here is</span>
-       <b><span title="author2">a</span>
-       <span title="author3">little</span></b>
-       <i><span title="author2">text</span></i>
-       <span title="author2">.</span></p>
-
-As you can see, it is imperfect as such things tend to be.  On larger
-tracts of text with larger edits it will generally do better.
-
-The ``html_annotate`` function can also take an optional second
-argument, ``markup``.  This is a function like ``markup(text,
-version)`` that returns the given text marked up with the given
-version.  The default version, the output of which you see in the
-example, looks like:
-
-.. sourcecode:: python
-
-    def default_markup(text, version):
-        return '<span title="%s">%s</span>' % (
-            cgi.escape(unicode(version), 1), text)
-
-Examples
-========
-
-Microformat Example
--------------------
-
-This example parses the `hCard <http://microformats.org/wiki/hcard>`_
-microformat.
-
-First we get the page:
-
-.. sourcecode:: pycon
-
-    >>> import urllib
-    >>> from lxml.html import fromstring
-    >>> url = 'http://microformats.org/'
-    >>> content = urllib.urlopen(url).read()
-    >>> doc = fromstring(content)
-    >>> doc.make_links_absolute(url)
-
-Then we create some objects to put the information in:
-
-.. sourcecode:: pycon
-
-    >>> class Card(object):
-    ...     def __init__(self, **kw):
-    ...         for name, value in kw:
-    ...             setattr(self, name, value)
-    >>> class Phone(object):
-    ...     def __init__(self, phone, types=()):
-    ...         self.phone, self.types = phone, types
-
-And some generally handy functions for microformats:
-
-.. sourcecode:: pycon
-
-    >>> def get_text(el, class_name):
-    ...     els = el.find_class(class_name)
-    ...     if els:
-    ...         return els[0].text_content()
-    ...     else:
-    ...         return ''
-    >>> def get_value(el):
-    ...     return get_text(el, 'value') or el.text_content()
-    >>> def get_all_texts(el, class_name):
-    ...     return [e.text_content() for e in els.find_class(class_name)]
-    >>> def parse_addresses(el):
-    ...     # Ideally this would parse street, etc.
-    ...     return el.find_class('adr')
-
-Then the parsing:
-
-.. sourcecode:: pycon
-
-    >>> for el in doc.find_class('hcard'):
-    ...     card = Card()
-    ...     card.el = el
-    ...     card.fn = get_text(el, 'fn')
-    ...     card.tels = []
-    ...     for tel_el in card.find_class('tel'):
-    ...         card.tels.append(Phone(get_value(tel_el),
-    ...                                get_all_texts(tel_el, 'type')))
-    ...     card.addresses = parse_addresses(el)
diff --git a/doc/sphinx/_sources/main.txt b/doc/sphinx/_sources/main.txt
deleted file mode 100644 (file)
index c89ddcd..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-lxml
-====
-
-.. meta::
-  :description: lxml - the most feature-rich and easy-to-use library for processing XML and HTML in the Python language
-  :keywords: Python XML, XML processing, HTML, lxml, simple XML, ElementTree, etree, lxml.etree, objectify, XML parsing, XML validation, XPath, XSLT
-
-.. class:: pagequote
-
-| `» lxml takes all the pain out of XML. Â« <http://thread.gmane.org/gmane.comp.python.lxml.devel/3252/focus=3258>`_
-| Stephan Richter
-
-.. class:: eyecatcher
-
-     lxml is the most feature-rich
-     and easy-to-use library
-     for processing XML and HTML
-     in the Python language.
-
-
-.. 
-   1  Introduction
-   2  Documentation
-   3  Download
-   4  Mailing list
-   5  Bug tracker
-   6  License
-   7  Old Versions
-
-
-Introduction
-------------
-
-The lxml XML toolkit is a Pythonic binding for the C libraries
-libxml2_ and libxslt_.  It is unique in that it combines the speed and
-XML feature completeness of these libraries with the simplicity of a
-native Python API, mostly compatible but superior to the well-known
-ElementTree_ API.  See the introduction_ for more information about
-background and goals of the lxml project.  Some common questions are
-answered in the FAQ_.
-
-For commercial consulting and customisations, please `contact Stefan Behnel`_.
-
-.. _`contact Stefan Behnel`: http://consulting.behnel.de/
-.. _libxml2: http://xmlsoft.org/
-.. _libxslt: http://xmlsoft.org/XSLT/
-
-.. _introduction: intro.html
-.. _FAQ:          FAQ.html
-
-
-Documentation
--------------
-
-The complete lxml documentation is available for download as `PDF
-documentation`_.  The HTML documentation from this web site is part of
-the normal `source download <#download>`_.
-
-* Tutorials:
-
-  * the `lxml.etree tutorial for XML processing`_
-
-  * John Shipman's tutorial on `Python XML processing with lxml`_
-
-  * Fredrik Lundh's `tutorial for ElementTree`_
-
-* ElementTree:
-
-  * `ElementTree API`_
-
-  * compatibility_ and differences of lxml.etree
-
-  * `ElementTree performance`_ characteristics and comparison
-
-* lxml.etree:
-
-  * `lxml.etree specific API`_ documentation
-
-  * the `generated API documentation`_ as a reference
-
-  * parsing_ and validating_ XML
-
-  * `XPath and XSLT`_ support
-
-  * Python `XPath extension functions`_ for XPath and XSLT
-
-  * `custom XML element classes`_ for custom XML APIs (see `EuroPython 2008 talk`_)
-
-  * a `SAX compliant API`_ for interfacing with other XML tools
-
-  * a `C-level API`_ for interfacing with external C/Cython modules
-
-* lxml.objectify:
-
-  * `lxml.objectify`_ API documentation
-
-  * a brief comparison of `objectify and etree`_
-
-lxml.etree follows the ElementTree_ API as much as possible, building
-it on top of the native libxml2 tree.  If you are new to ElementTree,
-start with the `lxml.etree tutorial for XML processing`_.  See also the
-ElementTree compatibility_ overview and the `ElementTree performance`_
-page comparing lxml to the original ElementTree_ and cElementTree_
-implementations.
-
-Right after the `lxml.etree tutorial for XML processing`_ and the
-ElementTree_ documentation, the next place to look is the `lxml.etree
-specific API`_ documentation.  It describes how lxml extends the
-ElementTree API to expose libxml2 and libxslt specific XML
-functionality, such as XPath_, `Relax NG`_, `XML Schema`_, XSLT_, and
-`c14n`_.  Python code can be called from XPath expressions and XSLT
-stylesheets through the use of `XPath extension functions`_.  lxml
-also offers a `SAX compliant API`_, that works with the SAX support in
-the standard library.
-
-There is a separate module `lxml.objectify`_ that implements a data-binding
-API on top of lxml.etree.  See the `objectify and etree`_ FAQ entry for a
-comparison.
-
-In addition to the ElementTree API, lxml also features a sophisticated
-API for `custom XML element classes`_.  This is a simple way to write
-arbitrary XML driven APIs on top of lxml.  lxml.etree also has a
-`C-level API`_ that can be used to efficiently extend lxml.etree in
-external C modules, including fast custom element class support.
-
-.. _ElementTree:  http://effbot.org/zone/element-index.htm
-.. _`ElementTree API`:  http://effbot.org/zone/element-index.htm#documentation
-.. _cElementTree: http://effbot.org/zone/celementtree.htm
-
-.. _`tutorial for ElementTree`: http://effbot.org/zone/element.htm
-.. _`lxml.etree tutorial for XML processing`: tutorial.html
-.. _`Python XML processing with lxml`: http://www.nmt.edu/tcc/help/pubs/pylxml/
-.. _`generated API documentation`:   api/index.html
-.. _`ElementTree performance`: performance.html
-.. _`compatibility`: compatibility.html
-.. _`lxml.etree specific API`: api.html
-.. _`parsing`: parsing.html
-.. _`validating`: validation.html
-.. _`XPath and XSLT`: xpathxslt.html
-.. _`XPath extension functions`: extensions.html
-.. _`custom XML element classes`: element_classes.html
-.. _`SAX compliant API`: sax.html
-.. _`C-level API`: capi.html
-.. _`lxml.objectify`: objectify.html
-.. _`objectify and etree`: FAQ.html#what-is-the-difference-between-lxml-etree-and-lxml-objectify
-.. _`EuroPython 2008 talk`: s5/lxml-ep2008.html
-
-.. _XPath: http://www.w3.org/TR/xpath/
-.. _`Relax NG`: http://www.relaxng.org/
-.. _`XML Schema`: http://www.w3.org/XML/Schema
-.. _`XSLT`: http://www.w3.org/TR/xslt
-.. _`c14n`: http://www.w3.org/TR/xml-c14n
-
-
-Download
---------
-
-The best way to download lxml is to visit `lxml at the Python Package
-Index`_ (PyPI).  It has the source that compiles on various platforms.
-The source distribution is signed with `this key`_.  Binary builds for
-MS Windows usually become available through PyPI a few days after a
-source release.  If you can't wait, consider trying a less recent
-release version first.
-
-The latest version is `lxml 2.3`_, released 2011-02-06
-(`changes for 2.3`_).  `Older versions`_ are listed below.
-
-Please take a look at the `installation instructions`_!
-
-This complete web site (including the generated API documentation) is
-part of the source distribution, so if you want to download the
-documentation for offline use, take the source archive and copy the
-``doc/html`` directory out of the source tree.
-
-It's also possible to check out the latest development version of lxml
-from github directly, using a command like this (assuming you use hg
-and have hg-git installed)::
-
-  hg clone https://github.com/lxml/lxml.git lxml
-
-You can also browse the `source repository`_ and its history through
-the web.  Please read `how to build lxml from source`_ first.  The
-`latest CHANGES`_ of the developer version are also accessible.  You
-can check there if a bug you found has been fixed or a feature you
-want has been implemented in the latest trunk version.
-
-.. _`lxml at the Python Package Index`: http://pypi.python.org/pypi/lxml/
-.. _`this key`: pubkey.asc
-.. _`Older versions`: #old-versions
-.. _`installation instructions`: installation.html
-.. _`how to build lxml from source`: build.html
-.. _`source repository`: https://github.com/lxml/lxml/
-.. _`latest CHANGES`: https://github.com/lxml/lxml/blob/master/CHANGES.txt
-
-
-Mailing list
-------------
-
-Questions? Suggestions? Code to contribute? We have a `mailing list`_.
-
-You can search the archive with Gmane_ or Google_.
-
-.. _`mailing list`: http://lxml.de/mailinglist/
-.. _Gmane: http://blog.gmane.org/gmane.comp.python.lxml.devel
-.. _Google: http://www.google.com/webhp?q=site:comments.gmane.org%2Fgmane.comp.python.lxml.devel+
-
-
-Bug tracker
------------
-
-lxml uses the `launchpad bug tracker`_.  If you are sure you found a
-bug in lxml, please file a bug report there.  If you are not sure
-whether some unexpected behaviour of lxml is a bug or not, please
-check the documentation and ask on the `mailing list`_ first.  Do not
-forget to search the archive (e.g. with Gmane_)!
-
-.. _`launchpad bug tracker`: https://launchpad.net/lxml/
-
-
-License
--------
-
-The lxml library is shipped under a `BSD license`_. libxml2 and libxslt2
-itself are shipped under the `MIT license`_. There should therefore be no
-obstacle to using lxml in your codebase.
-
-.. _`BSD license`: https://github.com/lxml/lxml/blob/master/doc/licenses/BSD.txt
-.. _`MIT license`: http://www.opensource.org/licenses/mit-license.html
-
-
-Old Versions
-------------
-
-See the web sites of lxml `1.3 <http://lxml.de/1.3/>`_, `2.0
-<http://lxml.de/2.0/>`_, `2.1 <http://lxml.de/2.1/>`_, `2.2
-<http://lxml.de/2.2/>`_ and the `latest in-development version
-<http://lxml.de/dev/>`_
-
-.. _`PDF documentation`: lxmldoc-2.3.pdf
-
-* `lxml 2.3beta1`_, released 2010-09-06 (`changes for 2.3beta1`_)
-
-* `lxml 2.3alpha2`_, released 2010-07-24 (`changes for 2.3alpha2`_)
-
-* `lxml 2.3alpha1`_, released 2010-06-19 (`changes for 2.3alpha1`_)
-
-* `lxml 2.2.8`_, released 2010-09-02 (`changes for 2.2.8`_)
-
-* `lxml 2.2.7`_, released 2010-07-24 (`changes for 2.2.7`_)
-
-* `lxml 2.2.6`_, released 2010-03-02 (`changes for 2.2.6`_)
-
-* `lxml 2.2.5`_, released 2010-02-28 (`changes for 2.2.5`_)
-
-* `lxml 2.2.4`_, released 2009-11-11 (`changes for 2.2.4`_)
-
-* `lxml 2.2.3`_, released 2009-10-30 (`changes for 2.2.3`_)
-
-* `lxml 2.2.2`_, released 2009-06-21 (`changes for 2.2.2`_)
-
-* `lxml 2.2.1`_, released 2009-06-02 (`changes for 2.2.1`_)
-
-* `lxml 2.2`_, released 2009-03-21 (`changes for 2.2`_)
-
-* `older releases <http://lxml.de/2.2/#old-versions>`_
-
-.. _`lxml 2.3`: /files/lxml-2.3.tgz
-.. _`lxml 2.3beta1`: /files/lxml-2.3beta1.tgz
-.. _`lxml 2.3alpha2`: /files/lxml-2.3alpha2.tgz
-.. _`lxml 2.3alpha1`: /files/lxml-2.3alpha1.tgz
-.. _`lxml 2.2.8`: /files/lxml-2.2.8.tgz
-.. _`lxml 2.2.7`: /files/lxml-2.2.7.tgz
-.. _`lxml 2.2.6`: /files/lxml-2.2.6.tgz
-.. _`lxml 2.2.5`: /files/lxml-2.2.5.tgz
-.. _`lxml 2.2.4`: /files/lxml-2.2.4.tgz
-.. _`lxml 2.2.3`: /files/lxml-2.2.3.tgz
-.. _`lxml 2.2.2`: /files/lxml-2.2.2.tgz
-.. _`lxml 2.2.1`: /files/lxml-2.2.1.tgz
-.. _`lxml 2.2`: /files/lxml-2.2.tgz
-
-.. _`changes for 2.3`: /changes-2.3.html
-.. _`changes for 2.3beta1`: /changes-2.3beta1.html
-.. _`changes for 2.3alpha2`: /changes-2.3alpha2.html
-.. _`changes for 2.3alpha1`: /changes-2.3alpha1.html
-.. _`changes for 2.2.8`: /changes-2.2.8.html
-.. _`changes for 2.2.7`: /changes-2.2.7.html
-.. _`changes for 2.2.6`: /changes-2.2.6.html
-.. _`changes for 2.2.5`: /changes-2.2.5.html
-.. _`changes for 2.2.4`: /changes-2.2.4.html
-.. _`changes for 2.2.3`: /changes-2.2.3.html
-.. _`changes for 2.2.2`: /changes-2.2.2.html
-.. _`changes for 2.2.1`: /changes-2.2.1.html
-.. _`changes for 2.2`: /changes-2.2.html
diff --git a/doc/sphinx/_sources/memorymanagement.txt b/doc/sphinx/_sources/memorymanagement.txt
deleted file mode 100644 (file)
index 07603d0..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-Memory management
-=================
-
-There can be two types of nodes:
-
-* those connected to an existing tree
-
-* those unconnected. These may be the top node of a tree
-
-Nodes consist of a C-level libxml2 node, Node for short, and
-optionally a Python-level proxy node, Proxy. Zero, one or more Proxies can
-exist for a single Node.
-
-Proxies are garbage collected automatically by Python. Nodes are not
-garbage collected at all. Instead, explicit mechanisms exist for
-Nodes to clear them and the tree they may be the top of.
-
-A Node can be safely freed when:
-
-* no Proxy is connected to this Node
-
-* no Proxy cannot be created for this Node
-
-A Proxy cannot be created to a CNode when:
-
-* no Proxy exist for nodes that are connected to that Node
-
-This is the case when:
-
-* the Node is in a tree that has no Proxy connected to any of the nodes.
-
-This means that the whole tree in such a condition can be freed.
-
-Detecting whether a Node is in a tree thas has no Proxies connected to
-it can be done by relying on Python's garbage collection
-algorithm. Each Proxy can have a reference to the Proxy that points to
-the top of the tree. In case of a document tree, this reference is to
-the Document Proxy. When no more references exist in the system to the
-top Proxy, this means no more Proxies exist that point to the Node
-tree the top Proxy is the top of. If this Node tree is unconnected;
-i.e. it is not a subtree, this means that tree can be safely garbage
-collected.
-
-A special case exists for document references. Each Proxy will always
-have a reference to the Document Proxy, as any Node will have such a
-reference to the Document Node. This means that a Document Node can
-only be garbage collected when no more Proxies at all exist anymore
-which refer to the Document. This is a separate system from the
-top-Node references, even though the top-node in many cases will be
-the Document. This because there is no way to get to a node that is
-not connected to the Document tree from a Document Proxy.
-
-This approach requires a system that can keep track of the top of the
-tree in any case. Usually this is simple: when a Proxy gets connected,
-the tree top becomes the tree top of whatever node it is connected
-to. 
-
-Sometimes this is more difficult: a Proxy may exist pointing to a node
-in a subtree that just got connected. The top reference cannot be
-updated. This is a problem in the following case:
-
-    a
-  b    c         h
-d  e  f  g     i  j
-              k
-
-now imagine we have a proxy to k, K, and a proxy of i, I. They both
-have a pointer to proxy H.
-
-Now imagine i gets moved under g through proxy I. Proxy I will have an
-updated pointer to proxy A. However, proxy K cannot be updated and still
-points to H, from which it is now in fact disconnected.
-
-proxy H cannot be removed now until proxy A is removed. In addition,
-proxy A has a refcount that is too low because proxy K doesn't point
-to it but should.
-
-Another strategy involves having a reference count on the underlying
-nodes, one per proxy. A node can only be freed if there is no
-descendant-or-self that has the refcount higher than 0. A node, when
-no more Python references to it exist, will check for refcounts first.
-The drawback of this is potentially heavy tree-walking each time a proxy
-can be removed.
diff --git a/doc/sphinx/_sources/objectify.txt b/doc/sphinx/_sources/objectify.txt
deleted file mode 100644 (file)
index b514afb..0000000
+++ /dev/null
@@ -1,1400 +0,0 @@
-==============
-lxml.objectify
-==============
-
-:Authors:
-  Stefan Behnel, Holger Joukl
-
-lxml supports an alternative API similar to the Amara_ bindery or
-gnosis.xml.objectify_ through a custom Element implementation.  The main idea
-is to hide the usage of XML behind normal Python objects, sometimes referred
-to as data-binding.  It allows you to use XML as if you were dealing with a
-normal Python object hierarchy.
-
-Accessing the children of an XML element deploys object attribute access.  If
-there are multiple children with the same name, slicing and indexing can be
-used.  Python data types are extracted from XML content automatically and made
-available to the normal Python operators.
-
-.. contents::
-..
-   1  The lxml.objectify API
-     1.1  Creating objectify trees
-     1.2  Element access through object attributes
-     1.3  Tree generation with the E-factory
-     1.4  Namespace handling
-   2  Asserting a Schema
-   3  ObjectPath
-   4  Python data types
-     4.1  Recursive tree dump
-     4.2  Recursive string representation of elements
-   5  How data types are matched
-     5.1  Type annotations
-     5.2  XML Schema datatype annotation
-     5.3  The DataElement factory
-     5.4  Defining additional data classes
-     5.5  Advanced element class lookup
-   6  What is different from lxml.etree?
-
-.. _Amara: http://uche.ogbuji.net/tech/4suite/amara/
-.. _gnosis.xml.objectify: http://gnosis.cx/download/
-.. _`benchmark page`: performance.html#lxml-objectify
-
-
-To set up and use ``objectify``, you need both the ``lxml.etree``
-module and ``lxml.objectify``:
-
-.. sourcecode:: pycon
-
-    >>> from lxml import etree
-    >>> from lxml import objectify
-
-The objectify API is very different from the ElementTree API.  If it
-is used, it should not be mixed with other element implementations
-(such as trees parsed with ``lxml.etree``), to avoid non-obvious
-behaviour.
-
-The `benchmark page`_ has some hints on performance optimisation of
-code using lxml.objectify.
-
-To make the doctests in this document look a little nicer, we also use
-this:
-
-.. sourcecode:: pycon
-
-    >>> import lxml.usedoctest
-
-Imported from within a doctest, this relieves us from caring about the exact
-formatting of XML output.
-
-..
-    >>> try: from StringIO import StringIO
-    ... except ImportError:
-    ...     from io import BytesIO # Python 3
-    ...     def StringIO(s):
-    ...         if isinstance(s, str): s = s.encode('UTF-8')
-    ...         return BytesIO(s)
-
-..
-  >>> import sys
-  >>> from lxml import etree as _etree
-  >>> if sys.version_info[0] >= 3:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if isinstance(s, bytes) and bytes([10]) in s: s = s.decode("utf-8") # CR
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  ... else:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  >>> etree = etree_mock()
-
-
-The lxml.objectify API
-======================
-
-In ``lxml.objectify``, element trees provide an API that models the behaviour
-of normal Python object trees as closely as possible.
-
-
-Creating objectify trees
-------------------------
-
-As with ``lxml.etree``, you can either create an ``objectify`` tree by
-parsing an XML document or by building one from scratch.  To parse a
-document, just use the ``parse()`` or ``fromstring()`` functions of
-the module:
-
-.. sourcecode:: pycon
-
-    >>> fileobject = StringIO('<test/>')
-
-    >>> tree = objectify.parse(fileobject)
-    >>> print(isinstance(tree.getroot(), objectify.ObjectifiedElement))
-    True
-
-    >>> root = objectify.fromstring('<test/>')
-    >>> print(isinstance(root, objectify.ObjectifiedElement))
-    True
-
-To build a new tree in memory, ``objectify`` replicates the standard
-factory function ``Element()`` from ``lxml.etree``:
-
-.. sourcecode:: pycon
-
-    >>> obj_el = objectify.Element("new")
-    >>> print(isinstance(obj_el, objectify.ObjectifiedElement))
-    True
-
-After creating such an Element, you can use the `usual API`_ of
-lxml.etree to add SubElements to the tree:
-
-.. sourcecode:: pycon
-
-    >>> child = etree.SubElement(obj_el, "newchild", attr="value")
-
-.. _`usual API`: tutorial.html#the-element-class
-
-New subelements will automatically inherit the objectify behaviour
-from their tree.  However, all independent elements that you create
-through the ``Element()`` factory of lxml.etree (instead of objectify)
-will not support the ``objectify`` API by themselves:
-
-.. sourcecode:: pycon
-
-    >>> subel = etree.SubElement(obj_el, "sub")
-    >>> print(isinstance(subel, objectify.ObjectifiedElement))
-    True
-
-    >>> independent_el = etree.Element("new")
-    >>> print(isinstance(independent_el, objectify.ObjectifiedElement))
-    False
-
-
-Element access through object attributes
-----------------------------------------
-
-The main idea behind the ``objectify`` API is to hide XML element access
-behind the usual object attribute access pattern.  Asking an element for an
-attribute will return the sequence of children with corresponding tag names:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.Element("root")
-    >>> b = etree.SubElement(root, "b")
-    >>> print(root.b[0].tag)
-    b
-    >>> root.index(root.b[0])
-    0
-    >>> b = etree.SubElement(root, "b")
-    >>> print(root.b[0].tag)
-    b
-    >>> print(root.b[1].tag)
-    b
-    >>> root.index(root.b[1])
-    1
-
-For convenience, you can omit the index '0' to access the first child:
-
-.. sourcecode:: pycon
-
-    >>> print(root.b.tag)
-    b
-    >>> root.index(root.b)
-    0
-    >>> del root.b
-
-Iteration and slicing also obey the requested tag:
-
-.. sourcecode:: pycon
-
-    >>> x1 = etree.SubElement(root, "x")
-    >>> x2 = etree.SubElement(root, "x")
-    >>> x3 = etree.SubElement(root, "x")
-
-    >>> [ el.tag for el in root.x ]
-    ['x', 'x', 'x']
-
-    >>> [ el.tag for el in root.x[1:3] ]
-    ['x', 'x']
-
-    >>> [ el.tag for el in root.x[-1:] ]
-    ['x']
-
-    >>> del root.x[1:2]
-    >>> [ el.tag for el in root.x ]
-    ['x', 'x']
-
-If you want to iterate over all children or need to provide a specific
-namespace for the tag, use the ``iterchildren()`` method.  Like the other
-methods for iteration, it supports an optional tag keyword argument:
-
-.. sourcecode:: pycon
-
-    >>> [ el.tag for el in root.iterchildren() ]
-    ['b', 'x', 'x']
-
-    >>> [ el.tag for el in root.iterchildren(tag='b') ]
-    ['b']
-
-    >>> [ el.tag for el in root.b ]
-    ['b']
-
-XML attributes are accessed as in the normal ElementTree API:
-
-.. sourcecode:: pycon
-
-    >>> c = etree.SubElement(root, "c", myattr="someval")
-    >>> print(root.c.get("myattr"))
-    someval
-
-    >>> root.c.set("c", "oh-oh")
-    >>> print(root.c.get("c"))
-    oh-oh
-
-In addition to the normal ElementTree API for appending elements to trees,
-subtrees can also be added by assigning them to object attributes.  In this
-case, the subtree is automatically deep copied and the tag name of its root is
-updated to match the attribute name:
-
-.. sourcecode:: pycon
-
-    >>> el = objectify.Element("yet_another_child")
-    >>> root.new_child = el
-    >>> print(root.new_child.tag)
-    new_child
-    >>> print(el.tag)
-    yet_another_child
-
-    >>> root.y = [ objectify.Element("y"), objectify.Element("y") ]
-    >>> [ el.tag for el in root.y ]
-    ['y', 'y']
-
-The latter is a short form for operations on the full slice:
-
-.. sourcecode:: pycon
-
-    >>> root.y[:] = [ objectify.Element("y") ]
-    >>> [ el.tag for el in root.y ]
-    ['y']
-
-You can also replace children that way:
-
-.. sourcecode:: pycon
-
-    >>> child1 = etree.SubElement(root, "child")
-    >>> child2 = etree.SubElement(root, "child")
-    >>> child3 = etree.SubElement(root, "child")
-
-    >>> el = objectify.Element("new_child")
-    >>> subel = etree.SubElement(el, "sub")
-
-    >>> root.child = el
-    >>> print(root.child.sub.tag)
-    sub
-
-    >>> root.child[2] = el
-    >>> print(root.child[2].sub.tag)
-    sub
-
-Note that special care must be taken when changing the tag name of an element:
-
-.. sourcecode:: pycon
-
-    >>> print(root.b.tag)
-    b
-    >>> root.b.tag = "notB"
-    >>> root.b
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: b
-    >>> print(root.notB.tag)
-    notB
-
-
-Tree generation with the E-factory
-----------------------------------
-
-To simplify the generation of trees even further, you can use the E-factory:
-
-.. sourcecode:: pycon
-
-    >>> E = objectify.E
-    >>> root = E.root(
-    ...   E.a(5),
-    ...   E.b(6.1),
-    ...   E.c(True),
-    ...   E.d("how", tell="me")
-    ... )
-
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns:py="http://codespeak.net/lxml/objectify/pytype">
-      <a py:pytype="int">5</a>
-      <b py:pytype="float">6.1</b>
-      <c py:pytype="bool">true</c>
-      <d py:pytype="str" tell="me">how</d>
-    </root>
-
-This allows you to write up a specific language in tags:
-
-.. sourcecode:: pycon
-
-    >>> ROOT = objectify.E.root
-    >>> TITLE = objectify.E.title
-    >>> HOWMANY = getattr(objectify.E, "how-many")
-
-    >>> root = ROOT(
-    ...   TITLE("The title"),
-    ...   HOWMANY(5)
-    ... )
-
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns:py="http://codespeak.net/lxml/objectify/pytype">
-      <title py:pytype="str">The title</title>
-      <how-many py:pytype="int">5</how-many>
-    </root>
-
-``objectify.E`` is an instance of ``objectify.ElementMaker``.  By default, it
-creates pytype annotated Elements without a namespace.  You can switch off the
-pytype annotation by passing False to the ``annotate`` keyword argument of the
-constructor.  You can also pass a default namespace and an ``nsmap``:
-
-.. sourcecode:: pycon
-
-    >>> myE = objectify.ElementMaker(annotate=False,
-    ...           namespace="http://my/ns", nsmap={None : "http://my/ns"})
-
-    >>> root = myE.root( myE.someint(2) )
-
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns="http://my/ns">
-      <someint>2</someint>
-    </root>
-
-
-Namespace handling
-------------------
-
-During tag lookups, namespaces are handled mostly behind the scenes.
-If you access a child of an Element without specifying a namespace,
-the lookup will use the namespace of the parent:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.Element("{http://ns/}root")
-    >>> b = etree.SubElement(root, "{http://ns/}b")
-    >>> c = etree.SubElement(root, "{http://other/}c")
-
-    >>> print(root.b.tag)
-    {http://ns/}b
-
-Note that the ``SubElement()`` factory of ``lxml.etree`` does not
-inherit any namespaces when creating a new subelement.  Element
-creation must be explicit about the namespace, and is simplified
-through the E-factory as described above.
-
-Lookups, however, inherit namespaces implicitly:
-
-.. sourcecode:: pycon
-
-    >>> print(root.b.tag)
-    {http://ns/}b
-
-    >>> print(root.c)
-    Traceback (most recent call last):
-        ...
-    AttributeError: no such child: {http://ns/}c
-
-To access an element in a different namespace than its parent, you can
-use ``getattr()``:
-
-.. sourcecode:: pycon
-
-    >>> c = getattr(root, "{http://other/}c")
-    >>> print(c.tag)
-    {http://other/}c
-
-For convenience, there is also a quick way through item access:
-
-.. sourcecode:: pycon
-
-    >>> c = root["{http://other/}c"]
-    >>> print(c.tag)
-    {http://other/}c
-
-The same approach must be used to access children with tag names that are not
-valid Python identifiers:
-
-.. sourcecode:: pycon
-
-    >>> el = etree.SubElement(root, "{http://ns/}tag-name")
-    >>> print(root["tag-name"].tag)
-    {http://ns/}tag-name
-
-    >>> new_el = objectify.Element("{http://ns/}new-element")
-    >>> el = etree.SubElement(new_el, "{http://ns/}child")
-    >>> el = etree.SubElement(new_el, "{http://ns/}child")
-    >>> el = etree.SubElement(new_el, "{http://ns/}child")
-
-    >>> root["tag-name"] = [ new_el, new_el ]
-    >>> print(len(root["tag-name"]))
-    2
-    >>> print(root["tag-name"].tag)
-    {http://ns/}tag-name
-
-    >>> print(len(root["tag-name"].child))
-    3
-    >>> print(root["tag-name"].child.tag)
-    {http://ns/}child
-    >>> print(root["tag-name"][1].child.tag)
-    {http://ns/}child
-
-or for names that have a special meaning in lxml.objectify:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.XML("<root><text>TEXT</text></root>")
-
-    >>> print(root.text.text)
-    Traceback (most recent call last):
-      ...
-    AttributeError: 'NoneType' object has no attribute 'text'
-
-    >>> print(root["text"].text)
-    TEXT
-
-
-Asserting a Schema
-==================
-
-When dealing with XML documents from different sources, you will often
-require them to follow a common schema.  In lxml.objectify, this
-directly translates to enforcing a specific object tree, i.e. expected
-object attributes are ensured to be there and to have the expected
-type.  This can easily be achieved through XML Schema validation at
-parse time.  Also see the `documentation on validation`_ on this
-topic.
-
-.. _`documentation on validation`: validation.html
-
-First of all, we need a parser that knows our schema, so let's say we
-parse the schema from a file-like object (or file or filename):
-
-.. sourcecode:: pycon
-
-    >>> f = StringIO('''\
-    ...   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    ...     <xsd:element name="a" type="AType"/>
-    ...     <xsd:complexType name="AType">
-    ...       <xsd:sequence>
-    ...         <xsd:element name="b" type="xsd:string" />
-    ...       </xsd:sequence>
-    ...     </xsd:complexType>
-    ...   </xsd:schema>
-    ... ''')
-    >>> schema = etree.XMLSchema(file=f)
-
-When creating the validating parser, we must make sure it `returns
-objectify trees`_.  This is best done with the ``makeparser()``
-function:
-
-.. sourcecode:: pycon
-
-    >>> parser = objectify.makeparser(schema = schema)
-
-.. _`returns objectify trees`: #advance-element-class-lookup
-
-Now we can use it to parse a valid document:
-
-.. sourcecode:: pycon
-
-    >>> xml = "<a><b>test</b></a>"
-    >>> a = objectify.fromstring(xml, parser)
-
-    >>> print(a.b)
-    test
-
-Or an invalid document:
-
-.. sourcecode:: pycon
-
-    >>> xml = "<a><b>test</b><c/></a>"
-    >>> a = objectify.fromstring(xml, parser)
-    Traceback (most recent call last):
-    lxml.etree.XMLSyntaxError: Element 'c': This element is not expected.
-
-Note that the same works for parse-time DTD validation, except that
-DTDs do not support any data types by design.
-
-
-ObjectPath
-==========
-
-For both convenience and speed, objectify supports its own path language,
-represented by the ``ObjectPath`` class:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.Element("{http://ns/}root")
-    >>> b1 = etree.SubElement(root, "{http://ns/}b")
-    >>> c  = etree.SubElement(b1,   "{http://ns/}c")
-    >>> b2 = etree.SubElement(root, "{http://ns/}b")
-    >>> d  = etree.SubElement(root, "{http://other/}d")
-
-    >>> path = objectify.ObjectPath("root.b.c")
-    >>> print(path)
-    root.b.c
-    >>> path.hasattr(root)
-    True
-    >>> print(path.find(root).tag)
-    {http://ns/}c
-
-    >>> find = objectify.ObjectPath("root.b.c")
-    >>> print(find(root).tag)
-    {http://ns/}c
-
-    >>> find = objectify.ObjectPath("root.{http://other/}d")
-    >>> print(find(root).tag)
-    {http://other/}d
-
-    >>> find = objectify.ObjectPath("root.{not}there")
-    >>> print(find(root).tag)
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: {not}there
-
-    >>> find = objectify.ObjectPath("{not}there")
-    >>> print(find(root).tag)
-    Traceback (most recent call last):
-      ...
-    ValueError: root element does not match: need {not}there, got {http://ns/}root
-
-    >>> find = objectify.ObjectPath("root.b[1]")
-    >>> print(find(root).tag)
-    {http://ns/}b
-
-    >>> find = objectify.ObjectPath("root.{http://ns/}b[1]")
-    >>> print(find(root).tag)
-    {http://ns/}b
-
-Apart from strings, ObjectPath also accepts lists of path segments:
-
-.. sourcecode:: pycon
-
-    >>> find = objectify.ObjectPath(['root', 'b', 'c'])
-    >>> print(find(root).tag)
-    {http://ns/}c
-
-    >>> find = objectify.ObjectPath(['root', '{http://ns/}b[1]'])
-    >>> print(find(root).tag)
-    {http://ns/}b
-
-You can also use relative paths starting with a '.' to ignore the actual root
-element and only inherit its namespace:
-
-.. sourcecode:: pycon
-
-    >>> find = objectify.ObjectPath(".b[1]")
-    >>> print(find(root).tag)
-    {http://ns/}b
-
-    >>> find = objectify.ObjectPath(['', 'b[1]'])
-    >>> print(find(root).tag)
-    {http://ns/}b
-
-    >>> find = objectify.ObjectPath(".unknown[1]")
-    >>> print(find(root).tag)
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: {http://ns/}unknown
-
-    >>> find = objectify.ObjectPath(".{http://other/}unknown[1]")
-    >>> print(find(root).tag)
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: {http://other/}unknown
-
-For convenience, a single dot represents the empty ObjectPath (identity):
-
-.. sourcecode:: pycon
-
-    >>> find = objectify.ObjectPath(".")
-    >>> print(find(root).tag)
-    {http://ns/}root
-
-ObjectPath objects can be used to manipulate trees:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.Element("{http://ns/}root")
-
-    >>> path = objectify.ObjectPath(".some.child.{http://other/}unknown")
-    >>> path.hasattr(root)
-    False
-    >>> path.find(root)
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: {http://ns/}some
-
-    >>> path.setattr(root, "my value") # creates children as necessary
-    >>> path.hasattr(root)
-    True
-    >>> print(path.find(root).text)
-    my value
-    >>> print(root.some.child["{http://other/}unknown"].text)
-    my value
-
-    >>> print(len( path.find(root) ))
-    1
-    >>> path.addattr(root, "my new value")
-    >>> print(len( path.find(root) ))
-    2
-    >>> [ el.text for el in path.find(root) ]
-    ['my value', 'my new value']
-
-As with attribute assignment, ``setattr()`` accepts lists:
-
-.. sourcecode:: pycon
-
-    >>> path.setattr(root, ["v1", "v2", "v3"])
-    >>> [ el.text for el in path.find(root) ]
-    ['v1', 'v2', 'v3']
-
-
-Note, however, that indexing is only supported in this context if the children
-exist.  Indexing of non existing children will not extend or create a list of
-such children but raise an exception:
-
-.. sourcecode:: pycon
-
-    >>> path = objectify.ObjectPath(".{non}existing[1]")
-    >>> path.setattr(root, "my value")
-    Traceback (most recent call last):
-      ...
-    TypeError: creating indexed path attributes is not supported
-
-It is worth noting that ObjectPath does not depend on the ``objectify`` module
-or the ObjectifiedElement implementation.  It can also be used in combination
-with Elements from the normal lxml.etree API.
-
-
-Python data types
-=================
-
-The objectify module knows about Python data types and tries its best to let
-element content behave like them.  For example, they support the normal math
-operators:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring(
-    ...             "<root><a>5</a><b>11</b><c>true</c><d>hoi</d></root>")
-    >>> root.a + root.b
-    16
-    >>> root.a += root.b
-    >>> print(root.a)
-    16
-
-    >>> root.a = 2
-    >>> print(root.a + 2)
-    4
-    >>> print(1 + root.a)
-    3
-
-    >>> print(root.c)
-    True
-    >>> root.c = False
-    >>> if not root.c:
-    ...     print("false!")
-    false!
-
-    >>> print(root.d + " test !")
-    hoi test !
-    >>> root.d = "%s - %s"
-    >>> print(root.d % (1234, 12345))
-    1234 - 12345
-
-However, data elements continue to provide the objectify API.  This means that
-sequence operations such as ``len()``, slicing and indexing (e.g. of strings)
-cannot behave as the Python types.  Like all other tree elements, they show
-the normal slicing behaviour of objectify elements:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring("<root><a>test</a><b>toast</b></root>")
-    >>> print(root.a + ' me') # behaves like a string, right?
-    test me
-    >>> len(root.a) # but there's only one 'a' element!
-    1
-    >>> [ a.tag for a in root.a ]
-    ['a']
-    >>> print(root.a[0].tag)
-    a
-
-    >>> print(root.a)
-    test
-    >>> [ str(a) for a in root.a[:1] ]
-    ['test']
-
-If you need to run sequence operations on data types, you must ask the API for
-the *real* Python value.  The string value is always available through the
-normal ElementTree ``.text`` attribute.  Additionally, all data classes
-provide a ``.pyval`` attribute that returns the value as plain Python type:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring("<root><a>test</a><b>5</b></root>")
-    >>> root.a.text
-    'test'
-    >>> root.a.pyval
-    'test'
-
-    >>> root.b.text
-    '5'
-    >>> root.b.pyval
-    5
-
-Note, however, that both attributes are read-only in objectify.  If you want
-to change values, just assign them directly to the attribute:
-
-.. sourcecode:: pycon
-
-    >>> root.a.text  = "25"
-    Traceback (most recent call last):
-      ...
-    TypeError: attribute 'text' of 'StringElement' objects is not writable
-
-    >>> root.a.pyval = 25
-    Traceback (most recent call last):
-      ...
-    TypeError: attribute 'pyval' of 'StringElement' objects is not writable
-
-    >>> root.a = 25
-    >>> print(root.a)
-    25
-    >>> print(root.a.pyval)
-    25
-
-In other words, ``objectify`` data elements behave like immutable Python
-types.  You can replace them, but not modify them.
-
-
-Recursive tree dump
--------------------
-
-To see the data types that are currently used, you can call the module level
-``dump()`` function that returns a recursive string representation for
-elements:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring("""
-    ... <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    ...   <a attr1="foo" attr2="bar">1</a>
-    ...   <a>1.2</a>
-    ...   <b>1</b>
-    ...   <b>true</b>
-    ...   <c>what?</c>
-    ...   <d xsi:nil="true"/>
-    ... </root>
-    ... """)
-
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 1 [IntElement]
-          * attr1 = 'foo'
-          * attr2 = 'bar'
-        a = 1.2 [FloatElement]
-        b = 1 [IntElement]
-        b = True [BoolElement]
-        c = 'what?' [StringElement]
-        d = None [NoneElement]
-          * xsi:nil = 'true'
-
-You can freely switch between different types for the same child:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring("<root><a>5</a></root>")
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 5 [IntElement]
-
-    >>> root.a = 'nice string!'
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 'nice string!' [StringElement]
-          * py:pytype = 'str'
-
-    >>> root.a = True
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = True [BoolElement]
-          * py:pytype = 'bool'
-
-    >>> root.a = [1, 2, 3]
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 1 [IntElement]
-          * py:pytype = 'int'
-        a = 2 [IntElement]
-          * py:pytype = 'int'
-        a = 3 [IntElement]
-          * py:pytype = 'int'
-
-    >>> root.a = (1, 2, 3)
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 1 [IntElement]
-          * py:pytype = 'int'
-        a = 2 [IntElement]
-          * py:pytype = 'int'
-        a = 3 [IntElement]
-          * py:pytype = 'int'
-
-
-Recursive string representation of elements
--------------------------------------------
-
-Normally, elements use the standard string representation for str() that is
-provided by lxml.etree.  You can enable a pretty-print representation for
-objectify elements like this:
-
-.. sourcecode:: pycon
-
-    >>> objectify.enable_recursive_str()
-
-    >>> root = objectify.fromstring("""
-    ... <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    ...   <a attr1="foo" attr2="bar">1</a>
-    ...   <a>1.2</a>
-    ...   <b>1</b>
-    ...   <b>true</b>
-    ...   <c>what?</c>
-    ...   <d xsi:nil="true"/>
-    ... </root>
-    ... """)
-
-    >>> print(str(root))
-    root = None [ObjectifiedElement]
-        a = 1 [IntElement]
-          * attr1 = 'foo'
-          * attr2 = 'bar'
-        a = 1.2 [FloatElement]
-        b = 1 [IntElement]
-        b = True [BoolElement]
-        c = 'what?' [StringElement]
-        d = None [NoneElement]
-          * xsi:nil = 'true'
-
-This behaviour can be switched off in the same way:
-
-.. sourcecode:: pycon
-
-    >>> objectify.enable_recursive_str(False)
-
-
-How data types are matched
-==========================
-
-Objectify uses two different types of Elements.  Structural Elements (or tree
-Elements) represent the object tree structure.  Data Elements represent the
-data containers at the leafs.  You can explicitly create tree Elements with
-the ``objectify.Element()`` factory and data Elements with the
-``objectify.DataElement()`` factory.
-
-When Element objects are created, lxml.objectify must determine which
-implementation class to use for them.  This is relatively easy for tree
-Elements and less so for data Elements.  The algorithm is as follows:
-
-1. If an element has children, use the default tree class.
-
-2. If an element is defined as xsi:nil, use the NoneElement class.
-
-3. If a "Python type hint" attribute is given, use this to determine the element
-   class, see below.
-4. If an XML Schema xsi:type hint is given, use this to determine the element
-   class, see below.
-
-5. Try to determine the element class from the text content type by trial and
-   error.
-
-6. If the element is a root node then use the default tree class.
-
-7. Otherwise, use the default class for empty data classes.
-
-You can change the default classes for tree Elements and empty data Elements
-at setup time.  The ``ObjectifyElementClassLookup()`` call accepts two keyword
-arguments, ``tree_class`` and ``empty_data_class``, that determine the Element
-classes used in these cases.  By default, ``tree_class`` is a class called
-``ObjectifiedElement`` and ``empty_data_class`` is a ``StringElement``.
-
-
-Type annotations
-----------------
-
-The "type hint" mechanism deploys an XML attribute defined as
-``lxml.objectify.PYTYPE_ATTRIBUTE``.  It may contain any of the following
-string values: int, long, float, str, unicode, NoneType:
-
-.. sourcecode:: pycon
-
-    >>> print(objectify.PYTYPE_ATTRIBUTE)
-    {http://codespeak.net/lxml/objectify/pytype}pytype
-    >>> ns, name = objectify.PYTYPE_ATTRIBUTE[1:].split('}')
-
-    >>> root = objectify.fromstring("""\
-    ... <root xmlns:py='%s'>
-    ...   <a py:pytype='str'>5</a>
-    ...   <b py:pytype='int'>5</b>
-    ...   <c py:pytype='NoneType' />
-    ... </root>
-    ... """ % ns)
-
-    >>> print(root.a + 10)
-    510
-    >>> print(root.b + 10)
-    15
-    >>> print(root.c)
-    None
-
-Note that you can change the name and namespace used for this
-attribute through the ``set_pytype_attribute_tag(tag)`` module
-function, in case your application ever needs to.  There is also a
-utility function ``annotate()`` that recursively generates this
-attribute for the elements of a tree:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring("<root><a>test</a><b>5</b></root>")
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 'test' [StringElement]
-        b = 5 [IntElement]
-
-    >>> objectify.annotate(root)
-
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 'test' [StringElement]
-          * py:pytype = 'str'
-        b = 5 [IntElement]
-          * py:pytype = 'int'
-
-
-XML Schema datatype annotation
-------------------------------
-
-A second way of specifying data type information uses XML Schema types as
-element annotations.  Objectify knows those that can be mapped to normal
-Python types:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring('''\
-    ...    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    ...          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    ...      <d xsi:type="xsd:double">5</d>
-    ...      <i xsi:type="xsd:int"   >5</i>
-    ...      <s xsi:type="xsd:string">5</s>
-    ...    </root>
-    ...    ''')
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        d = 5.0 [FloatElement]
-          * xsi:type = 'xsd:double'
-        i = 5 [IntElement]
-          * xsi:type = 'xsd:int'
-        s = '5' [StringElement]
-          * xsi:type = 'xsd:string'
-
-Again, there is a utility function ``xsiannotate()`` that recursively 
-generates the "xsi:type" attribute for the elements of a tree:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring('''\
-    ...    <root><a>test</a><b>5</b><c>true</c></root>
-    ...    ''')
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 'test' [StringElement]
-        b = 5 [IntElement]
-        c = True [BoolElement]
-
-    >>> objectify.xsiannotate(root)
-
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        a = 'test' [StringElement]
-          * xsi:type = 'xsd:string'
-        b = 5 [IntElement]
-          * xsi:type = 'xsd:integer'
-        c = True [BoolElement]
-          * xsi:type = 'xsd:boolean'
-
-Note, however, that ``xsiannotate()`` will always use the first XML Schema
-datatype that is defined for any given Python type, see also
-`Defining additional data classes`_.
-
-The utility function ``deannotate()`` can be used to get rid of 'py:pytype'
-and/or 'xsi:type' information:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring('''\
-    ... <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    ...       xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    ...   <d xsi:type="xsd:double">5</d>
-    ...   <i xsi:type="xsd:int"   >5</i>
-    ...   <s xsi:type="xsd:string">5</s>
-    ... </root>''')
-    >>> objectify.annotate(root)
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        d = 5.0 [FloatElement]
-          * xsi:type = 'xsd:double'
-          * py:pytype = 'float'
-        i = 5 [IntElement]
-          * xsi:type = 'xsd:int'
-          * py:pytype = 'int'
-        s = '5' [StringElement]
-          * xsi:type = 'xsd:string'
-          * py:pytype = 'str'
-    >>> objectify.deannotate(root)
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        d = 5 [IntElement]
-        i = 5 [IntElement]
-        s = 5 [IntElement]
-
-You can control which type attributes should be de-annotated with the keyword
-arguments 'pytype' (default: True) and 'xsi' (default: True).
-``deannotate()`` can also remove 'xsi:nil' attributes by setting 'xsi_nil=True'
-(default: False):
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring('''\
-    ... <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    ...       xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    ...   <d xsi:type="xsd:double">5</d>
-    ...   <i xsi:type="xsd:int"   >5</i>
-    ...   <s xsi:type="xsd:string">5</s>
-    ...   <n xsi:nil="true"/>
-    ... </root>''')
-    >>> objectify.annotate(root)
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        d = 5.0 [FloatElement]
-          * xsi:type = 'xsd:double'
-          * py:pytype = 'float'
-        i = 5 [IntElement]
-          * xsi:type = 'xsd:int'
-          * py:pytype = 'int'
-        s = '5' [StringElement]
-          * xsi:type = 'xsd:string'
-          * py:pytype = 'str'
-        n = None [NoneElement]
-          * xsi:nil = 'true'
-          * py:pytype = 'NoneType'
-    >>> objectify.deannotate(root, xsi_nil=True)
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        d = 5 [IntElement]
-        i = 5 [IntElement]
-        s = 5 [IntElement]
-        n = u'' [StringElement]
-
-The DataElement factory
------------------------
-
-For convenience, the ``DataElement()`` factory creates an Element with a
-Python value in one step.  You can pass the required Python type name or the
-XSI type name:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.Element("root")
-    >>> root.x = objectify.DataElement(5, _pytype="int")
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        x = 5 [IntElement]
-          * py:pytype = 'int'
-
-    >>> root.x = objectify.DataElement(5, _pytype="str", myattr="someval")
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        x = '5' [StringElement]
-          * py:pytype = 'str'
-          * myattr = 'someval'
-
-    >>> root.x = objectify.DataElement(5, _xsi="integer")
-    >>> print(objectify.dump(root))
-    root = None [ObjectifiedElement]
-        x = 5 [IntElement]
-          * py:pytype = 'int'
-          * xsi:type = 'xsd:integer'
-
-XML Schema types reside in the XML schema namespace thus ``DataElement()`` 
-tries to correctly prefix the xsi:type attribute value for you:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.Element("root")
-    >>> root.s = objectify.DataElement(5, _xsi="string")
-
-    >>> objectify.deannotate(root, xsi=False)
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-      <s xsi:type="xsd:string">5</s>
-    </root>
-
-``DataElement()`` uses a default nsmap to set these prefixes:
-
-.. sourcecode:: pycon
-
-    >>> el = objectify.DataElement('5', _xsi='string')
-    >>> namespaces = list(el.nsmap.items())
-    >>> namespaces.sort()
-    >>> for prefix, namespace in namespaces:
-    ...     print("%s - %s" % (prefix, namespace))
-    py - http://codespeak.net/lxml/objectify/pytype
-    xsd - http://www.w3.org/2001/XMLSchema
-    xsi - http://www.w3.org/2001/XMLSchema-instance
-
-    >>> print(el.get("{http://www.w3.org/2001/XMLSchema-instance}type"))
-    xsd:string
-
-While you can set custom namespace prefixes, it is necessary to provide valid
-namespace information if you choose to do so:
-
-.. sourcecode:: pycon
-
-    >>> el = objectify.DataElement('5', _xsi='foo:string',
-    ...          nsmap={'foo': 'http://www.w3.org/2001/XMLSchema'})
-    >>> namespaces = list(el.nsmap.items())
-    >>> namespaces.sort()
-    >>> for prefix, namespace in namespaces:
-    ...     print("%s - %s" % (prefix, namespace))
-    foo - http://www.w3.org/2001/XMLSchema
-    py - http://codespeak.net/lxml/objectify/pytype
-    xsi - http://www.w3.org/2001/XMLSchema-instance
-
-    >>> print(el.get("{http://www.w3.org/2001/XMLSchema-instance}type"))
-    foo:string
-
-Note how lxml chose a default prefix for the XML Schema Instance
-namespace.  We can override it as in the following example:
-
-.. sourcecode:: pycon
-
-    >>> el = objectify.DataElement('5', _xsi='foo:string',
-    ...          nsmap={'foo': 'http://www.w3.org/2001/XMLSchema',
-    ...                 'myxsi': 'http://www.w3.org/2001/XMLSchema-instance'})
-    >>> namespaces = list(el.nsmap.items())
-    >>> namespaces.sort()
-    >>> for prefix, namespace in namespaces:
-    ...     print("%s - %s" % (prefix, namespace))
-    foo - http://www.w3.org/2001/XMLSchema
-    myxsi - http://www.w3.org/2001/XMLSchema-instance
-    py - http://codespeak.net/lxml/objectify/pytype
-
-    >>> print(el.get("{http://www.w3.org/2001/XMLSchema-instance}type"))
-    foo:string
-
-Care must be taken if different namespace prefixes have been used for the same
-namespace.  Namespace information gets merged to avoid duplicate definitions
-when adding a new sub-element to a tree, but this mechanism does not adapt the
-prefixes of attribute values:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring("""<root xmlns:schema="http://www.w3.org/2001/XMLSchema"/>""")
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns:schema="http://www.w3.org/2001/XMLSchema"/>
-
-    >>> s = objectify.DataElement("17", _xsi="string")
-    >>> print(etree.tostring(s, pretty_print=True))
-    <value xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" py:pytype="str" xsi:type="xsd:string">17</value>
-
-    >>> root.s = s
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns:schema="http://www.w3.org/2001/XMLSchema">
-      <s xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" py:pytype="str" xsi:type="xsd:string">17</s>
-    </root>
-
-It is your responsibility to fix the prefixes of attribute values if you
-choose to deviate from the standard prefixes.  A convenient way to do this for
-xsi:type attributes is to use the ``xsiannotate()`` utility:
-
-.. sourcecode:: pycon
-
-    >>> objectify.xsiannotate(root)
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root xmlns:schema="http://www.w3.org/2001/XMLSchema">
-      <s xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" py:pytype="str" xsi:type="schema:string">17</s>
-    </root>
-
-Of course, it is discouraged to use different prefixes for one and the same
-namespace when building up an objectify tree.
-
-
-Defining additional data classes
---------------------------------
-
-You can plug additional data classes into objectify that will be used in
-exactly the same way as the predefined types.  Data classes can either inherit
-from ``ObjectifiedDataElement`` directly or from one of the specialised
-classes like ``NumberElement`` or ``BoolElement``.  The numeric types require
-an initial call to the NumberElement method ``self._setValueParser(function)``
-to set their type conversion function (string -> numeric Python type).  This
-call should be placed into the element ``_init()`` method.
-
-The registration of data classes uses the ``PyType`` class:
-
-.. sourcecode:: pycon
-
-    >>> class ChristmasDate(objectify.ObjectifiedDataElement):
-    ...     def call_santa(self):
-    ...         print("Ho ho ho!")
-
-    >>> def checkChristmasDate(date_string):
-    ...     if not date_string.startswith('24.12.'):
-    ...         raise ValueError # or TypeError
-
-    >>> xmas_type = objectify.PyType('date', checkChristmasDate, ChristmasDate)
-
-The PyType constructor takes a string type name, an (optional) callable type 
-check and the custom data class.  If a type check is provided it must accept a 
-string as argument and raise ValueError or TypeError if it cannot handle the
-string value.
-
-PyTypes are used if an element carries a ``py:pytype`` attribute denoting its
-data type or, in absence of such an attribute, if the given type check callable
-does not raise a ValueError/TypeError exception when applied to the element
-text. 
-
-If you want, you can also register this type under an XML Schema type name:
-
-.. sourcecode:: pycon
-
-    >>> xmas_type.xmlSchemaTypes = ("date",)
-
-XML Schema types will be considered if the element has an ``xsi:type``
-attribute that specifies its data type.  The line above binds the XSD type
-``date`` to the newly defined Python type.  Note that this must be done before
-the next step, which is to register the type.  Then you can use it:
-
-.. sourcecode:: pycon
-
-    >>> xmas_type.register()
-
-    >>> root = objectify.fromstring(
-    ...             "<root><a>24.12.2000</a><b>12.24.2000</b></root>")
-    >>> root.a.call_santa()
-    Ho ho ho!
-    >>> root.b.call_santa()
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: call_santa
-
-If you need to specify dependencies between the type check functions, you can
-pass a sequence of type names through the ``before`` and ``after`` keyword
-arguments of the ``register()`` method.  The PyType will then try to register
-itself before or after the respective types, as long as they are currently
-registered.  Note that this only impacts the currently registered types at the
-time of registration.  Types that are registered later on will not care about
-the dependencies of already registered types.
-
-If you provide XML Schema type information, this will override the type check
-function defined above:
-
-.. sourcecode:: pycon
-
-    >>> root = objectify.fromstring('''\
-    ...    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    ...      <a xsi:type="date">12.24.2000</a>
-    ...    </root>
-    ...    ''')
-    >>> print(root.a)
-    12.24.2000
-    >>> root.a.call_santa()
-    Ho ho ho!
-
-To unregister a type, call its ``unregister()`` method:
-
-.. sourcecode:: pycon
-
-    >>> root.a.call_santa()
-    Ho ho ho!
-    >>> xmas_type.unregister()
-    >>> root.a.call_santa()
-    Traceback (most recent call last):
-      ...
-    AttributeError: no such child: call_santa
-
-Be aware, though, that this does not immediately apply to elements to which
-there already is a Python reference.  Their Python class will only be changed
-after all references are gone and the Python object is garbage collected.
-
-
-Advanced element class lookup
------------------------------
-
-In some cases, the normal data class setup is not enough.  Being based
-on ``lxml.etree``, however, ``lxml.objectify`` supports very
-fine-grained control over the Element classes used in a tree.  All you
-have to do is configure a different `class lookup`_ mechanism (or
-write one yourself).
-
-.. _`class lookup`: element_classes.html
-
-The first step for the setup is to create a new parser that builds
-objectify documents.  The objectify API is meant for data-centric XML
-(as opposed to document XML with mixed content).  Therefore, we
-configure the parser to let it remove whitespace-only text from the
-parsed document if it is not enclosed by an XML element.  Note that
-this alters the document infoset, so if you consider the removed
-spaces as data in your specific use case, you should go with a normal
-parser and just set the element class lookup.  Most applications,
-however, will work fine with the following setup:
-
-.. sourcecode:: pycon
-
-    >>> parser = objectify.makeparser(remove_blank_text=True)
-
-What this does internally, is:
-
-.. sourcecode:: pycon
-
-    >>> parser = etree.XMLParser(remove_blank_text=True)
-
-    >>> lookup = objectify.ObjectifyElementClassLookup()
-    >>> parser.set_element_class_lookup(lookup)
-
-If you want to change the lookup scheme, say, to get additional
-support for `namespace specific classes`_, you can register the
-objectify lookup as a fallback of the namespace lookup.  In this case,
-however, you have to take care that the namespace classes inherit from
-``objectify.ObjectifiedElement``, not only from the normal
-``lxml.etree.ElementBase``, so that they support the ``objectify``
-API.  The above setup code then becomes:
-
-.. sourcecode:: pycon
-
-    >>> lookup = etree.ElementNamespaceClassLookup(
-    ...                   objectify.ObjectifyElementClassLookup() )
-    >>> parser.set_element_class_lookup(lookup)
-
-.. _`namespace specific classes`: element_classes.html#namespace-class-lookup
-
-See the documentation on `class lookup`_ schemes for more information.
-
-
-What is different from lxml.etree?
-==================================
-
-Such a different Element API obviously implies some side effects to the normal
-behaviour of the rest of the API.
-
-* len(<element>) returns the sibling count, not the number of children of
-  <element>. You can retrieve the number of children with the
-  ``countchildren()`` method. 
-
-* Iteration over elements does not yield the children, but the siblings.  You
-  can access all children with the ``iterchildren()`` method on elements or
-  retrieve a list by calling the ``getchildren()`` method.
-
-* The find, findall and findtext methods require a different implementation
-  based on ETXPath.  In ``lxml.etree``, they use a Python implementation based
-  on the original iteration scheme.  This has the disadvantage that they may
-  not be 100% backwards compatible, and the additional advantage that they now
-  support any XPath expression.
diff --git a/doc/sphinx/_sources/parsing.txt b/doc/sphinx/_sources/parsing.txt
deleted file mode 100644 (file)
index 585cabd..0000000
+++ /dev/null
@@ -1,832 +0,0 @@
-==============================
-Parsing XML and HTML with lxml
-==============================
-
-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
-event-driven API (currently only for XML).
-
-.. contents::
-.. 
-   1  Parsers
-     1.1  Parser options
-     1.2  Error log
-     1.3  Parsing HTML
-     1.4  Doctype information
-   2  The target parser interface
-   3  The feed parser interface
-   4  iterparse and iterwalk
-     4.1  Selective tag events
-     4.2  Comments and PIs
-     4.3  Modifying the tree
-     4.4  iterwalk
-   5  Python unicode strings
-     5.1  Serialising to Unicode strings
-
-
-The usual setup procedure:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-
-..
-  >>> from lxml import usedoctest
-
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-  >>> try: unicode = __builtins__["unicode"]
-  ... except (NameError, KeyError): unicode = str
-
-  >>> import sys
-  >>> from lxml import etree as _etree
-  >>> if sys.version_info[0] >= 3:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if isinstance(s, bytes) and bytes([10]) in s: s = s.decode("utf-8") # CR
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  ... else:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  >>> etree = etree_mock()
-
-
-Parsers
-=======
-
-Parsers are represented by parser objects.  There is support for parsing both
-XML and (broken) HTML.  Note that XHTML is best parsed as XML, parsing it with
-the HTML parser can lead to unexpected results.  Here is a simple example for
-parsing XML from an in-memory string:
-
-.. sourcecode:: pycon
-
-  >>> xml = '<a xmlns="test"><b xmlns="test"/></a>'
-
-  >>> root = etree.fromstring(xml)
-  >>> etree.tostring(root)
-  b'<a xmlns="test"><b xmlns="test"/></a>'
-
-To read from a file or file-like object, you can use the ``parse()`` function,
-which returns an ``ElementTree`` object:
-
-.. sourcecode:: pycon
-
-  >>> tree = etree.parse(StringIO(xml))
-  >>> etree.tostring(tree.getroot())
-  b'<a xmlns="test"><b xmlns="test"/></a>'
-
-Note how the ``parse()`` function reads from a file-like object here.  If
-parsing is done from a real file, it is more common (and also somewhat more
-efficient) to pass a filename:
-
-.. sourcecode:: pycon
-
-  >>> tree = etree.parse("doc/test.xml")
-
-lxml can parse from a local file, an HTTP URL or an FTP URL.  It also
-auto-detects and reads gzip-compressed XML files (.gz).
-
-If you want to parse from memory and still provide a base URL for the document
-(e.g. to support relative paths in an XInclude), you can pass the ``base_url``
-keyword argument:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.fromstring(xml, base_url="http://where.it/is/from.xml")
-
-
-Parser options
---------------
-
-The parsers accept a number of setup options as keyword arguments.  The above
-example is easily extended to clean up namespaces during parsing:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser(ns_clean=True)
-  >>> tree   = etree.parse(StringIO(xml), parser)
-  >>> etree.tostring(tree.getroot())
-  b'<a xmlns="test"><b/></a>'
-
-The keyword arguments in the constructor are mainly based on the libxml2
-parser configuration.  A DTD will also be loaded if validation or attribute
-default values are requested.
-
-Available boolean keyword arguments:
-
-* attribute_defaults - read the DTD (if referenced by the document) and add
-  the default attributes from it
-
-* dtd_validation - validate while parsing (if a DTD was referenced)
-
-* load_dtd - load and parse the DTD while parsing (no validation is performed)
-
-* no_network - prevent network access when looking up external
-  documents (on by default)
-
-* ns_clean - try to clean up redundant namespace declarations
-
-* recover - try hard to parse through broken XML
-
-* remove_blank_text - discard blank text nodes between tags (best used
-  together with a DTD)
-
-* remove_comments - discard comments
-
-* remove_pis - discard processing instructions
-
-* strip_cdata - replace CDATA sections by normal text content (on by
-  default)
-
-* resolve_entities - replace entities by their text value (on by
-  default)
-
-* huge_tree - disable security restrictions and support very deep trees
-  and very long text content (only affects libxml2 2.7+)
-
-* compact - use compact storage for short text content (on by default)
-
-Other keyword arguments:
-
-* encoding - override the document encoding
-
-* target - a parser target object that will receive the parse events
-  (see `The target parser interface`_)
-
-* schema   - an XMLSchema to validate against (see `validation <validation.html#xmlschema>`_)
-
-
-Error log
----------
-
-Parsers have an ``error_log`` property that lists the errors and
-warnings of the last parser run:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser()
-  >>> print(len(parser.error_log))
-  0
-
-  >>> tree = etree.XML("<root></b>", parser)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: root line 1 and b, line 1, column 11
-
-  >>> print(len(parser.error_log))
-  1
-
-  >>> error = parser.error_log[0]
-  >>> print(error.message)
-  Opening and ending tag mismatch: root line 1 and b
-  >>> print(error.line)
-  1
-  >>> print(error.column)
-  11
-
-Each entry in the log has the following properties:
-
-* ``message``: the message text
-* ``domain``: the domain ID (see the lxml.etree.ErrorDomains class)
-* ``type``: the message type ID (see the lxml.etree.ErrorTypes class)
-* ``level``: the log level ID (see the lxml.etree.ErrorLevels class)
-* ``line``: the line at which the message originated (if applicable)
-* ``column``: the character column at which the message originated (if applicable)
-* ``filename``: the name of the file in which the message originated (if applicable)
-
-For convenience, there are also three properties that provide readable
-names for the ID values:
-
-* ``domain_name``
-* ``type_name``
-* ``level_name``
-
-To filter for a specific kind of message, use the different
-``filter_*()`` methods on the error log (see the
-lxml.etree._ListErrorLog class).
-
-
-Parsing HTML
-------------
-
-HTML parsing is similarly simple.  The parsers have a ``recover``
-keyword argument that the HTMLParser sets by default.  It lets libxml2
-try its best to return a valid HTML tree with all content it can
-manage to parse.  It will not raise an exception on parser errors.
-You should use libxml2 version 2.6.21 or newer to take advantage of
-this feature.
-
-.. sourcecode:: pycon
-
-  >>> broken_html = "<html><head><title>test<body><h1>page title</h3>"
-
-  >>> parser = etree.HTMLParser()
-  >>> tree   = etree.parse(StringIO(broken_html), parser)
-
-  >>> result = etree.tostring(tree.getroot(),
-  ...                         pretty_print=True, method="html")
-  >>> print(result)
-  <html>
-    <head>
-      <title>test</title>
-    </head>
-    <body>
-      <h1>page title</h1>
-    </body>
-  </html>
-
-Lxml has an HTML function, similar to the XML shortcut known from
-ElementTree:
-
-.. sourcecode:: pycon
-
-  >>> html = etree.HTML(broken_html)
-  >>> result = etree.tostring(html, pretty_print=True, method="html")
-  >>> print(result)
-  <html>
-    <head>
-      <title>test</title>
-    </head>
-    <body>
-      <h1>page title</h1>
-    </body>
-  </html>
-
-The support for parsing broken HTML depends entirely on libxml2's recovery
-algorithm.  It is *not* the fault of lxml if you find documents that are so
-heavily broken that the parser cannot handle them.  There is also no guarantee
-that the resulting tree will contain all data from the original document.  The
-parser may have to drop seriously broken parts when struggling to keep
-parsing.  Especially misplaced meta tags can suffer from this, which may lead
-to encoding problems.
-
-Note that the result is a valid HTML tree, but it may not be a
-well-formed XML tree.  For example, XML forbids double hyphens in
-comments, which the HTML parser will happily accept in recovery mode.
-Therefore, if your goal is to serialise an HTML document as an
-XML/XHTML document after parsing, you may have to apply some manual
-preprocessing first.
-
-Also note that the HTML parser is meant to parse HTML documents.  For
-XHTML documents, use the XML parser, which is namespace aware.
-
-
-Doctype information
--------------------
-
-The use of the libxml2 parsers makes some additional information available at
-the API level.  Currently, ElementTree objects can access the DOCTYPE
-information provided by a parsed document, as well as the XML version and the
-original encoding:
-
-.. sourcecode:: pycon
-
-  >>> pub_id  = "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  >>> sys_url = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-  >>> doctype_string = '<!DOCTYPE html PUBLIC "%s" "%s">' % (pub_id, sys_url)
-  >>> xml_header = '<?xml version="1.0" encoding="ascii"?>'
-  >>> xhtml = xml_header + doctype_string + '<html><body></body></html>'
-
-  >>> tree = etree.parse(StringIO(xhtml))
-  >>> docinfo = tree.docinfo
-  >>> print(docinfo.public_id)
-  -//W3C//DTD XHTML 1.0 Transitional//EN
-  >>> print(docinfo.system_url)
-  http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
-  >>> docinfo.doctype == doctype_string
-  True
-
-  >>> print(docinfo.xml_version)
-  1.0
-  >>> print(docinfo.encoding)
-  ascii
-
-
-The target parser interface
-===========================
-
-.. _`As in ElementTree`: http://effbot.org/elementtree/elementtree-xmlparser.htm
-
-`As in ElementTree`_, and similar to a SAX event handler, you can pass
-a target object to the parser:
-
-.. sourcecode:: pycon
-
-  >>> class EchoTarget:
-  ...     def start(self, tag, attrib):
-  ...         print("start %s %s" % (tag, attrib))
-  ...     def end(self, tag):
-  ...         print("end %s" % tag)
-  ...     def data(self, data):
-  ...         print("data %r" % data)
-  ...     def comment(self, text):
-  ...         print("comment %s" % text)
-  ...     def close(self):
-  ...         print("close")
-  ...         return "closed!"
-
-  >>> parser = etree.XMLParser(target = EchoTarget())
-
-  >>> result = etree.XML("<element>some<!--comment-->text</element>",
-  ...                    parser)
-  start element {}
-  data u'some'
-  comment comment
-  data u'text'
-  end element
-  close
-
-  >>> print(result)
-  closed!
-
-It is important for the ``.close()`` method to reset the parser target
-to a usable state, so that you can reuse the parser as often as you
-like:
-
-.. sourcecode:: pycon
-
-  >>> result = etree.XML("<element>some<!--comment-->text</element>",
-  ...                    parser)
-  start element {}
-  data u'some'
-  comment comment
-  data u'text'
-  end element
-  close
-
-  >>> print(result)
-  closed!
-
-Starting with lxml 2.3, the ``.close()`` method will also be called in
-the error case.  This diverges from the behaviour of ElementTree, but
-allows target objects to clean up their state in all situations, so
-that the parser can reuse them afterwards.
-
-.. sourcecode:: pycon
-
-  >>> class CollectorTarget:
-  ...     def __init__(self):
-  ...         self.events = []
-  ...     def start(self, tag, attrib):
-  ...         self.events.append("start %s %s" % (tag, attrib))
-  ...     def end(self, tag):
-  ...         self.events.append("end %s" % tag)
-  ...     def data(self, data):
-  ...         self.events.append("data %r" % data)
-  ...     def comment(self, text):
-  ...         self.events.append("comment %s" % text)
-  ...     def close(self):
-  ...         self.events.append("close")
-  ...         return "closed!"
-
-  >>> parser = etree.XMLParser(target = CollectorTarget())
-
-  >>> result = etree.XML("<element>some</error>",
-  ...                    parser)        # doctest: +ELLIPSIS
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XMLSyntaxError: Opening and ending tag mismatch...
-
-  >>> for event in parser.target.events:
-  ...     print(event)
-  start element {}
-  data u'some'
-  close
-
-Note that the parser does *not* build a tree when using a parser
-target.  The result of the parser run is whatever the target object
-returns from its ``.close()`` method.  If you want to return an XML
-tree here, you have to create it programmatically in the target
-object.  An example for a parser target that builds a tree is the
-``TreeBuilder``:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser(target = etree.TreeBuilder())
-
-  >>> result = etree.XML("<element>some<!--comment-->text</element>",
-  ...                    parser)
-
-  >>> print(result.tag)
-  element
-  >>> print(result[0].text)
-  comment
-
-
-The feed parser interface
-=========================
-
-Since lxml 2.0, the parsers have a feed parser interface that is
-compatible to the `ElementTree parsers`_.  You can use it to feed data
-into the parser in a controlled step-by-step way.
-
-In lxml.etree, you can use both interfaces to a parser at the same
-time: the ``parse()`` or ``XML()`` functions, and the feed parser
-interface.  Both are independent and will not conflict (except if used
-in conjunction with a parser target object as described above).
-
-.. _`ElementTree parsers`: http://effbot.org/elementtree/elementtree-xmlparser.htm
-
-To start parsing with a feed parser, just call its ``feed()`` method
-to feed it some data.
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser()
-
-  >>> for data in ('<?xml versio', 'n="1.0"?', '><roo', 't><a', '/></root>'):
-  ...     parser.feed(data)
-
-When you are done parsing, you **must** call the ``close()`` method to
-retrieve the root Element of the parse result document, and to unlock the
-parser:
-
-.. sourcecode:: pycon
-
-  >>> root = parser.close()
-
-  >>> print(root.tag)
-  root
-  >>> print(root[0].tag)
-  a
-
-If you do not call ``close()``, the parser will stay locked and
-subsequent feeds will keep appending data, usually resulting in a non
-well-formed document and an unexpected parser error.  So make sure you
-always close the parser after use, also in the exception case.
-
-Another way of achieving the same step-by-step parsing is by writing your own
-file-like object that returns a chunk of data on each ``read()`` call.  Where
-the feed parser interface allows you to actively pass data chunks into the
-parser, a file-like object passively responds to ``read()`` requests of the
-parser itself.  Depending on the data source, either way may be more natural.
-
-Note that the feed parser has its own error log called
-``feed_error_log``.  Errors in the feed parser do not show up in the
-normal ``error_log`` and vice versa.
-
-You can also combine the feed parser interface with the target parser:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser(target = EchoTarget())
-
-  >>> parser.feed("<eleme")
-  >>> parser.feed("nt>some text</elem")
-  start element {}
-  data u'some text'
-  >>> parser.feed("ent>")
-  end element
-
-  >>> result = parser.close()
-  close
-  >>> print(result)
-  closed!
-
-Again, this prevents the automatic creation of an XML tree and leaves
-all the event handling to the target object.  The ``close()`` method
-of the parser forwards the return value of the target's ``close()``
-method.
-
-
-iterparse and iterwalk
-======================
-
-As known from ElementTree, the ``iterparse()`` utility function
-returns an iterator that generates parser events for an XML file (or
-file-like object), while building the tree.  The values are tuples
-``(event-type, object)``.  The event types supported by ElementTree
-and lxml.etree are the strings 'start', 'end', 'start-ns' and
-'end-ns'.
-
-The 'start' and 'end' events represent opening and closing elements.
-They are accompanied by the respective Element instance.  By default,
-only 'end' events are generated:
-
-.. sourcecode:: pycon
-
-  >>> xml = '''\
-  ... <root>
-  ...   <element key='value'>text</element>
-  ...   <element>text</element>tail
-  ...   <empty-element xmlns="http://testns/" />
-  ... </root>
-  ... '''
-
-  >>> context = etree.iterparse(StringIO(xml))
-  >>> for action, elem in context:
-  ...     print("%s: %s" % (action, elem.tag))
-  end: element
-  end: element
-  end: {http://testns/}empty-element
-  end: root
-
-The resulting tree is available through the ``root`` property of the iterator:
-
-.. sourcecode:: pycon
-
-  >>> context.root.tag
-  'root'
-
-The other event types can be activated with the ``events`` keyword argument:
-
-.. sourcecode:: pycon
-
-  >>> events = ("start", "end")
-  >>> context = etree.iterparse(StringIO(xml), events=events)
-  >>> for action, elem in context:
-  ...     print("%s: %s" % (action, elem.tag))
-  start: root
-  start: element
-  end: element
-  start: element
-  end: element
-  start: {http://testns/}empty-element
-  end: {http://testns/}empty-element
-  end: root
-
-The 'start-ns' and 'end-ns' events notify about namespace
-declarations.  They do not come with Elements.  Instead, the value of
-the 'start-ns' event is a tuple ``(prefix, namespaceURI)`` that
-designates the beginning of a prefix-namespace mapping.  The
-corresponding ``end-ns`` event does not have a value (None).  It is
-common practice to use a list as namespace stack and pop the last
-entry on the 'end-ns' event.
-
-.. sourcecode:: pycon
-
-  >>> print(xml[:-1])
-  <root>
-    <element key='value'>text</element>
-    <element>text</element>tail
-    <empty-element xmlns="http://testns/" />
-  </root>
-
-  >>> events = ("start", "end", "start-ns", "end-ns")
-  >>> context = etree.iterparse(StringIO(xml), events=events)
-  >>> for action, elem in context:
-  ...     if action in ('start', 'end'):
-  ...         print("%s: %s" % (action, elem.tag))
-  ...     elif action == 'start-ns':
-  ...         print("%s: %s" % (action, elem))
-  ...     else:
-  ...         print(action)
-  start: root
-  start: element
-  end: element
-  start: element
-  end: element
-  start-ns: ('', 'http://testns/')
-  start: {http://testns/}empty-element
-  end: {http://testns/}empty-element
-  end-ns
-  end: root
-
-
-Selective tag events
---------------------
-
-As an extension over ElementTree, lxml.etree accepts a ``tag`` keyword
-argument just like ``element.iter(tag)``.  This restricts events to a
-specific tag or namespace:
-
-.. sourcecode:: pycon
-
-  >>> context = etree.iterparse(StringIO(xml), tag="element")
-  >>> for action, elem in context:
-  ...     print("%s: %s" % (action, elem.tag))
-  end: element
-  end: element
-
-  >>> events = ("start", "end")
-  >>> context = etree.iterparse(
-  ...             StringIO(xml), events=events, tag="{http://testns/}*")
-  >>> for action, elem in context:
-  ...     print("%s: %s" % (action, elem.tag))
-  start: {http://testns/}empty-element
-  end: {http://testns/}empty-element
-
-
-Comments and PIs
-----------------
-
-As an extension over ElementTree, the ``iterparse()`` function in
-lxml.etree also supports the event types 'comment' and 'pi' for the
-respective XML structures.
-
-.. sourcecode:: pycon
-
-  >>> commented_xml = '''\
-  ... <?some pi ?>
-  ... <!-- a comment -->
-  ... <root>
-  ...   <element key='value'>text</element>
-  ...   <!-- another comment -->
-  ...   <element>text</element>tail
-  ...   <empty-element xmlns="http://testns/" />
-  ... </root>
-  ... '''
-
-  >>> events = ("start", "end", "comment", "pi")
-  >>> context = etree.iterparse(StringIO(commented_xml), events=events)
-  >>> for action, elem in context:
-  ...     if action in ('start', 'end'):
-  ...         print("%s: %s" % (action, elem.tag))
-  ...     elif action == 'pi':
-  ...         print("%s: -%s=%s-" % (action, elem.target, elem.text))
-  ...     else: # 'comment'
-  ...         print("%s: -%s-" % (action, elem.text))
-  pi: -some=pi -
-  comment: - a comment -
-  start: root
-  start: element
-  end: element
-  comment: - another comment -
-  start: element
-  end: element
-  start: {http://testns/}empty-element
-  end: {http://testns/}empty-element
-  end: root
-
-  >>> print(context.root.tag)
-  root
-
-
-Modifying the tree
-------------------
-
-You can modify the element and its descendants when handling the 'end' event.
-To save memory, for example, you can remove subtrees that are no longer
-needed:
-
-.. sourcecode:: pycon
-
-  >>> context = etree.iterparse(StringIO(xml))
-  >>> for action, elem in context:
-  ...     print(len(elem))
-  ...     elem.clear()
-  0
-  0
-  0
-  3
-  >>> context.root.getchildren()
-  []
-
-**WARNING**: During the 'start' event, any content of the element,
-such as the descendants, following siblings or text, is not yet
-available and should not be accessed.  Only attributes are guaranteed
-to be set.  During the 'end' event, the element and its descendants
-can be freely modified, but its following siblings should not be
-accessed.  During either of the two events, you **must not** modify or
-move the ancestors (parents) of the current element.  You should also
-avoid moving or discarding the element itself.  The golden rule is: do
-not touch anything that will have to be touched again by the parser
-later on.
-
-If you have elements with a long list of children in your XML file and want to
-save more memory during parsing, you can clean up the preceding siblings of
-the current element:
-
-.. sourcecode:: pycon
-
-  >>> for event, element in etree.iterparse(StringIO(xml)):
-  ...     # ... do something with the element
-  ...     element.clear()                 # clean up children
-  ...     while element.getprevious() is not None: 
-  ...         del element.getparent()[0]  # clean up preceding siblings
-
-The ``while`` loop deletes multiple siblings in a row.  This is only necessary
-if you skipped over some of them using the ``tag`` keyword argument.
-Otherwise, a simple ``if`` should do.  The more selective your tag is,
-however, the more thought you will have to put into finding the right way to
-clean up the elements that were skipped.  Therefore, it is sometimes easier to
-traverse all elements and do the tag selection by hand in the event handler
-code.
-
-
-iterwalk
---------
-
-A second extension over ElementTree is the ``iterwalk()`` function.  It
-behaves exactly like ``iterparse()``, but works on Elements and ElementTrees:
-
-.. sourcecode:: pycon
-
-
-  >>> root = etree.XML(xml)
-  >>> context = etree.iterwalk(
-  ...             root, events=("start", "end"), tag="element")
-  >>> for action, elem in context:
-  ...     print("%s: %s" % (action, elem.tag))
-  start: element
-  end: element
-  start: element
-  end: element
-
-  >>> f = StringIO(xml)
-  >>> context = etree.iterparse(
-  ...             f, events=("start", "end"), tag="element")
-
-  >>> for action, elem in context:
-  ...     print("%s: %s" % (action, elem.tag))
-  start: element
-  end: element
-  start: element
-  end: element
-
-
-Python unicode strings
-======================
-
-lxml.etree has broader support for Python unicode strings than the ElementTree
-library.  First of all, where ElementTree would raise an exception, the
-parsers in lxml.etree can handle unicode strings straight away.  This is most
-helpful for XML snippets embedded in source code using the ``XML()``
-function:
-
-.. sourcecode:: pycon
-
-  >>> uxml = u'<test> \uf8d1 + \uf8d2 </test>'
-  >>> uxml
-  u'<test> \uf8d1 + \uf8d2 </test>'
-  >>> root = etree.XML(uxml)
-
-This requires, however, that unicode strings do not specify a conflicting
-encoding themselves and thus lie about their real encoding:
-
-.. sourcecode:: pycon
-
-  >>> etree.XML( u'<?xml version="1.0" encoding="ASCII"?>\n' + uxml )
-  Traceback (most recent call last):
-    ...
-  ValueError: Unicode strings with encoding declaration are not supported.
-
-Similarly, you will get errors when you try the same with HTML data in a
-unicode string that specifies a charset in a meta tag of the header.  You
-should generally avoid converting XML/HTML data to unicode before passing it
-into the parsers.  It is both slower and error prone.
-
-
-Serialising to Unicode strings
-------------------------------
-
-To serialize the result, you would normally use the ``tostring()``
-module function, which serializes to plain ASCII by default or a
-number of other byte encodings if asked for:
-
-.. sourcecode:: pycon
-
-  >>> etree.tostring(root)
-  b'<test> &#63697; + &#63698; </test>'
-
-  >>> etree.tostring(root, encoding='UTF-8', xml_declaration=False)
-  b'<test> \xef\xa3\x91 + \xef\xa3\x92 </test>'
-
-As an extension, lxml.etree recognises the unicode type as an argument to the
-encoding parameter to build a Python unicode representation of a tree:
-
-.. sourcecode:: pycon
-
-  >>> etree.tostring(root, encoding=unicode)
-  u'<test> \uf8d1 + \uf8d2 </test>'
-
-  >>> el = etree.Element("test")
-  >>> etree.tostring(el, encoding=unicode)
-  u'<test/>'
-
-  >>> subel = etree.SubElement(el, "subtest")
-  >>> etree.tostring(el, encoding=unicode)
-  u'<test><subtest/></test>'
-
-  >>> tree = etree.ElementTree(el)
-  >>> etree.tostring(tree, encoding=unicode)
-  u'<test><subtest/></test>'
-
-The result of ``tostring(encoding=unicode)`` can be treated like any
-other Python unicode string and then passed back into the parsers.
-However, if you want to save the result to a file or pass it over the
-network, you should use ``write()`` or ``tostring()`` with a byte
-encoding (typically UTF-8) to serialize the XML.  The main reason is
-that unicode strings returned by ``tostring(encoding=unicode)`` are
-not byte streams and they never have an XML declaration to specify
-their encoding.  These strings are most likely not parsable by other
-XML libraries.
-
-For normal byte encodings, the ``tostring()`` function automatically
-adds a declaration as needed that reflects the encoding of the
-returned string.  This makes it possible for other parsers to
-correctly parse the XML byte stream.  Note that using ``tostring()``
-with UTF-8 is also considerably faster in most cases.
diff --git a/doc/sphinx/_sources/performance.txt b/doc/sphinx/_sources/performance.txt
deleted file mode 100644 (file)
index 2f03b57..0000000
+++ /dev/null
@@ -1,827 +0,0 @@
-====================
-Benchmarks and Speed
-====================
-
-:Author:
-  Stefan Behnel
-
-.. meta::
-  :description: Performance evaluation of lxml and ElementTree:
-                fast operations, common pitfalls and optimisation hints.
-  :keywords: Python XML parser performance, XML processing, performance comparison,
-             lxml performance, lxml.etree, lxml.objectify, benchmarks, ElementTree
-
-
-lxml.etree is a very fast XML library.  Most of this is due to the
-speed of libxml2, e.g. the parser and serialiser, or the XPath engine.
-Other areas of lxml were specifically written for high performance in
-high-level operations, such as the tree iterators.
-
-On the other hand, the simplicity of lxml sometimes hides internal
-operations that are more costly than the API suggests.  If you are not
-aware of these cases, lxml may not always perform as you expect.  A
-common example in the Python world is the Python list type.  New users
-often expect it to be a linked list, while it actually is implemented
-as an array, which results in a completely different complexity for
-common operations.
-
-Similarly, the tree model of libxml2 is more complex than what lxml's
-ElementTree API projects into Python space, so some operations may
-show unexpected performance.  Rest assured that most lxml users will
-not notice this in real life, as lxml is very fast in absolute
-numbers.  It is definitely fast enough for most applications, so lxml
-is probably somewhere between 'fast enough' and 'the best choice' for
-yours.  Read some messages_ from happy_ users_ to see what we mean.
-
-.. _messages: http://permalink.gmane.org/gmane.comp.python.lxml.devel/3250
-.. _happy: http://article.gmane.org/gmane.comp.python.lxml.devel/3246
-.. _users: http://thread.gmane.org/gmane.comp.python.lxml.devel/3244/focus=3244
-
-This text describes where lxml.etree (abbreviated to 'lxe') excels, gives
-hints on some performance traps and compares the overall performance to the
-original ElementTree_ (ET) and cElementTree_ (cET) libraries by Fredrik Lundh.
-The cElementTree library is a fast C-implementation of the original
-ElementTree.
-
-.. _ElementTree:  http://effbot.org/zone/element-index.htm
-.. _cElementTree: http://effbot.org/zone/celementtree.htm
-
-.. contents::
-.. 
-   1  How to read the timings
-   2  Bad things first
-   3  Parsing and Serialising
-   4  The ElementTree API
-   5  Tree traversal
-   6  XPath
-   7  lxml.objectify
-
-
-General notes
-=============
-
-First thing to say: there *is* an overhead involved in having a DOM-like C
-library mimic the ElementTree API.  As opposed to ElementTree, lxml has to
-generate Python representations of tree nodes on the fly when asked for them,
-and the internal tree structure of libxml2 results in a higher maintenance
-overhead than the simpler top-down structure of ElementTree.  What this means
-is: the more of your code runs in Python, the less you can benefit from the
-speed of lxml and libxml2.  Note, however, that this is true for most
-performance critical Python applications.  No one would implement fourier
-transformations in pure Python when you can use NumPy.
-
-The up side then is that lxml provides powerful tools like tree iterators,
-XPath and XSLT, that can handle complex operations at the speed of C.  Their
-pythonic API in lxml makes them so flexible that most applications can easily
-benefit from them.
-
-
-How to read the timings
-=======================
-
-The statements made here are backed by the (micro-)benchmark scripts
-`bench_etree.py`_, `bench_xpath.py`_ and `bench_objectify.py`_ that come with
-the lxml source distribution.  They are distributed under the same BSD license
-as lxml itself, and the lxml project would like to promote them as a general
-benchmarking suite for all ElementTree implementations.  New benchmarks are
-very easy to add as tiny test methods, so if you write a performance test for
-a specific part of the API yourself, please consider sending it to the lxml
-mailing list.
-
-The timings cited below compare lxml 2.3 (with libxml2 2.7.6) to the
-latest developer versions of ElementTree (1.3beta2) and cElementTree
-(1.0.6a3).  They were run single-threaded on a 2.5GHz 64bit Intel Core
-Duo machine under Ubuntu Linux 9.10 (Karmic).  The C libraries were
-compiled with the same platform specific optimisation flags.  The
-Python interpreter (2.6.4) was also manually compiled for the
-platform.  Note that many of the following ElementTree timings are
-therefore better then what a normal Python installation with the
-standard library (c)ElementTree modules would yield.
-
-.. _`bench_etree.py`:     http://codespeak.net/svn/lxml/trunk/benchmark/bench_etree.py
-.. _`bench_xpath.py`:     http://codespeak.net/svn/lxml/trunk/benchmark/bench_xpath.py
-.. _`bench_objectify.py`: http://codespeak.net/svn/lxml/trunk/benchmark/bench_objectify.py
-
-The scripts run a number of simple tests on the different libraries, using
-different XML tree configurations: different tree sizes (T1-4), with or
-without attributes (-/A), with or without ASCII string or unicode text
-(-/S/U), and either against a tree or its serialised XML form (T/X).  In the
-result extracts cited below, T1 refers to a 3-level tree with many children at
-the third level, T2 is swapped around to have many children below the root
-element, T3 is a deep tree with few children at each level and T4 is a small
-tree, slightly broader than deep.  If repetition is involved, this usually
-means running the benchmark in a loop over all children of the tree root,
-otherwise, the operation is run on the root node (C/R).
-
-As an example, the character code ``(SATR T1)`` states that the benchmark was
-running for tree T1, with plain string text (S) and attributes (A).  It was
-run against the root element (R) in the tree structure of the data (T).
-
-Note that very small operations are repeated in integer loops to make them
-measurable.  It is therefore not always possible to compare the absolute
-timings of, say, a single access benchmark (which usually loops) and a 'get
-all in one step' benchmark, which already takes enough time to be measurable
-and is therefore measured as is.  An example is the index access to a single
-child, which cannot be compared to the timings for ``getchildren()``.  Take a
-look at the concrete benchmarks in the scripts to understand how the numbers
-compare.
-
-
-Parsing and Serialising
-=======================
-
-Serialisation is an area where lxml excels.  The reason is that it
-executes entirely at the C level, without any interaction with Python
-code.  The results are rather impressive, especially for UTF-8, which
-is native to libxml2.  While 20 to 40 times faster than (c)ElementTree
-1.2 (which is part of the standard library since Python 2.5), lxml is
-still more than 7 times as fast as the much improved ElementTree 1.3::
-
-  lxe: tostring_utf16  (S-TR T1)    9.8219 msec/pass
-  cET: tostring_utf16  (S-TR T1)   88.7740 msec/pass
-  ET : tostring_utf16  (S-TR T1)   99.6690 msec/pass
-
-  lxe: tostring_utf16  (UATR T1)   10.3750 msec/pass
-  cET: tostring_utf16  (UATR T1)   90.7581 msec/pass
-  ET : tostring_utf16  (UATR T1)  102.3569 msec/pass
-
-  lxe: tostring_utf16  (S-TR T2)   10.2711 msec/pass
-  cET: tostring_utf16  (S-TR T2)   93.5340 msec/pass
-  ET : tostring_utf16  (S-TR T2)  105.8500 msec/pass
-
-  lxe: tostring_utf8   (S-TR T2)    7.1261 msec/pass
-  cET: tostring_utf8   (S-TR T2)   93.4091 msec/pass
-  ET : tostring_utf8   (S-TR T2)  105.5419 msec/pass
-
-  lxe: tostring_utf8   (U-TR T3)    1.4591 msec/pass
-  cET: tostring_utf8   (U-TR T3)   29.6180 msec/pass
-  ET : tostring_utf8   (U-TR T3)   31.9080 msec/pass
-
-The same applies to plain text serialisation.  Note that the
-cElementTree version in the standard library does not currently
-support this, as it is a new feature in ET 1.3 and lxml.etree 2.0::
-
-  lxe: tostring_text_ascii     (S-TR T1)    1.9400 msec/pass
-  cET: tostring_text_ascii     (S-TR T1)   41.6231 msec/pass
-  ET : tostring_text_ascii     (S-TR T1)   52.7501 msec/pass
-
-  lxe: tostring_text_ascii     (S-TR T3)    0.5331 msec/pass
-  cET: tostring_text_ascii     (S-TR T3)   12.9712 msec/pass
-  ET : tostring_text_ascii     (S-TR T3)   15.3620 msec/pass
-
-  lxe: tostring_text_utf16     (S-TR T1)    3.2430 msec/pass
-  cET: tostring_text_utf16     (S-TR T1)   41.9259 msec/pass
-  ET : tostring_text_utf16     (S-TR T1)   53.4091 msec/pass
-
-  lxe: tostring_text_utf16     (U-TR T1)    3.6838 msec/pass
-  cET: tostring_text_utf16     (U-TR T1)   38.7859 msec/pass
-  ET : tostring_text_utf16     (U-TR T1)   50.8440 msec/pass
-
-Unlike ElementTree, the ``tostring()`` function in lxml also supports
-serialisation to a Python unicode string object::
-
-  lxe: tostring_text_unicode   (S-TR T1)    2.4869 msec/pass
-  lxe: tostring_text_unicode   (U-TR T1)    3.0370 msec/pass
-  lxe: tostring_text_unicode   (S-TR T3)    0.6518 msec/pass
-  lxe: tostring_text_unicode   (U-TR T3)    0.7300 msec/pass
-
-For parsing, lxml.etree and cElementTree compete for the medal.
-Depending on the input, either of the two can be faster.  The (c)ET
-libraries use a very thin layer on top of the expat parser, which is
-known to be very fast.  Here are some timings from the benchmarking
-suite::
-
-  lxe: parse_stringIO  (SAXR T1)   19.9990 msec/pass
-  cET: parse_stringIO  (SAXR T1)    8.4970 msec/pass
-  ET : parse_stringIO  (SAXR T1)  183.9781 msec/pass
-
-  lxe: parse_stringIO  (S-XR T3)    2.0790 msec/pass
-  cET: parse_stringIO  (S-XR T3)    2.7430 msec/pass
-  ET : parse_stringIO  (S-XR T3)   47.4229 msec/pass
-
-  lxe: parse_stringIO  (UAXR T3)   11.1630 msec/pass
-  cET: parse_stringIO  (UAXR T3)   15.0940 msec/pass
-  ET : parse_stringIO  (UAXR T3)   92.6890 msec/pass
-
-And another couple of timings `from a benchmark`_ that Fredrik Lundh
-`used to promote cElementTree`_, comparing a number of different
-parsers.  First, parsing a 280KB XML file containing Shakespeare's
-Hamlet::
-
-  lxml.etree.parse done in 0.005 seconds
-  cElementTree.parse done in 0.012 seconds
-  elementtree.ElementTree.parse done in 0.136 seconds
-  elementtree.XMLTreeBuilder: 6636 nodes read in 0.243 seconds
-  elementtree.SimpleXMLTreeBuilder: 6636 nodes read in 0.314 seconds
-  elementtree.SgmlopXMLTreeBuilder: 6636 nodes read in 0.104 seconds
-  minidom tree read in 0.137 seconds
-
-And a 3.4MB XML file containing the Old Testament::
-
-  lxml.etree.parse done in 0.031 seconds
-  cElementTree.parse done in 0.039 seconds
-  elementtree.ElementTree.parse done in 0.537 seconds
-  elementtree.XMLTreeBuilder: 25317 nodes read in 0.577 seconds
-  elementtree.SimpleXMLTreeBuilder: 25317 nodes read in 1.265 seconds
-  elementtree.SgmlopXMLTreeBuilder: 25317 nodes read in 0.331 seconds
-  minidom tree read in 0.643 seconds
-
-.. _`from a benchmark`: http://svn.effbot.org/public/elementtree-1.3/benchmark.py
-.. _`used to promote cElementTree`: http://effbot.org/zone/celementtree.htm#benchmarks
-
-For plain parser performance, lxml.etree and cElementTree tend to stay
-rather close to each other, usually within a factor of two, with
-winners well distributed over both sides.  Similar timings can be
-observed for the ``iterparse()`` function::
-
-  lxe: iterparse_stringIO  (SAXR T1)   24.8621 msec/pass
-  cET: iterparse_stringIO  (SAXR T1)   17.3280 msec/pass
-  ET : iterparse_stringIO  (SAXR T1)  199.1270 msec/pass
-
-  lxe: iterparse_stringIO  (UAXR T3)   12.3630 msec/pass
-  cET: iterparse_stringIO  (UAXR T3)   17.5190 msec/pass
-  ET : iterparse_stringIO  (UAXR T3)   95.8610 msec/pass
-
-However, if you benchmark the complete round-trip of a serialise-parse
-cycle, the numbers will look similar to these::
-
-  lxe: write_utf8_parse_stringIO  (S-TR T1)   27.5791 msec/pass
-  cET: write_utf8_parse_stringIO  (S-TR T1)  158.9060 msec/pass
-  ET : write_utf8_parse_stringIO  (S-TR T1)  347.8320 msec/pass
-
-  lxe: write_utf8_parse_stringIO  (UATR T2)   34.4141 msec/pass
-  cET: write_utf8_parse_stringIO  (UATR T2)  187.7041 msec/pass
-  ET : write_utf8_parse_stringIO  (UATR T2)  388.9449 msec/pass
-
-  lxe: write_utf8_parse_stringIO  (S-TR T3)    3.7861 msec/pass
-  cET: write_utf8_parse_stringIO  (S-TR T3)   52.4600 msec/pass
-  ET : write_utf8_parse_stringIO  (S-TR T3)  101.4550 msec/pass
-
-  lxe: write_utf8_parse_stringIO  (SATR T4)    0.5522 msec/pass
-  cET: write_utf8_parse_stringIO  (SATR T4)    3.8941 msec/pass
-  ET : write_utf8_parse_stringIO  (SATR T4)    5.9431 msec/pass
-
-For applications that require a high parser throughput of large files,
-and that do little to no serialization, both cET and lxml.etree are a
-good choice.  The cET library is particularly fast for iterparse
-applications that extract small amounts of data or aggregate
-information from large XML data sets that do not fit into memory.  If
-it comes to round-trip performance, however, lxml is multiple times
-faster in total.  So, whenever the input documents are not
-considerably larger than the output, lxml is the clear winner.
-
-Again, note that the cET/ET timings are not based on the standard
-library versions in Python 2.6, but on vastly improved, unreleased
-developer versions.  Especially the serialiser in the standard library
-modules is several times slower than the benchmarked one, and at least
-20 times slower than the one in lxml.etree.
-
-Regarding HTML parsing, Ian Bicking has done some `benchmarking on
-lxml's HTML parser`_, comparing it to a number of other famous HTML
-parser tools for Python.  lxml wins this contest by quite a length.
-To give an idea, the numbers suggest that lxml.html can run a couple
-of parse-serialise cycles in the time that other tools need for
-parsing alone.  The comparison even shows some very favourable results
-regarding memory consumption.
-
-.. _`benchmarking on lxml's HTML parser`: http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/
-
-Liza Daly has written an article that presents a couple of tweaks to
-get the most out of lxml's parser for very large XML documents.  She
-quite favourably positions ``lxml.etree`` as a tool for
-`high-performance XML parsing`_.
-
-.. _`high-performance XML parsing`: http://www.ibm.com/developerworks/xml/library/x-hiperfparse/
-
-Finally, `xml.com`_ has a couple of publications about XML parser
-performance.  Farwick and Hafner have written two interesting articles
-that compare the parser of libxml2 to some major Java based XML
-parsers.  One deals with `event-driven parser performance`_, the other
-one presents `benchmark results comparing DOM parsers`_.  Both
-comparisons suggest that libxml2's parser performance is largely
-superiour to all commonly used Java parsers in almost all cases.  Note
-that the C parser benchmark results are based on xmlbench_, which uses
-a simpler setup for libxml2 than lxml does.
-
-.. _`xml.com`: http://www.xml.com/
-.. _`event-driven parser performance`: http://www.xml.com/lpt/a/1702
-.. _`benchmark results comparing DOM parsers`: http://www.xml.com/lpt/a/1703
-.. _xmlbench: http://xmlbench.sourceforge.net/
-
-
-The ElementTree API
-===================
-
-Since all three libraries implement the same API, their performance is
-easy to compare in this area.  A major disadvantage for lxml's
-performance is the different tree model that underlies libxml2.  It
-allows lxml to provide parent pointers for elements and full XPath
-support, but also increases the overhead of tree building and
-restructuring.  This can be seen from the tree setup times of the
-benchmark (given in seconds)::
-
-  lxe:       --     S-     U-     -A     SA     UA  
-       T1: 0.0407 0.0470 0.0506 0.0396 0.0464 0.0504
-       T2: 0.0480 0.0557 0.0584 0.0520 0.0608 0.0627
-       T3: 0.0118 0.0132 0.0136 0.0319 0.0322 0.0319
-       T4: 0.0002 0.0002 0.0002 0.0006 0.0006 0.0006
-  cET:       --     S-     U-     -A     SA     UA  
-       T1: 0.0045 0.0043 0.0043 0.0045 0.0043 0.0043
-       T2: 0.0068 0.0069 0.0066 0.0078 0.0070 0.0069
-       T3: 0.0040 0.0040 0.0040 0.0050 0.0052 0.0067
-       T4: 0.0000 0.0000 0.0000 0.0001 0.0001 0.0001
-  ET :       --     S-     U-     -A     SA     UA  
-       T1: 0.0479 0.1051 0.1279 0.0487 0.1597 0.0484
-       T2: 0.1995 0.0553 0.2297 0.2550 0.0550 0.2881
-       T3: 0.0177 0.0169 0.0174 0.0185 0.2895 0.0189
-       T4: 0.0003 0.0002 0.0003 0.0003 0.0014 0.0003
-
-While lxml is still a lot faster than ET in most cases, cET can be
-several times faster than lxml here.  One of the reasons is that lxml
-must encode incoming string data and tag names into UTF-8, and
-additionally discard the created Python elements after their use, when
-they are no longer referenced.  ET and cET represent the tree itself
-through these objects, which reduces the overhead in creating them.
-
-
-Child access
-------------
-
-The same reason makes operations like collecting children as in
-``list(element)`` more costly in lxml.  Where ET and cET can quickly
-create a shallow copy of their list of children, lxml has to create a
-Python object for each child and collect them in a list::
-
-  lxe: root_list_children        (--TR T1)    0.0079 msec/pass
-  cET: root_list_children        (--TR T1)    0.0029 msec/pass
-  ET : root_list_children        (--TR T1)    0.0100 msec/pass
-
-  lxe: root_list_children        (--TR T2)    0.0849 msec/pass
-  cET: root_list_children        (--TR T2)    0.0110 msec/pass
-  ET : root_list_children        (--TR T2)    0.1481 msec/pass
-
-This handicap is also visible when accessing single children::
-
-  lxe: first_child               (--TR T2)    0.0699 msec/pass
-  cET: first_child               (--TR T2)    0.0608 msec/pass
-  ET : first_child               (--TR T2)    0.3419 msec/pass
-
-  lxe: last_child                (--TR T1)    0.0710 msec/pass
-  cET: last_child                (--TR T1)    0.0648 msec/pass
-  ET : last_child                (--TR T1)    0.3309 msec/pass
-
-... unless you also add the time to find a child index in a bigger
-list.  ET and cET use Python lists here, which are based on arrays.
-The data structure used by libxml2 is a linked tree, and thus, a
-linked list of children::
-
-  lxe: middle_child              (--TR T1)    0.0989 msec/pass
-  cET: middle_child              (--TR T1)    0.0598 msec/pass
-  ET : middle_child              (--TR T1)    0.3390 msec/pass
-
-  lxe: middle_child              (--TR T2)    2.7599 msec/pass
-  cET: middle_child              (--TR T2)    0.0620 msec/pass
-  ET : middle_child              (--TR T2)    0.3610 msec/pass
-
-
-Element creation
-----------------
-
-As opposed to ET, libxml2 has a notion of documents that each element must be
-in.  This results in a major performance difference for creating independent
-Elements that end up in independently created documents::
-
-  lxe: create_elements           (--TC T2)    1.1640 msec/pass
-  cET: create_elements           (--TC T2)    0.0808 msec/pass
-  ET : create_elements           (--TC T2)    0.5801 msec/pass
-
-Therefore, it is always preferable to create Elements for the document they
-are supposed to end up in, either as SubElements of an Element or using the
-explicit ``Element.makeelement()`` call::
-
-  lxe: makeelement               (--TC T2)    1.2751 msec/pass
-  cET: makeelement               (--TC T2)    0.1469 msec/pass
-  ET : makeelement               (--TC T2)    0.7451 msec/pass
-
-  lxe: create_subelements        (--TC T2)    1.1470 msec/pass
-  cET: create_subelements        (--TC T2)    0.1080 msec/pass
-  ET : create_subelements        (--TC T2)    1.4369 msec/pass
-
-So, if the main performance bottleneck of an application is creating large XML
-trees in memory through calls to Element and SubElement, cET is the best
-choice.  Note, however, that the serialisation performance may even out this
-advantage, especially for smaller trees and trees with many attributes.
-
-
-Merging different sources
--------------------------
-
-A critical action for lxml is moving elements between document contexts.  It
-requires lxml to do recursive adaptations throughout the moved tree structure.
-
-The following benchmark appends all root children of the second tree to the
-root of the first tree::
-
-  lxe: append_from_document      (--TR T1,T2)    2.0740 msec/pass
-  cET: append_from_document      (--TR T1,T2)    0.1271 msec/pass
-  ET : append_from_document      (--TR T1,T2)    0.4020 msec/pass
-
-  lxe: append_from_document      (--TR T3,T4)    0.0229 msec/pass
-  cET: append_from_document      (--TR T3,T4)    0.0088 msec/pass
-  ET : append_from_document      (--TR T3,T4)    0.0291 msec/pass
-
-Although these are fairly small numbers compared to parsing, this easily shows
-the different performance classes for lxml and (c)ET.  Where the latter do not
-have to care about parent pointers and tree structures, lxml has to deep
-traverse the appended tree.  The performance difference therefore increases
-with the size of the tree that is moved.
-
-This difference is not always as visible, but applies to most parts of the
-API, like inserting newly created elements::
-
-  lxe: insert_from_document       (--TR T1,T2)    7.2598 msec/pass
-  cET: insert_from_document       (--TR T1,T2)    0.1578 msec/pass
-  ET : insert_from_document       (--TR T1,T2)    0.5150 msec/pass
-
-or replacing the child slice by a newly created element::
-
-  lxe: replace_children_element   (--TC T1)    0.1149 msec/pass
-  cET: replace_children_element   (--TC T1)    0.0110 msec/pass
-  ET : replace_children_element   (--TC T1)    0.0558 msec/pass
-
-as opposed to replacing the slice with an existing element from the
-same document::
-
-  lxe: replace_children           (--TC T1)    0.0091 msec/pass
-  cET: replace_children           (--TC T1)    0.0060 msec/pass
-  ET : replace_children           (--TC T1)    0.0188 msec/pass
-
-While these numbers are too small to provide a major performance
-impact in practice, you should keep this difference in mind when you
-merge very large trees.
-
-
-deepcopy
---------
-
-Deep copying a tree is fast in lxml::
-
-  lxe: deepcopy_all              (--TR T1)    5.0900 msec/pass
-  cET: deepcopy_all              (--TR T1)   57.9181 msec/pass
-  ET : deepcopy_all              (--TR T1)  499.1000 msec/pass
-
-  lxe: deepcopy_all              (-ATR T2)    6.3980 msec/pass
-  cET: deepcopy_all              (-ATR T2)   65.6390 msec/pass
-  ET : deepcopy_all              (-ATR T2)  526.5379 msec/pass
-
-  lxe: deepcopy_all              (S-TR T3)    1.4491 msec/pass
-  cET: deepcopy_all              (S-TR T3)   14.7018 msec/pass
-  ET : deepcopy_all              (S-TR T3)  123.5120 msec/pass
-
-So, for example, if you have a database-like scenario where you parse in a
-large tree and then search and copy independent subtrees from it for further
-processing, lxml is by far the best choice here.
-
-
-Tree traversal
---------------
-
-Another area where lxml is very fast is iteration for tree traversal.  If your
-algorithms can benefit from step-by-step traversal of the XML tree and
-especially if few elements are of interest or the target element tag name is
-known, lxml is a good choice::
-
-  lxe: getiterator_all      (--TR T1)    1.6890 msec/pass
-  cET: getiterator_all      (--TR T1)   23.8621 msec/pass
-  ET : getiterator_all      (--TR T1)   11.1070 msec/pass
-
-  lxe: getiterator_islice   (--TR T2)    0.0188 msec/pass
-  cET: getiterator_islice   (--TR T2)    0.1841 msec/pass
-  ET : getiterator_islice   (--TR T2)   11.7059 msec/pass
-
-  lxe: getiterator_tag      (--TR T2)    0.0119 msec/pass
-  cET: getiterator_tag      (--TR T2)    0.3560 msec/pass
-  ET : getiterator_tag      (--TR T2)   10.6668 msec/pass
-
-  lxe: getiterator_tag_all  (--TR T2)    0.2429 msec/pass
-  cET: getiterator_tag_all  (--TR T2)   20.3710 msec/pass
-  ET : getiterator_tag_all  (--TR T2)   10.6280 msec/pass
-
-This translates directly into similar timings for ``Element.findall()``::
-
-  lxe: findall              (--TR T2)    2.4588 msec/pass
-  cET: findall              (--TR T2)   24.1358 msec/pass
-  ET : findall              (--TR T2)   13.0949 msec/pass
-
-  lxe: findall              (--TR T3)    0.5939 msec/pass
-  cET: findall              (--TR T3)    6.9802 msec/pass
-  ET : findall              (--TR T3)    3.8991 msec/pass
-
-  lxe: findall_tag          (--TR T2)    0.2789 msec/pass
-  cET: findall_tag          (--TR T2)   20.5719 msec/pass
-  ET : findall_tag          (--TR T2)   10.8678 msec/pass
-
-  lxe: findall_tag          (--TR T3)    0.1638 msec/pass
-  cET: findall_tag          (--TR T3)    5.0790 msec/pass
-  ET : findall_tag          (--TR T3)    2.5120 msec/pass
-
-Note that all three libraries currently use the same Python
-implementation for ``.findall()``, except for their native tree
-iterator (``element.iter()``).
-
-
-XPath
-=====
-
-The following timings are based on the benchmark script `bench_xpath.py`_.
-
-This part of lxml does not have an equivalent in ElementTree.  However, lxml
-provides more than one way of accessing it and you should take care which part
-of the lxml API you use.  The most straight forward way is to call the
-``xpath()`` method on an Element or ElementTree::
-
-  lxe: xpath_method         (--TC T1)    0.7598 msec/pass
-  lxe: xpath_method         (--TC T2)   12.6798 msec/pass
-  lxe: xpath_method         (--TC T3)    0.0758 msec/pass
-  lxe: xpath_method         (--TC T4)    0.6182 msec/pass
-
-This is well suited for testing and when the XPath expressions are as diverse
-as the trees they are called on.  However, if you have a single XPath
-expression that you want to apply to a larger number of different elements,
-the ``XPath`` class is the most efficient way to do it::
-
-  lxe: xpath_class          (--TC T1)    0.2189 msec/pass
-  lxe: xpath_class          (--TC T2)    1.4110 msec/pass
-  lxe: xpath_class          (--TC T3)    0.0319 msec/pass
-  lxe: xpath_class          (--TC T4)    0.0880 msec/pass
-
-Note that this still allows you to use variables in the expression, so you can
-parse it once and then adapt it through variables at call time.  In other
-cases, where you have a fixed Element or ElementTree and want to run different
-expressions on it, you should consider the ``XPathEvaluator``::
-
-  lxe: xpath_element        (--TR T1)    0.1669 msec/pass
-  lxe: xpath_element        (--TR T2)    6.9060 msec/pass
-  lxe: xpath_element        (--TR T3)    0.0451 msec/pass
-  lxe: xpath_element        (--TR T4)    0.1681 msec/pass
-
-While it looks slightly slower, creating an XPath object for each of the
-expressions generates a much higher overhead here::
-
-  lxe: xpath_class_repeat   (--TC T1)    0.7451 msec/pass
-  lxe: xpath_class_repeat   (--TC T2)   12.2290 msec/pass
-  lxe: xpath_class_repeat   (--TC T3)    0.0730 msec/pass
-  lxe: xpath_class_repeat   (--TC T4)    0.5970 msec/pass
-
-
-A longer example
-================
-
-... based on lxml 1.3.
-
-A while ago, Uche Ogbuji posted a `benchmark proposal`_ that would
-read in a 3MB XML version of the `Old Testament`_ of the Bible and
-look for the word *begat* in all verses.  Apparently, it is contained
-in 120 out of almost 24000 verses.  This is easy to implement in
-ElementTree using ``findall()``.  However, the fastest and most memory
-friendly way to do this is obviously ``iterparse()``, as most of the
-data is not of any interest.
-
-.. _`benchmark proposal`: http://www.onlamp.com/pub/wlg/6291
-.. _`Old Testament`: http://www.ibiblio.org/bosak/xml/eg/religion.2.00.xml.zip
-
-Now, Uche's original proposal was more or less the following:
-
-.. sourcecode:: python
-
-  def bench_ET():
-      tree = ElementTree.parse("ot.xml")
-      result = []
-      for v in tree.findall("//v"):
-          text = v.text
-          if 'begat' in text:
-              result.append(text)
-      return len(result)
-
-which takes about one second on my machine today.  The faster ``iterparse()``
-variant looks like this:
-
-.. sourcecode:: python
-
-  def bench_ET_iterparse():
-      result = []
-      for event, v in ElementTree.iterparse("ot.xml"):
-          if v.tag == 'v':
-              text = v.text
-              if 'begat' in text:
-                  result.append(text)
-          v.clear()
-      return len(result)
-
-The improvement is about 10%.  At the time I first tried (early 2006), lxml
-didn't have ``iterparse()`` support, but the ``findall()`` variant was already
-faster than ElementTree.  This changes immediately when you switch to
-cElementTree.  The latter only needs 0.17 seconds to do the trick today and
-only some impressive 0.10 seconds when running the iterparse version.  And
-even back then, it was quite a bit faster than what lxml could achieve.
-
-Since then, lxml has matured a lot and has gotten much faster.  The iterparse
-variant now runs in 0.14 seconds, and if you remove the ``v.clear()``, it is
-even a little faster (which isn't the case for cElementTree).
-
-One of the many great tools in lxml is XPath, a swiss army knife for finding
-things in XML documents.  It is possible to move the whole thing to a pure
-XPath implementation, which looks like this:
-
-.. sourcecode:: python
-
-  def bench_lxml_xpath_all():
-      tree = etree.parse("ot.xml")
-      result = tree.xpath("//v[contains(., 'begat')]/text()")
-      return len(result)
-
-This runs in about 0.13 seconds and is about the shortest possible
-implementation (in lines of Python code) that I could come up with.  Now, this
-is already a rather complex XPath expression compared to the simple "//v"
-ElementPath expression we started with.  Since this is also valid XPath, let's
-try this instead:
-
-.. sourcecode:: python
-
-  def bench_lxml_xpath():
-      tree = etree.parse("ot.xml")
-      result = []
-      for v in tree.xpath("//v"):
-          text = v.text
-          if 'begat' in text:
-              result.append(text)
-      return len(result)
-
-This gets us down to 0.12 seconds, thus showing that a generic XPath
-evaluation engine cannot always compete with a simpler, tailored solution.
-However, since this is not much different from the original findall variant,
-we can remove the complexity of the XPath call completely and just go with
-what we had in the beginning.  Under lxml, this runs in the same 0.12 seconds.
-
-But there is one thing left to try.  We can replace the simple ElementPath
-expression with a native tree iterator:
-
-.. sourcecode:: python
-
-  def bench_lxml_getiterator():
-      tree = etree.parse("ot.xml")
-      result = []
-      for v in tree.getiterator("v"):
-          text = v.text
-          if 'begat' in text:
-              result.append(text)
-      return len(result)
-
-This implements the same thing, just without the overhead of parsing and
-evaluating a path expression.  And this makes it another bit faster, down to
-0.11 seconds.  For comparison, cElementTree runs this version in 0.17 seconds.
-
-So, what have we learned?
-
-* Python code is not slow.  The pure XPath solution was not even as fast as
-  the first shot Python implementation.  In general, a few more lines in
-  Python make things more readable, which is much more important than the last
-  5% of performance.
-
-* It's important to know the available options - and it's worth starting with
-  the most simple one.  In this case, a programmer would then probably have
-  started with ``getiterator("v")`` or ``iterparse()``.  Either of them would
-  already have been the most efficient, depending on which library is used.
-
-* It's important to know your tool.  lxml and cElementTree are both very fast
-  libraries, but they do not have the same performance characteristics.  The
-  fastest solution in one library can be comparatively slow in the other.  If
-  you optimise, optimise for the specific target platform.
-
-* It's not always worth optimising.  After all that hassle we got from 0.12
-  seconds for the initial implementation to 0.11 seconds.  Switching over to
-  cElementTree and writing an ``iterparse()`` based version would have given
-  us 0.10 seconds - not a big difference for 3MB of XML.
-
-* Take care what operation is really dominating in your use case.  If we split
-  up the operations, we can see that lxml is slightly slower than cElementTree
-  on ``parse()`` (both about 0.06 seconds), but more visibly slower on
-  ``iterparse()``: 0.07 versus 0.10 seconds.  However, tree iteration in lxml
-  is increadibly fast, so it can be better to parse the whole tree and then
-  iterate over it rather than using ``iterparse()`` to do both in one step.
-  Or, you can just wait for the lxml developers to optimise iterparse in one
-  of the next releases...
-
-
-lxml.objectify
-==============
-
-The following timings are based on the benchmark script `bench_objectify.py`_.
-
-Objectify is a data-binding API for XML based on lxml.etree, that was added in
-version 1.1.  It uses standard Python attribute access to traverse the XML
-tree.  It also features ObjectPath, a fast path language based on the same
-meme.
-
-Just like lxml.etree, lxml.objectify creates Python representations of
-elements on the fly.  To save memory, the normal Python garbage collection
-mechanisms will discard them when their last reference is gone.  In cases
-where deeply nested elements are frequently accessed through the objectify
-API, the create-discard cycles can become a bottleneck, as elements have to be
-instantiated over and over again.
-
-
-ObjectPath
-----------
-
-ObjectPath can be used to speed up the access to elements that are deep in the
-tree.  It avoids step-by-step Python element instantiations along the path,
-which can substantially improve the access time::
-
-  lxe: attribute                  (--TR T1)    4.8928 msec/pass
-  lxe: attribute                  (--TR T2)   25.5480 msec/pass
-  lxe: attribute                  (--TR T4)    4.6349 msec/pass
-
-  lxe: objectpath                 (--TR T1)    1.4842 msec/pass
-  lxe: objectpath                 (--TR T2)   21.1990 msec/pass
-  lxe: objectpath                 (--TR T4)    1.4892 msec/pass
-
-  lxe: attributes_deep            (--TR T1)   11.9710 msec/pass
-  lxe: attributes_deep            (--TR T2)   32.4290 msec/pass
-  lxe: attributes_deep            (--TR T4)   11.4839 msec/pass
-
-  lxe: objectpath_deep            (--TR T1)    4.8139 msec/pass
-  lxe: objectpath_deep            (--TR T2)   24.6511 msec/pass
-  lxe: objectpath_deep            (--TR T4)    4.7588 msec/pass
-
-Note, however, that parsing ObjectPath expressions is not for free either, so
-this is most effective for frequently accessing the same element.
-
-
-Caching Elements
-----------------
-
-A way to improve the normal attribute access time is static instantiation of
-the Python objects, thus trading memory for speed.  Just create a cache
-dictionary and run:
-
-.. sourcecode:: python
-
-    cache[root] = list(root.iter())
-
-after parsing and:
-
-.. sourcecode:: python
-
-    del cache[root]
-
-when you are done with the tree.  This will keep the Python element
-representations of all elements alive and thus avoid the overhead of repeated
-Python object creation.  You can also consider using filters or generator
-expressions to be more selective.  By choosing the right trees (or even
-subtrees and elements) to cache, you can trade memory usage against access
-speed::
-
-  lxe: attribute_cached           (--TR T1)    3.8228 msec/pass
-  lxe: attribute_cached           (--TR T2)   23.7138 msec/pass
-  lxe: attribute_cached           (--TR T4)    3.5269 msec/pass
-
-  lxe: attributes_deep_cached     (--TR T1)    4.6771 msec/pass
-  lxe: attributes_deep_cached     (--TR T2)   24.8699 msec/pass
-  lxe: attributes_deep_cached     (--TR T4)    4.3321 msec/pass
-
-  lxe: objectpath_deep_cached     (--TR T1)    1.1430 msec/pass
-  lxe: objectpath_deep_cached     (--TR T2)   19.7470 msec/pass
-  lxe: objectpath_deep_cached     (--TR T4)    1.1740 msec/pass
-
-Things to note: you cannot currently use ``weakref.WeakKeyDictionary`` objects
-for this as lxml's element objects do not support weak references (which are
-costly in terms of memory).  Also note that new element objects that you add
-to these trees will not turn up in the cache automatically and will therefore
-still be garbage collected when all their Python references are gone, so this
-is most effective for largely immutable trees.  You should consider using a
-set instead of a list in this case and add new elements by hand.
-
-
-Further optimisations
----------------------
-
-Here are some more things to try if optimisation is required:
-
-* A lot of time is usually spent in tree traversal to find the addressed
-  elements in the tree.  If you often work in subtrees, do what you would also
-  do with deep Python objects: assign the parent of the subtree to a variable
-  or pass it into functions instead of starting at the root.  This allows
-  accessing its descendents more directly.
-
-* Try assigning data values directly to attributes instead of passing them
-  through DataElement.
-
-* If you use custom data types that are costly to parse, try running
-  ``objectify.annotate()`` over read-only trees to speed up the attribute type
-  inference on read access.
-
-Note that none of these measures is guaranteed to speed up your application.
-As usual, you should prefer readable code over premature optimisations and
-profile your expected use cases before bothering to apply optimisations at
-random.
diff --git a/doc/sphinx/_sources/resolvers.txt b/doc/sphinx/_sources/resolvers.txt
deleted file mode 100644 (file)
index 6f0b320..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-Document loading and URL resolving
-==================================
-
-.. contents::
-..
-   1  XML Catalogs
-   2  URI Resolvers
-   3  Document loading in context
-   4  I/O access control in XSLT
-
-
-The normal way to load external entities (such as DTDs) is by using
-XML catalogs.  Lxml also has support for user provided document
-loaders in both the parsers and XSL transformations.  These so-called
-resolvers are subclasses of the etree.Resolver class.
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-
-XML Catalogs
-------------
-
-When loading an external entity for a document, e.g. a DTD, the parser
-is normally configured to prevent network access (see the
-``no_network`` parser option).  Instead, it will try to load the
-entity from their local file system path or, in the most common case
-that the entity uses a network URL as reference, from a local XML
-catalog.
-
-`XML catalogs`_ are the preferred and agreed-on mechanism to load
-external entities from XML processors.  Most tools will use them, so
-it is worth configuring them properly on a system.  Many Linux
-installations use them by default, but on other systems they may need
-to get enabled manually.  The `libxml2 site`_ has some documentation
-on `how to set up XML catalogs`_
-
-.. _`XML catalogs`: http://www.oasis-open.org/committees/entity/spec.html
-.. _`libxml2 site`: http://xmlsoft.org/
-.. _`how to set up XML catalogs`: http://xmlsoft.org/catalog.html
-
-
-URI Resolvers
--------------
-
-Here is an example of a custom resolver:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-
-  >>> class DTDResolver(etree.Resolver):
-  ...     def resolve(self, url, id, context):
-  ...         print("Resolving URL '%s'" % url)
-  ...         return self.resolve_string(
-  ...             '<!ENTITY myentity "[resolved text: %s]">' % url, context)
-
-This defines a resolver that always returns a dynamically generated DTD
-fragment defining an entity.  The ``url`` argument passes the system URL of
-the requested document, the ``id`` argument is the public ID.  Note that any
-of these may be None.  The context object is not normally used by client code.
-
-Resolving is based on the methods of the Resolver object that build
-internal representations of the result document.  The following
-methods exist:
-
-* ``resolve_string`` takes a parsable string as result document
-* ``resolve_filename`` takes a filename
-* ``resolve_file`` takes an open file-like object that has at least a read() method
-* ``resolve_empty`` resolves into an empty document
-
-The ``resolve()`` method may choose to return None, in which case the next
-registered resolver (or the default resolver) is consulted.  Resolving always
-terminates if ``resolve()`` returns the result of any of the above
-``resolve_*()`` methods.
-
-Resolvers are registered local to a parser:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser(load_dtd=True)
-  >>> parser.resolvers.add( DTDResolver() )
-
-Note that we instantiate a parser that loads the DTD.  This is not done by the
-default parser, which does no validation.  When we use this parser to parse a
-document that requires resolving a URL, it will call our custom resolver:
-
-.. sourcecode:: pycon
-
-  >>> xml = '<!DOCTYPE doc SYSTEM "MissingDTD.dtd"><doc>&myentity;</doc>'
-  >>> tree = etree.parse(StringIO(xml), parser)
-  Resolving URL 'MissingDTD.dtd'
-  >>> root = tree.getroot()
-  >>> print(root.text)
-  [resolved text: MissingDTD.dtd]
-
-The entity in the document was correctly resolved by the generated DTD
-fragment.
-
-
-Document loading in context
----------------------------
-
-XML documents memorise their initial parser (and its resolvers) during their
-life-time.  This means that a lookup process related to a document will use
-the resolvers of the document's parser.  We can demonstrate this with a
-resolver that only responds to a specific prefix:
-
-.. sourcecode:: pycon
-
-  >>> class PrefixResolver(etree.Resolver):
-  ...     def __init__(self, prefix):
-  ...         self.prefix = prefix
-  ...         self.result_xml = '''\
-  ...              <xsl:stylesheet
-  ...                     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...                <test xmlns="testNS">%s-TEST</test>
-  ...              </xsl:stylesheet>
-  ...              ''' % prefix
-  ...     def resolve(self, url, pubid, context):
-  ...         if url.startswith(self.prefix):
-  ...             print("Resolved url %s as prefix %s" % (url, self.prefix))
-  ...             return self.resolve_string(self.result_xml, context)
-
-We demonstrate this in XSLT and use the following stylesheet as an example:
-
-.. sourcecode:: pycon
-
-  >>> xml_text = """\
-  ... <xsl:stylesheet version="1.0"
-  ...    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...   <xsl:include href="honk:test"/>
-  ...   <xsl:template match="/">
-  ...     <test>
-  ...       <xsl:value-of select="document('hoi:test')/*/*/text()"/>
-  ...     </test>
-  ...   </xsl:template>
-  ... </xsl:stylesheet>
-  ... """
-
-Note that it needs to resolve two URIs: ``honk:test`` when compiling the XSLT
-document (i.e. when resolving ``xsl:import`` and ``xsl:include`` elements) and
-``hoi:test`` at transformation time, when calls to the ``document`` function
-are resolved.  If we now register different resolvers with two different
-parsers, we can parse our document twice in different resolver contexts:
-
-.. sourcecode:: pycon
-
-  >>> hoi_parser = etree.XMLParser()
-  >>> normal_doc = etree.parse(StringIO(xml_text), hoi_parser)
-
-  >>> hoi_parser.resolvers.add( PrefixResolver("hoi") )
-  >>> hoi_doc = etree.parse(StringIO(xml_text), hoi_parser)
-
-  >>> honk_parser = etree.XMLParser()
-  >>> honk_parser.resolvers.add( PrefixResolver("honk") )
-  >>> honk_doc = etree.parse(StringIO(xml_text), honk_parser)
-
-These contexts are important for the further behaviour of the documents.  They
-memorise their original parser so that the correct set of resolvers is used in
-subsequent lookups.  To compile the stylesheet, XSLT must resolve the
-``honk:test`` URI in the ``xsl:include`` element.  The ``hoi`` resolver cannot
-do that:
-
-.. sourcecode:: pycon
-
-  >>> transform = etree.XSLT(normal_doc)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XSLTParseError: Cannot resolve URI honk:test
-
-  >>> transform = etree.XSLT(hoi_doc)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XSLTParseError: Cannot resolve URI honk:test
-
-However, if we use the ``honk`` resolver associated with the respective
-document, everything works fine:
-
-.. sourcecode:: pycon
-
-  >>> transform = etree.XSLT(honk_doc)
-  Resolved url honk:test as prefix honk
-
-Running the transform accesses the same parser context again, but since it now
-needs to resolve the ``hoi`` URI in the call to the document function, its
-``honk`` resolver will fail to do so:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(normal_doc)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XSLTApplyError: Cannot resolve URI hoi:test
-
-  >>> result = transform(hoi_doc)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XSLTApplyError: Cannot resolve URI hoi:test
-
-  >>> result = transform(honk_doc)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XSLTApplyError: Cannot resolve URI hoi:test
-
-This can only be solved by adding a ``hoi`` resolver to the original parser:
-
-.. sourcecode:: pycon
-
-  >>> honk_parser.resolvers.add( PrefixResolver("hoi") )
-  >>> result = transform(honk_doc)
-  Resolved url hoi:test as prefix hoi
-  >>> print(str(result)[:-1])
-  <?xml version="1.0"?>
-  <test>hoi-TEST</test>
-
-We can see that the ``hoi`` resolver was called to generate a document that
-was then inserted into the result document by the XSLT transformation.  Note
-that this is completely independent of the XML file you transform, as the URI
-is resolved from within the stylesheet context:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(normal_doc)
-  Resolved url hoi:test as prefix hoi
-  >>> print(str(result)[:-1])
-  <?xml version="1.0"?>
-  <test>hoi-TEST</test>
-
-It may be seen as a matter of taste what resolvers the generated document
-inherits.  For XSLT, the output document inherits the resolvers of the input
-document and not those of the stylesheet.  Therefore, the last result does not
-inherit any resolvers at all.
-
-
-I/O access control in XSLT
---------------------------
-
-By default, XSLT supports all extension functions from libxslt and libexslt as
-well as Python regular expressions through EXSLT.  Some extensions enable
-style sheets to read and write files on the local file system.
-
-XSLT has a mechanism to control the access to certain I/O operations during
-the transformation process.  This is most interesting where XSL scripts come
-from potentially insecure sources and must be prevented from modifying the
-local file system.  Note, however, that there is no way to keep them from
-eating up your precious CPU time, so this should not stop you from thinking
-about what XSLT you execute.
-
-Access control is configured using the ``XSLTAccessControl`` class.  It can be
-called with a number of keyword arguments that allow or deny specific
-operations:
-
-.. sourcecode:: pycon
-
-  >>> transform = etree.XSLT(honk_doc)
-  Resolved url honk:test as prefix honk
-  >>> result = transform(normal_doc)
-  Resolved url hoi:test as prefix hoi
-
-  >>> ac = etree.XSLTAccessControl(read_network=False)
-  >>> transform = etree.XSLT(honk_doc, access_control=ac)
-  Resolved url honk:test as prefix honk
-  >>> result = transform(normal_doc)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XSLTApplyError: xsltLoadDocument: read rights for hoi:test denied
-
-There are a few things to keep in mind:
-
-* XSL parsing (``xsl:import``, etc.) is not affected by this mechanism
-* ``read_file=False`` does not imply ``write_file=False``, all controls are
-  independent.
-* ``read_file`` only applies to files in the file system.  Any other scheme
-  for URLs is controlled by the ``*_network`` keywords.
-* If you need more fine-grained control than switching access on and off, you
-  should consider writing a custom document loader that returns empty
-  documents or raises exceptions if access is denied.
diff --git a/doc/sphinx/_sources/s5/lxml-ep2008.txt b/doc/sphinx/_sources/s5/lxml-ep2008.txt
deleted file mode 100644 (file)
index 4f4593b..0000000
+++ /dev/null
@@ -1,1130 +0,0 @@
-====================================
-Implementing XML languages with lxml
-====================================
-
-Dr. Stefan Behnel
------------------
-
-.. class:: center
-
-   http://codespeak.net/lxml/
-
-   lxml-dev@codespeak.net
-
-   .. image:: tagpython.png
-
-.. footer:: Dr. Stefan Behnel, EuroPython 2008, Vilnius/Lietuva
-
-.. include:: <s5defs.txt>
-
-
-What is an Â»XML language«?
-==========================
-
-* a language in XML notation
-
-* aka Â»XML dialect«
-
-  * except that it's not a dialect
-
-* Examples:
-
-  * XML Schema
-
-  * Atom/RSS
-
-  * (X)HTML
-
-  * Open Document Format
-
-  * SOAP
-
-  * ... add your own one here
-
-
-Popular mistakes to avoid (1)
-=============================
-
-"That's easy, I can use regular expressions!"
-
-.. class:: incremental center
-
-     No, you can't.
-
-
-Popular mistakes to avoid (2)
-=============================
-
-"This is tree data, I'll take the DOM!"
-
-
-Popular mistakes to avoid (2)
-=============================
-
-"This is tree data, I'll take the DOM!"
-
-* DOM is ubiquitous, but it's as complicated as Java
-
-* uglify your application with tons of DOM code to
-
-  * walk over non-element nodes to find the data you need
-
-  * convert text content to other data types
-
-  * modify the XML tree in memory
-
-=> write verbose, redundant, hard-to-maintain code
-
-
-Popular mistakes to avoid (3)
-=============================
-
-"SAX is *so* fast and consumes *no* memory!"
-
-
-Popular mistakes to avoid (3)
-=============================
-
-"SAX is *so* fast and consumes *no* memory!"
-
-* but *writing* SAX code is *not* fast!
-
-* write error-prone, state-keeping SAX code to
-
-  * figure out where you are
-
-  * find the sections you need
-
-  * convert text content to other data types
-
-  * copy the XML data into custom data classes
-
-  * ... and don't forget the way back into XML!
-
-=> write confusing state-machine code
-
-=> debugging into existence
-
-
-Working with XML
-================
-
-    **Getting XML work done**
-
-    (instead of getting time wasted)
-
-
-How can you work with XML?
-==========================
-
-* Preparation:
-
-  * Implement usable data classes as an abstraction layer
-
-  * Implement a mapping from XML to the data classes
-
-  * Implement a mapping from the data classes to XML
-
-* Workflow:
-
-  * parse XML data
-
-  * map XML data to data classes
-
-  * work with data classes
-
-  * map data classes to XML
-
-  * serialise XML
-
-.. class:: incremental
-
-   * Approach:
-
-     * get rid of XML and do everything in your own code
-
-
-What if you could simplify this?
-================================
-
-* Preparation:
-
-  * Extend usable XML API classes into an abstraction layer
-
-* Workflow:
-
-  * parse XML data into XML API classes
-
-  * work with XML API classes
-
-  * serialise XML
-
-.. class:: incremental
-
-   * Approach:
-
-     * cover only the quirks of XML and make it work *for* you
-
-
-What if you could simplify this ...
-===================================
-
-* ... without sacrificing usability or flexibility?
-
-* ... using a high-speed, full-featured, pythonic XML toolkit?
-
-* ... with the power of XPath, XSLT and XML validation?
-
-.. class:: incremental center
-
-  \... then Â»lxml« is your friend!
-
-
-Overview
-========
-
-* What is lxml?
-
-  * what & who
-
-* How do you use it?
-
-  * Lesson 0: quick API overview
-
-    * ElementTree concepts and lxml features
-
-  * Lesson 1: parse XML
-
-    * how to get XML data into memory
-
-  * Lesson 2: generate XML
-
-    * how to write an XML generator for a language
-
-  * Lesson 3: working with XML trees made easy
-
-    * how to write an XML API for a language
-
-
-What is lxml?
-=============
-
-* a fast, full-featured toolkit for XML and HTML handling
-
-  * http://codespeak.net/lxml/
-
-  * lxml-dev@codespeak.net
-
-* based on and inspired by
-
-  * the C libraries libxml2 and libxslt (by Daniel Veillard)
-
-  * the ElementTree API (by Fredrik Lundh)
-
-  * the Cython compiler (by Robert Bradshaw, Greg Ewing & me)
-
-  * the Python language (by Guido & [*paste Misc/ACKS here*])
-
-  * user feedback, ideas and patches (by you!)
-
-    * keep doing that, we love you all!
-
-* maintained (and major parts) written by myself
-
-  * initial design and implementation by Martijn Faassen
-
-  * extensive HTML API and tools by Ian Bicking
-
-
-What do you get for your money?
-===============================
-
-* many tools in one:
-
-  * Generic, ElementTree compatible XML API: **lxml.etree**
-
-    * but faster for many tasks and much more feature-rich
-
-  * Special tool set for HTML handling: **lxml.html**
-
-  * Special API for pythonic data binding: **lxml.objectify**
-
-  * General purpose path languages: XPath and CSS selectors
-
-  * Validation: DTD, XML Schema, RelaxNG, Schematron
-
-  * XSLT, XInclude, C14N, ...
-
-  * Fast tree iteration, event-driven parsing, ...
-
-* it's free, but it's worth every â‚¬-Cent!
-
-  * what users say:
-
-    * Â»no qualification, I would recommend lxml for just about any
-      HTML task«
-
-    * Â»THE tool [...] for newbies and experienced developers«
-
-    * Â»you can do pretty much anything with an intuitive API«
-
-    * Â»lxml takes all the pain out of XML«
-
-
-Lesson 0: a quick overview
-==========================
-
-  why **»lxml takes all the pain out of XML«**
-
-  (a quick overview of lxml features and ElementTree concepts)
-
-..
-   >>> from lxml import etree, cssselect, html
-   >>> some_xml_data  = "<root><speech class='dialog'><p>So be it!</p></speech><p>stuff</p></root>"
-   >>> some_html_data = "<p>Just a quick note<br>next line</p>"
-   >>> xml_tree = etree.XML(some_xml_data)
-   >>> html_tree = html.fragment_fromstring(some_html_data)
-
-
-Namespaces in ElementTree
-=========================
-
-* uses Clark notation:
-
-  * wrap namespace URI in ``{...}``
-
-  * append the tag name
-
-  .. sourcecode:: pycon
-
-    >>> tag = "{http://www.w3.org/the/namespace}tagname"
-    >>> element = etree.Element(tag)
-
-* no prefixes!
-
-* a single, self-containing tag identifier
-
-
-Text content in ElementTree
-===========================
-
-* uses ``.text`` and ``.tail`` attributes:
-
-  .. sourcecode:: pycon
-
-    >>> div = html.fragment_fromstring(
-    ...     "<div><p>a paragraph<br>split in two</p> parts</div>")
-    >>> p = div[0]
-    >>> br = p[0]
-
-    >>> p.text
-    'a paragraph'
-    >>> br.text
-    >>> br.tail
-    'split in two'
-    >>> p.tail
-    ' parts'
-
-* no text nodes!
-
-  * simplifies tree traversal a lot
-
-  * simplifies many XML algorithms
-
-
-Attributes in ElementTree
-=========================
-
-* uses ``.get()`` and ``.set()`` methods:
-
-  .. sourcecode:: pycon
-
-    >>> root = etree.fromstring(
-    ...     '<root a="the value" b="of an" c="attribute"/>')
-
-    >>> root.get('a')
-    'the value'
-
-    >>> root.set('a', "THE value")
-    >>> root.get('a')
-    'THE value'
-
-* or the ``.attrib`` dictionary property:
-
-  .. sourcecode:: pycon
-
-    >>> d = root.attrib
-
-    >>> list(sorted(d.keys()))
-    ['a', 'b', 'c']
-    >>> list(sorted(d.values()))
-    ['THE value', 'attribute', 'of an']
-
-
-Tree iteration in lxml.etree (1)
-================================
-
-..
-    >>> import collections
-
-.. sourcecode:: pycon
-
-    >>> root = etree.fromstring(
-    ...   "<root> <a><b/><b/></a> <c><d/><e><f/></e><g/></c> </root>")
-
-    >>> print([child.tag for child in root])   # children
-    ['a', 'c']
-
-    >>> print([el.tag for el in root.iter()])  # self and descendants
-    ['root', 'a', 'b', 'b', 'c', 'd', 'e', 'f', 'g']
-
-    >>> print([el.tag for el in root.iterdescendants()])
-    ['a', 'b', 'b', 'c', 'd', 'e', 'f', 'g']
-
-
-    >>> def iter_breadth_first(root):
-    ...     bfs_queue = collections.deque([root])
-    ...     while bfs_queue:
-    ...         el = bfs_queue.popleft()  # pop next element
-    ...         bfs_queue.extend(el)      # append its children
-    ...         yield el
-
-    >>> print([el.tag for el in iter_breadth_first(root)])
-    ['root', 'a', 'c', 'b', 'b', 'd', 'e', 'g', 'f']
-
-
-Tree iteration in lxml.etree (2)
-================================
-
-.. sourcecode:: pycon
-
-    >>> root = etree.fromstring(
-    ...   "<root> <a><b/><b/></a> <c><d/><e><f/></e><g/></c> </root>")
-
-    >>> tree_walker = etree.iterwalk(root, events=('start', 'end'))
-
-    >>> for (event, element) in tree_walker:
-    ...     print("%s (%s)" % (element.tag, event))
-    root (start)
-    a (start)
-    b (start)
-    b (end)
-    b (start)
-    b (end)
-    a (end)
-    c (start)
-    d (start)
-    d (end)
-    e (start)
-    f (start)
-    f (end)
-    e (end)
-    g (start)
-    g (end)
-    c (end)
-    root (end)
-
-
-Path languages in lxml
-======================
-
-.. sourcecode:: xml
-
-    <root>
-      <speech class='dialog'><p>So be it!</p></speech>
-      <p>stuff</p>
-    </root>
-
-* search it with XPath
-
-  .. sourcecode:: pycon
-
-    >>> find_paragraphs = etree.XPath("//p")
-    >>> paragraphs = find_paragraphs(xml_tree)
-
-    >>> print([ p.text for p in paragraphs ])
-    ['So be it!', 'stuff']
-
-* search it with CSS selectors
-
-  .. sourcecode:: pycon
-
-    >>> find_dialogs = cssselect.CSSSelector("speech.dialog p")
-    >>> paragraphs = find_dialogs(xml_tree)
-
-    >>> print([ p.text for p in paragraphs ])
-    ['So be it!']
-
-
-Summary of lesson 0
-===================
-
-* lxml comes with various tools
-
-  * that aim to hide the quirks of XML
-
-  * that simplify finding and handling data
-
-  * that make XML a pythonic tool by itself
-
-
-Lesson 1: parsing XML/HTML
-==========================
-
-  **The input side**
-
-  (a quick overview)
-
-
-Parsing XML and HTML from ...
-=============================
-
-* strings: ``fromstring(xml_data)``
-
-  * byte strings, but also unicode strings
-
-* filenames: ``parse(filename)``
-
-* HTTP/FTP URLs: ``parse(url)``
-
-* file objects: ``parse(f)``
-
-  * ``f = open(filename, 'rb')`` !
-
-* file-like objects: ``parse(f)``
-
-  * only need a ``f.read(size)`` method
-
-* data chunks: ``parser.feed(xml_chunk)``
-
-  * ``result = parser.close()``
-
-.. class:: small right
-
-  (parsing from strings and filenames/URLs frees the GIL)
-
-
-Example: parsing from a string
-==============================
-
-* using the ``fromstring()`` function:
-
-  .. sourcecode:: pycon
-
-    >>> root_element = etree.fromstring(some_xml_data)
-
-* using the ``fromstring()`` function with a specific parser:
-
-  .. sourcecode:: pycon
-
-    >>> parser = etree.HTMLParser(remove_comments=True)
-    >>> root_element = etree.fromstring(some_html_data, parser)
-
-* or the ``XML()`` and ``HTML()`` aliases for literals in code:
-
-  .. sourcecode:: pycon
-
-    >>> root_element = etree.XML("<root><child/></root>")
-    >>> root_element = etree.HTML("<p>some<br>paragraph</p>")
-
-
-Parsing XML into ...
-====================
-
-* a tree in memory
-
-  * ``parse()`` and ``fromstring()`` functions
-
-* a tree in memory, but step-by-step with a generator
-
-  * ``iterparse()`` generates ``(start/end, element)`` events
-
-  * tree can be cleaned up to save space
-
-* SAX-like callbacks without building a tree
-
-  * ``parse()`` and ``fromstring()`` functions
-
-  * pass a ``target`` object into the parser
-
-
-Summary of lesson 1
-===================
-
-* parsing XML/HTML in lxml is mostly straight forward
-
-  * simple functions that do the job
-
-* advanced use cases are pretty simple
-
-  * event-driven parsing using ``iterparse()``
-
-  * special parser configuration with keyword arguments
-
-    * configuration is generally local to a parser
-
-* BTW: parsing is *very* fast, as is serialising
-
-  * don't hesitate to do parse-serialise-parse cycles
-
-
-Lesson 2: generating XML
-========================
-
-  **The output side**
-
-  (and how to make it safe and simple)
-
-
-The example language: Atom
-==========================
-
-The Atom XML format
-
-* Namespace: http://www.w3.org/2005/Atom
-
-* W3C recommendation derived from RSS and friends
-
-* Atom feeds describe news entries and annotated links
-
-  * a ``feed`` contains one or more ``entry`` elements
-
-  * an ``entry`` contains ``author``, ``link``, ``summary`` and/or ``content``
-
-
-Example: generate XML (1)
-=========================
-
-The ElementMaker (or *E-factory*)
-
-.. sourcecode:: pycon
-
-  >>> from lxml.builder import ElementMaker
-  >>> A = ElementMaker(namespace="http://www.w3.org/2005/Atom",
-  ...                  nsmap={None : "http://www.w3.org/2005/Atom"})
-
-.. class:: incremental
-
- .. sourcecode:: pycon
-
-  >>> atom = A.feed(
-  ...   A.author( A.name("Stefan Behnel") ),
-  ...   A.entry(
-  ...     A.title("News from lxml"),
-  ...     A.link(href="http://codespeak.net/lxml/"),
-  ...     A.summary("See what's <b>fun</b> about lxml...",
-  ...               type="html"),
-  ...   )
-  ... )
-
- .. sourcecode:: pycon
-
-  >>> from lxml.etree import tostring
-  >>> print( tostring(atom, pretty_print=True) )
-
-
-Example: generate XML (2)
-=========================
-
-.. sourcecode:: pycon
-
-  >>> atom = A.feed(
-  ...   A.author( A.name("Stefan Behnel") ),
-  ...   A.entry(
-  ...     A.title("News from lxml"),
-  ...     A.link(href="http://codespeak.net/lxml/"),
-  ...     A.summary("See what's <b>fun</b> about lxml...",
-  ...               type="html"),
-  ...   )
-  ... )
-
-.. sourcecode:: xml
-
-  <feed xmlns="http://www.w3.org/2005/Atom">
-    <author>
-      <name>Stefan Behnel</name>
-    </author>
-    <entry>
-      <title>News from lxml</title>
-      <link href="http://codespeak.net/lxml/"/>
-      <summary type="html">See what's &lt;b&gt;fun&lt;/b&gt;
-                           about lxml...</summary>
-    </entry>
-  </feed>
-
-
-Be careful what you type!
-=========================
-
-.. sourcecode:: pycon
-
-  >>> atom = A.feed(
-  ...   A.author( A.name("Stefan Behnel") ),
-  ...   A.entry(
-  ...     A.titel("News from lxml"),
-  ...     A.link(href="http://codespeak.net/lxml/"),
-  ...     A.summary("See what's <b>fun</b> about lxml...",
-  ...               type="html"),
-  ...   )
-  ... )
-
-.. sourcecode:: xml
-
-  <feed xmlns="http://www.w3.org/2005/Atom">
-    <author>
-      <name>Stefan Behnel</name>
-    </author>
-    <entry>
-      <titel>News from lxml</titel>
-      <link href="http://codespeak.net/lxml/"/>
-      <summary type="html">See what's &lt;b&gt;fun&lt;/b&gt;
-                           about lxml...</summary>
-    </entry>
-  </feed>
-
-
-Want more 'type safety'?
-========================
-
-Write an XML generator *module* instead:
-
-.. sourcecode:: python
-
-  # atomgen.py
-
-  from lxml import etree
-  from lxml.builder import ElementMaker
-
-  ATOM_NAMESPACE = "http://www.w3.org/2005/Atom"
-
-  A = ElementMaker(namespace=ATOM_NAMESPACE,
-                   nsmap={None : ATOM_NAMESPACE})
-
-  feed = A.feed
-  entry = A.entry
-  title = A.title
-  # ... and so on and so forth ...
-
-
-  # plus a little validation function: isvalid()
-  isvalid = etree.RelaxNG(file="atom.rng")
-
-
-The Atom generator module
-=========================
-
-..
-  >>> import sys
-  >>> sys.path.insert(0, "ep2008")
-
-.. sourcecode:: pycon
-
-  >>> import atomgen as A
-
-  >>> atom = A.feed(
-  ...   A.author( A.name("Stefan Behnel") ),
-  ...   A.entry(
-  ...     A.link(href="http://codespeak.net/lxml/"),
-  ...     A.title("News from lxml"),
-  ...     A.summary("See what's <b>fun</b> about lxml...",
-  ...               type="html"),
-  ...   )
-  ... )
-
-  >>> A.isvalid(atom) # ok, forgot the ID's => invalid XML ...
-  False
-
-  >>> title = A.titel("News from lxml")
-  Traceback (most recent call last):
-    ...
-  AttributeError: 'module' object has no attribute 'titel'
-
-
-Mixing languages (1)
-====================
-
-Atom can embed *serialised* HTML
-
-.. sourcecode:: pycon
-
-    >>> import lxml.html.builder as h
-
-    >>> html_fragment = h.DIV(
-    ...   "this is some\n",
-    ...   h.A("HTML", href="http://w3.org/MarkUp/"),
-    ...   "\ncontent")
-
-.. class:: incremental
-
-  .. sourcecode:: pycon
-
-    >>> serialised_html = etree.tostring(html_fragment, method="html")
-
-    >>> summary = A.summary(serialised_html, type="html")
-
-  .. sourcecode:: pycon
-
-    >>> print(etree.tostring(summary))
-    <summary xmlns="http://www.w3.org/2005/Atom" type="html">
-       &lt;div&gt;this is some
-       &lt;a href="http://w3.org/MarkUp/"&gt;HTML&lt;/a&gt;
-       content&lt;/div&gt;
-    </summary>
-
-
-Mixing languages (2)
-====================
-
-Atom can also embed non-escaped XHTML
-
-.. sourcecode:: pycon
-
-    >>> from copy import deepcopy
-    >>> xhtml_fragment = deepcopy(html_fragment)
-
-    >>> from lxml.html import html_to_xhtml
-    >>> html_to_xhtml(xhtml_fragment)
-
-    >>> summary = A.summary(xhtml_fragment, type="xhtml")
-
-.. class:: incremental
-
-  .. sourcecode:: pycon
-
-    >>> print(etree.tostring(summary, pretty_print=True))
-    <summary xmlns="http://www.w3.org/2005/Atom" type="xhtml">
-      <html:div xmlns:html="http://www.w3.org/1999/xhtml">this is some
-      <html:a href="http://w3.org/MarkUp/">HTML</html:a>
-      content</html:div>
-    </summary>
-
-
-Summary of lesson 2
-===================
-
-* generating XML is easy
-
-  * use the ElementMaker
-
-* wrap it in a module that provides
-
-  * the target namespace
-
-  * an ElementMaker name for each language element
-
-  * a validator
-
-  * maybe additional helper functions
-
-* mixing languages is easy
-
-  * define a generator module for each
-
-\... this is all you need for the *output* side of XML languages
-
-
-Lesson 3: Designing XML APIs
-============================
-
-  **The Element API**
-
-  (and how to make it the way *you* want)
-
-
-Trees in C and in Python
-========================
-
-* Trees have two representations:
-
-  * a plain, complete, low-level C tree provided by libxml2
-
-  * a set of Python Element proxies, each representing one element
-
-* Proxies are created on-the-fly:
-
-  * lxml creates an Element object for a C node on request
-
-  * proxies are garbage collected when going out of scope
-
-  * XML trees are garbage collected when deleting the last proxy
-
-.. class:: center
-
-  .. image:: ep2008/proxies.png
-
-
-Mapping Python classes to nodes
-===============================
-
-* Proxies can be assigned to XML nodes *by user code*
-
-  * lxml tells you about a node, you return a class
-
-
-Example: a simple Element class (1)
-===================================
-
-* define a subclass of ElementBase
-
-  .. sourcecode:: pycon
-
-    >>> class HonkElement(etree.ElementBase):
-    ...    @property
-    ...    def honking(self):
-    ...       return self.get('honking') == 'true'
-
-* let it replace the default Element class
-
-  .. sourcecode:: pycon
-
-    >>> lookup = etree.ElementDefaultClassLookup(
-    ...                             element=HonkElement)
-
-    >>> parser = etree.XMLParser()
-    >>> parser.set_element_class_lookup(lookup)
-
-
-Example: a simple Element class (2)
-===================================
-
-* use the new Element class
-
-  .. sourcecode:: pycon
-
-    >>> root = etree.XML('<root><honk honking="true"/></root>',
-    ...                  parser)
-
-    >>> root.honking
-    False
-    >>> root[0].honking
-    True
-
-
-Mapping Python classes to nodes
-===============================
-
-* The Element class lookup
-
-  * lxml tells you about a node, you return a class
-
-  * no restrictions on lookup algorithm
-
-  * each parser can use a different class lookup scheme
-
-  * lookup schemes can be chained through fallbacks
-
-* Classes can be selected based on
-
-  * the node type (element, comment or processing instruction)
-
-    * ``ElementDefaultClassLookup()``
-
-  * the namespaced node name
-
-    * ``CustomElementClassLookup()`` + a fallback
-
-    * ``ElementNamespaceClassLookup()`` + a fallback
-
-  * the value of an attribute (e.g. ``id`` or ``class``)
-
-    * ``AttributeBasedElementClassLookup()`` + a fallback
-
-  * read-only inspection of the tree
-
-    * ``PythonElementClassLookup()`` + a fallback
-
-
-Designing an Atom API
-=====================
-
-* a feed is a container for entries
-
-  .. sourcecode:: python
-
-    # atom.py
-
-    ATOM_NAMESPACE = "http://www.w3.org/2005/Atom"
-    _ATOM_NS = "{%s}" % ATOM_NAMESPACE
-
-    class FeedElement(etree.ElementBase):
-        @property
-        def entries(self):
-           return self.findall(_ATOM_NS + "entry")
-
-* it also has a couple of meta-data children, e.g. ``title``
-
-  .. sourcecode:: python
-
-    class FeedElement(etree.ElementBase):
-        # ...
-        @property
-        def title(self):
-            "return the title or None"
-            return self.find("title")
-
-
-Consider lxml.objectify
-=======================
-
-* ready-to-use, generic Python object API for XML
-
-.. sourcecode:: python
-
-    >>> from lxml import objectify
-
-    >>> feed = objectify.parse("atom-example.xml")
-    >>> print(feed.title)
-    Example Feed
-
-    >>> print([entry.title for entry in feed.entry])
-    ['Atom-Powered Robots Run Amok']
-
-    >>> print(feed.entry[0].title)
-    Atom-Powered Robots Run Amok
-
-
-Still room for more convenience
-===============================
-
-.. sourcecode:: python
-
-    from itertools import chain
-
-    class FeedElement(objectify.ObjectifiedElement):
-
-        def addIDs(self):
-            "initialise the IDs of feed and entries"
-
-           for element in chain([self], self.entry):
-               if element.find(_ATOM_NS + "id") is None:
-                   id = etree.SubElement(self, _ATOM_NS + "id")
-                   id.text = make_guid()
-
-
-Incremental API design
-======================
-
-* choose an XML API to start with
-
-  * lxml.etree is general purpose
-
-  * lxml.objectify is nice for document-style XML
-
-* fix Elements that really need some API sugar
-
-  * dict-mappings to children with specific content/attributes
-
-  * properties for specially typed attributes or child values
-
-  * simplified access to varying content types of an element
-
-  * shortcuts for unnecessarily deep subtrees
-
-* ignore what works well enough with the Element API
-
-  * lists of homogeneous children -> Element iteration
-
-  * string attributes -> .get()/.set()
-
-* let the API grow at your fingertips
-
-  * play with it and test use cases
-
-  * avoid "I want because I can" feature explosion!
-
-
-Setting up the Element mapping
-==============================
-
-Atom has a namespace => leave the mapping to lxml
-
-.. sourcecode:: python
-
-    # ...
-    _atom_lookup = etree.ElementNamespaceClassLookup(
-                      objectify.ObjectifyElementClassLookup())
-
-    # map the classes to tag names
-    ns = _atom_lookup.get_namespace(ATOM_NAMESPACE)
-    ns["feed"]  = FeedElement
-    ns["entry"] = EntryElement
-    # ... and so on
-    # or use ns.update(vars()) with appropriate class names
-
-    # create a parser that does some whitespace cleanup
-    atom_parser = etree.XMLParser(remove_blank_text=True)
-
-    # make it use our Atom classes
-    atom_parser.set_element_class_lookup(_atom_lookup)
-
-    # and help users in using our parser setup
-    def parse(input):
-        return etree.parse(input, atom_parser)
-
-
-Using your new Atom API
-=======================
-
-.. sourcecode:: pycon
-
-    >>> import atom
-    >>> feed = atom.parse("ep2008/atom-example.xml").getroot()
-
-    >>> print(len(feed.entry))
-    1
-    >>> print([entry.title for entry in feed.entry])
-    ['Atom-Powered Robots Run Amok']
-
-    >>> link_tag = "{%s}link" % atom.ATOM_NAMESPACE
-    >>> print([link.get("href") for link in feed.iter(link_tag)])
-    ['http://example.org/', 'http://example.org/2003/12/13/atom03']
-
-
-Summary of lesson 3
-===================
-
-To implement an XML API ...
-
-1) start off with lxml's Element API
-
-   * or take a look at the object API of lxml.objectify
-
-2) specialise it into a set of custom Element classes
-
-3) map them to XML tags using one of the lookup schemes
-
-4) improve the API incrementally while using it
-
-   * discover inconveniences and beautify them
-
-   * avoid putting work into things that work
-
-
-Conclusion
-==========
-
-lxml ...
-
-* provides a convenient set of tools for XML and HTML
-
-  * parsing
-
-  * generating
-
-  * working with in-memory trees
-
-* follows Python idioms wherever possible
-
-  * highly extensible through wrapping and subclassing
-
-  * callable objects for XPath, CSS selectors, XSLT, schemas
-
-  * iteration for tree traversal (even while parsing)
-
-  * list-/dict-like APIs, properties, keyword arguments, ...
-
-* makes extension and specialisation easy
-
-  * write a special XML generator module in trivial code
-  
-  * write your own XML API incrementally on-the-fly
diff --git a/doc/sphinx/_sources/sax.txt b/doc/sphinx/_sources/sax.txt
deleted file mode 100644 (file)
index 21ecec9..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-Sax support
-===========
-
-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
-events into an ElementTree.  The SAX API used by lxml is compatible with that
-in the Python core (xml.sax), so is useful for interfacing lxml with code that
-uses the Python core SAX facilities.
-
-.. contents::
-.. 
-   1  Building a tree from SAX events
-   2  Producing SAX events from an ElementTree or Element
-   3  Interfacing with pulldom/minidom
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-
-Building a tree from SAX events
--------------------------------
-
-First of all, lxml has support for building a new tree given SAX events.  To
-do this, we use the special SAX content handler defined by lxml named
-``lxml.sax.ElementTreeContentHandler``:
-
-.. sourcecode:: pycon
-
-  >>> import lxml.sax
-  >>> handler = lxml.sax.ElementTreeContentHandler()
-
-Now let's fire some SAX events at it:
-
-.. sourcecode:: pycon
-
-  >>> handler.startElementNS((None, 'a'), 'a', {})
-  >>> handler.startElementNS((None, 'b'), 'b', {(None, 'foo'): 'bar'})
-  >>> handler.characters('Hello world')
-  >>> handler.endElementNS((None, 'b'), 'b')
-  >>> handler.endElementNS((None, 'a'), 'a')
-
-This constructs an equivalent tree.  You can access it through the ``etree``
-property of the handler:
-
-.. sourcecode:: pycon
-
-  >>> tree = handler.etree
-  >>> lxml.etree.tostring(tree.getroot())
-  b'<a><b foo="bar">Hello world</b></a>'
-
-By passing a ``makeelement`` function the constructor of
-``ElementTreeContentHandler``, e.g. the one of a parser you configured, you
-can determine which element class lookup scheme should be used.
-
-
-Producing SAX events from an ElementTree or Element
----------------------------------------------------
-
-Let's make a tree we can generate SAX events for:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('<a><b>Text</b></a>')
-  >>> tree = lxml.etree.parse(f)
-
-To see whether the correct SAX events are produced, we'll write a custom
-content handler.:
-
-.. sourcecode:: pycon
-
-  >>> from xml.sax.handler import ContentHandler
-  >>> class MyContentHandler(ContentHandler):
-  ...     def __init__(self):
-  ...         self.a_amount = 0
-  ...         self.b_amount = 0
-  ...         self.text = None
-  ...
-  ...     def startElementNS(self, name, qname, attributes):
-  ...         uri, localname = name
-  ...         if localname == 'a':
-  ...             self.a_amount += 1
-  ...         if localname == 'b':
-  ...             self.b_amount += 1
-  ...
-  ...     def characters(self, data):
-  ...         self.text = data
-
-Note that it only defines the startElementNS() method and not startElement().
-The SAX event generator in lxml.sax currently only supports namespace-aware
-processing.
-
-To test the content handler, we can produce SAX events from the tree:
-
-.. sourcecode:: pycon
-
-  >>> handler = MyContentHandler()
-  >>> lxml.sax.saxify(tree, handler)
-
-This is what we expect:
-
-.. sourcecode:: pycon
-
-  >>> handler.a_amount
-  1
-  >>> handler.b_amount
-  1
-  >>> handler.text
-  'Text'
-
-
-Interfacing with pulldom/minidom
---------------------------------
-
-lxml.sax is a simple way to interface with the standard XML support in the
-Python library.  Note, however, that this is a one-way solution, as Python's
-DOM implementation connot generate SAX events from a DOM tree.
-
-You can use xml.dom.pulldom to build a minidom from lxml:
-
-.. sourcecode:: pycon
-
-  >>> from xml.dom.pulldom import SAX2DOM
-  >>> handler = SAX2DOM()
-  >>> lxml.sax.saxify(tree, handler)
-
-PullDOM makes the result available through the ``document`` attribute:
-
-.. sourcecode:: pycon
-
-  >>> dom = handler.document
-  >>> print(dom.firstChild.localName)
-  a
diff --git a/doc/sphinx/_sources/sitemap.txt b/doc/sphinx/_sources/sitemap.txt
deleted file mode 100644 (file)
index 7e7bea2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Sitemap
-========
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   main
-   intro
-   api
-   ../INSTALL
-   performance
-   compatibility
-   FAQ
-
-   tutorial
-   API reference <api/>
-   parsing
-   validation
-   xpathxslt
-   objectify
-   lxmlhtml
-   cssselect
-   elementsoup
-   html5parser
-
-   resolvers
-   extensions
-   element_classes
-   sax
-   capi
-
-   build
-   lxml-source-howto
-   ../CREDITS
-
-   self
diff --git a/doc/sphinx/_sources/tutorial.txt b/doc/sphinx/_sources/tutorial.txt
deleted file mode 100644 (file)
index 8e1f29d..0000000
+++ /dev/null
@@ -1,1262 +0,0 @@
-=======================
-The lxml.etree Tutorial
-=======================
-.. meta::
-  :description: The lxml tutorial on XML processing with Python
-  :keywords: XML processing with Python, lxml, lxml.etree, tutorial, ElementTree, Python, XML, HTML
-
-:Author:
-  Stefan Behnel
-
-This is a tutorial on XML processing with ``lxml.etree``.  It briefly
-overviews the main concepts of the `ElementTree API`_, and some simple
-enhancements that make your life as a programmer easier.
-
-For a complete reference of the API, see the `generated API
-documentation`_.
-
-.. _`ElementTree API`: http://effbot.org/zone/element-index.htm#documentation
-.. _`generated API documentation`: api/index.html
-
-.. contents::
-.. 
-   1  The Element class
-     1.1  Elements are lists
-     1.2  Elements carry attributes
-     1.3  Elements contain text
-     1.4  Using XPath to find text
-     1.5  Tree iteration
-     1.6  Serialisation
-   2  The ElementTree class
-   3  Parsing from strings and files
-     3.1  The fromstring() function
-     3.2  The XML() function
-     3.3  The parse() function
-     3.4  Parser objects
-     3.5  Incremental parsing
-     3.6  Event-driven parsing
-   4  Namespaces
-   5  The E-factory
-   6  ElementPath
-
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-  >>> try: unicode = __builtins__["unicode"]
-  ... except (NameError, KeyError): unicode = str
-
-  >>> try: basestring = __builtins__["basestring"]
-  ... except (NameError, KeyError): basestring = str
-
-
-A common way to import ``lxml.etree`` is as follows:
-
-.. sourcecode:: pycon
-
-    >>> from lxml import etree
-
-If your code only uses the ElementTree API and does not rely on any
-functionality that is specific to ``lxml.etree``, you can also use (any part
-of) the following import chain as a fall-back to the original ElementTree:
-
-.. sourcecode:: python
-
-    try:
-      from lxml import etree
-      print("running with lxml.etree")
-    except ImportError:
-      try:
-        # Python 2.5
-        import xml.etree.cElementTree as etree
-        print("running with cElementTree on Python 2.5+")
-      except ImportError:
-        try:
-          # Python 2.5
-          import xml.etree.ElementTree as etree
-          print("running with ElementTree on Python 2.5+")
-        except ImportError:
-          try:
-            # normal cElementTree install
-            import cElementTree as etree
-            print("running with cElementTree")
-          except ImportError:
-            try:
-              # normal ElementTree install
-              import elementtree.ElementTree as etree
-              print("running with ElementTree")
-            except ImportError:
-              print("Failed to import ElementTree from any known place")
-
-To aid in writing portable code, this tutorial makes it clear in the examples
-which part of the presented API is an extension of lxml.etree over the
-original `ElementTree API`_, as defined by Fredrik Lundh's `ElementTree
-library`_.
-
-.. _`ElementTree library`: http://effbot.org/zone/element-index.htm
-
-..
-  >>> import sys
-  >>> from lxml import etree as _etree
-  >>> if sys.version_info[0] >= 3:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if isinstance(s, bytes) and bytes([10]) in s: s = s.decode("utf-8") # CR
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  ... else:
-  ...   class etree_mock(object):
-  ...     def __getattr__(self, name): return getattr(_etree, name)
-  ...     def tostring(self, *args, **kwargs):
-  ...       s = _etree.tostring(*args, **kwargs)
-  ...       if s[-1] == '\n': s = s[:-1]
-  ...       return s
-  >>> etree = etree_mock()
-
-
-The Element class
-=================
-
-An ``Element`` is the main container object for the ElementTree API.  Most of
-the XML tree functionality is accessed through this class.  Elements are
-easily created through the ``Element`` factory:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.Element("root")
-
-The XML tag name of elements is accessed through the ``tag`` property:
-
-.. sourcecode:: pycon
-
-    >>> print(root.tag)
-    root
-
-Elements are organised in an XML tree structure.  To create child elements and
-add them to a parent element, you can use the ``append()`` method:
-
-.. sourcecode:: pycon
-
-    >>> root.append( etree.Element("child1") )
-
-However, this is so common that there is a shorter and much more efficient way
-to do this: the ``SubElement`` factory.  It accepts the same arguments as the
-``Element`` factory, but additionally requires the parent as first argument:
-
-.. sourcecode:: pycon
-
-    >>> child2 = etree.SubElement(root, "child2")
-    >>> child3 = etree.SubElement(root, "child3")
-
-To see that this is really XML, you can serialise the tree you have created:
-
-.. sourcecode:: pycon
-
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root>
-      <child1/>
-      <child2/>
-      <child3/>
-    </root>
-
-
-Elements are lists
-------------------
-
-To make the access to these subelements as easy and straight forward as
-possible, elements behave like normal Python lists:
-
-.. sourcecode:: pycon
-
-    >>> child = root[0]
-    >>> print(child.tag)
-    child1
-
-    >>> print(len(root))
-    3
-
-    >>> root.index(root[1]) # lxml.etree only!
-    1
-
-    >>> children = list(root)
-
-    >>> for child in root:
-    ...     print(child.tag)
-    child1
-    child2
-    child3
-
-    >>> root.insert(0, etree.Element("child0"))
-    >>> start = root[:1]
-    >>> end   = root[-1:]
-
-    >>> print(start[0].tag)
-    child0
-    >>> print(end[0].tag)
-    child3
-
-    >>> root[0] = root[-1] # this moves the element in lxml.etree!
-    >>> for child in root:
-    ...     print(child.tag)
-    child3
-    child1
-    child2
-
-Prior to ElementTree 1.3 and lxml 2.0, you could also check the truth value of
-an Element to see if it has children, i.e. if the list of children is empty.
-This is no longer supported as people tend to find it surprising that a
-non-None reference to an existing Element can evaluate to False.  Instead, use
-``len(element)``, which is both more explicit and less error prone.
-
-Note in the examples that the last element was *moved* to a different position
-in the last example.  This is a difference from the original ElementTree (and
-from lists), where elements can sit in multiple positions of any number of
-trees.  In lxml.etree, elements can only sit in one position of one tree at a
-time.
-
-If you want to *copy* an element to a different position, consider creating an
-independent *deep copy* using the ``copy`` module from Python's standard
-library:
-
-.. sourcecode:: pycon
-
-    >>> from copy import deepcopy
-
-    >>> element = etree.Element("neu")
-    >>> element.append( deepcopy(root[1]) )
-
-    >>> print(element[0].tag)
-    child1
-    >>> print([ c.tag for c in root ])
-    ['child3', 'child1', 'child2']
-
-The way up in the tree is provided through the ``getparent()`` method:
-
-.. sourcecode:: pycon
-
-    >>> root is root[0].getparent()  # lxml.etree only!
-    True
-
-The siblings (or neighbours) of an element are accessed as next and previous
-elements:
-
-.. sourcecode:: pycon
-
-    >>> root[0] is root[1].getprevious() # lxml.etree only!
-    True
-    >>> root[1] is root[0].getnext() # lxml.etree only!
-    True
-
-
-Elements carry attributes
--------------------------
-
-XML elements support attributes.  You can create them directly in the Element
-factory:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.Element("root", interesting="totally")
-    >>> etree.tostring(root)
-    b'<root interesting="totally"/>'
-
-Fast and direct access to these attributes is provided by the ``set()`` and
-``get()`` methods of elements:
-
-.. sourcecode:: pycon
-
-    >>> print(root.get("interesting"))
-    totally
-
-    >>> root.set("interesting", "somewhat")
-    >>> print(root.get("interesting"))
-    somewhat
-
-However, a very convenient way of dealing with them is through the dictionary
-interface of the ``attrib`` property:
-
-.. sourcecode:: pycon
-
-    >>> attributes = root.attrib
-
-    >>> print(attributes["interesting"])
-    somewhat
-
-    >>> print(attributes.get("hello"))
-    None
-
-    >>> attributes["hello"] = "Guten Tag"
-    >>> print(attributes.get("hello"))
-    Guten Tag
-    >>> print(root.get("hello"))
-    Guten Tag
-
-
-Elements contain text
----------------------
-
-Elements can contain text:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.Element("root")
-    >>> root.text = "TEXT"
-
-    >>> print(root.text)
-    TEXT
-
-    >>> etree.tostring(root)
-    b'<root>TEXT</root>'
-
-In many XML documents (*data-centric* documents), this is the only place where
-text can be found.  It is encapsulated by a leaf tag at the very bottom of the
-tree hierarchy.
-
-However, if XML is used for tagged text documents such as (X)HTML, text can
-also appear between different elements, right in the middle of the tree:
-
-.. sourcecode:: html
-
-    <html><body>Hello<br/>World</body></html>
-
-Here, the ``<br/>`` tag is surrounded by text.  This is often referred to as
-*document-style* or *mixed-content* XML.  Elements support this through their
-``tail`` property.  It contains the text that directly follows the element, up
-to the next element in the XML tree:
-
-.. sourcecode:: pycon
-
-    >>> html = etree.Element("html")
-    >>> body = etree.SubElement(html, "body")
-    >>> body.text = "TEXT"
-
-    >>> etree.tostring(html)
-    b'<html><body>TEXT</body></html>'
-
-    >>> br = etree.SubElement(body, "br")
-    >>> etree.tostring(html)
-    b'<html><body>TEXT<br/></body></html>'
-
-    >>> br.tail = "TAIL"
-    >>> etree.tostring(html)
-    b'<html><body>TEXT<br/>TAIL</body></html>'
-
-The two properties ``.text`` and ``.tail`` are enough to represent any
-text content in an XML document.  This way, the ElementTree API does
-not require any `special text nodes`_ in addition to the Element
-class, that tend to get in the way fairly often (as you might know
-from classic DOM_ APIs).
-
-However, there are cases where the tail text also gets in the way.
-For example, when you serialise an Element from within the tree, you
-do not always want its tail text in the result (although you would
-still want the tail text of its children).  For this purpose, the
-``tostring()`` function accepts the keyword argument ``with_tail``:
-
-.. sourcecode:: pycon
-
-    >>> etree.tostring(br)
-    b'<br/>TAIL'
-    >>> etree.tostring(br, with_tail=False) # lxml.etree only!
-    b'<br/>'
-
-.. _`special text nodes`: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1312295772
-.. _DOM: http://www.w3.org/TR/DOM-Level-3-Core/core.html
-
-If you want to read *only* the text, i.e. without any intermediate
-tags, you have to recursively concatenate all ``text`` and ``tail``
-attributes in the correct order.  Again, the ``tostring()`` function
-comes to the rescue, this time using the ``method`` keyword:
-
-.. sourcecode:: pycon
-
-    >>> etree.tostring(html, method="text")
-    b'TEXTTAIL'
-
-
-Using XPath to find text
-------------------------
-
-.. _XPath: xpathxslt.html#xpath
-
-Another way to extract the text content of a tree is XPath_, which
-also allows you to extract the separate text chunks into a list:
-
-.. sourcecode:: pycon
-
-    >>> print(html.xpath("string()")) # lxml.etree only!
-    TEXTTAIL
-    >>> print(html.xpath("//text()")) # lxml.etree only!
-    ['TEXT', 'TAIL']
-
-If you want to use this more often, you can wrap it in a function:
-
-.. sourcecode:: pycon
-
-    >>> build_text_list = etree.XPath("//text()") # lxml.etree only!
-    >>> print(build_text_list(html))
-    ['TEXT', 'TAIL']
-
-Note that a string result returned by XPath is a special 'smart'
-object that knows about its origins.  You can ask it where it came
-from through its ``getparent()`` method, just as you would with
-Elements:
-
-.. sourcecode:: pycon
-
-    >>> texts = build_text_list(html)
-    >>> print(texts[0])
-    TEXT
-    >>> parent = texts[0].getparent()
-    >>> print(parent.tag)
-    body
-
-    >>> print(texts[1])
-    TAIL
-    >>> print(texts[1].getparent().tag)
-    br
-
-You can also find out if it's normal text content or tail text:
-
-.. sourcecode:: pycon
-
-    >>> print(texts[0].is_text)
-    True
-    >>> print(texts[1].is_text)
-    False
-    >>> print(texts[1].is_tail)
-    True
-
-While this works for the results of the ``text()`` function, lxml will
-not tell you the origin of a string value that was constructed by the
-XPath functions ``string()`` or ``concat()``:
-
-.. sourcecode:: pycon
-
-    >>> stringify = etree.XPath("string()")
-    >>> print(stringify(html))
-    TEXTTAIL
-    >>> print(stringify(html).getparent())
-    None
-
-
-Tree iteration
---------------
-
-For problems like the above, where you want to recursively traverse the tree
-and do something with its elements, tree iteration is a very convenient
-solution.  Elements provide a tree iterator for this purpose.  It yields
-elements in *document order*, i.e. in the order their tags would appear if you
-serialised the tree to XML:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.Element("root")
-    >>> etree.SubElement(root, "child").text = "Child 1"
-    >>> etree.SubElement(root, "child").text = "Child 2"
-    >>> etree.SubElement(root, "another").text = "Child 3"
-
-    >>> print(etree.tostring(root, pretty_print=True))
-    <root>
-      <child>Child 1</child>
-      <child>Child 2</child>
-      <another>Child 3</another>
-    </root>
-
-    >>> for element in root.iter():
-    ...     print("%s - %s" % (element.tag, element.text))
-    root - None
-    child - Child 1
-    child - Child 2
-    another - Child 3
-
-If you know you are only interested in a single tag, you can pass its name to
-``iter()`` to have it filter for you:
-
-.. sourcecode:: pycon
-
-    >>> for element in root.iter("child"):
-    ...     print("%s - %s" % (element.tag, element.text))
-    child - Child 1
-    child - Child 2
-
-By default, iteration yields all nodes in the tree, including
-ProcessingInstructions, Comments and Entity instances.  If you want to
-make sure only Element objects are returned, you can pass the
-``Element`` factory as tag parameter:
-
-.. sourcecode:: pycon
-
-    >>> root.append(etree.Entity("#234"))
-    >>> root.append(etree.Comment("some comment"))
-
-    >>> for element in root.iter():
-    ...     if isinstance(element.tag, basestring):
-    ...         print("%s - %s" % (element.tag, element.text))
-    ...     else:
-    ...         print("SPECIAL: %s - %s" % (element, element.text))
-    root - None
-    child - Child 1
-    child - Child 2
-    another - Child 3
-    SPECIAL: &#234; - &#234;
-    SPECIAL: <!--some comment--> - some comment
-
-    >>> for element in root.iter(tag=etree.Element):
-    ...     print("%s - %s" % (element.tag, element.text))
-    root - None
-    child - Child 1
-    child - Child 2
-    another - Child 3
-
-    >>> for element in root.iter(tag=etree.Entity):
-    ...     print(element.text)
-    &#234;
-
-In lxml.etree, elements provide `further iterators`_ for all directions in the
-tree: children, parents (or rather ancestors) and siblings.
-
-.. _`further iterators`: api.html#iteration
-
-
-Serialisation
--------------
-
-Serialisation commonly uses the ``tostring()`` function that returns a
-string, or the ``ElementTree.write()`` method that writes to a file, a
-file-like object, or a URL (via FTP PUT or HTTP POST).  Both calls accept
-the same keyword arguments like ``pretty_print`` for formatted output
-or ``encoding`` to select a specific output encoding other than plain
-ASCII:
-
-.. sourcecode:: pycon
-
-   >>> root = etree.XML('<root><a><b/></a></root>')
-
-   >>> etree.tostring(root)
-   b'<root><a><b/></a></root>'
-
-   >>> print(etree.tostring(root, xml_declaration=True))
-   <?xml version='1.0' encoding='ASCII'?>
-   <root><a><b/></a></root>
-
-   >>> print(etree.tostring(root, encoding='iso-8859-1'))
-   <?xml version='1.0' encoding='iso-8859-1'?>
-   <root><a><b/></a></root>
-
-   >>> print(etree.tostring(root, pretty_print=True))
-   <root>
-     <a>
-       <b/>
-     </a>
-   </root>
-
-Note that pretty printing appends a newline at the end.
-
-Since lxml 2.0 (and ElementTree 1.3), the serialisation functions can
-do more than XML serialisation.  You can serialise to HTML or extract
-the text content by passing the ``method`` keyword:
-
-.. sourcecode:: pycon
-
-   >>> root = etree.XML(
-   ...    '<html><head/><body><p>Hello<br/>World</p></body></html>')
-
-   >>> etree.tostring(root) # default: method = 'xml'
-   b'<html><head/><body><p>Hello<br/>World</p></body></html>'
-
-   >>> etree.tostring(root, method='xml') # same as above
-   b'<html><head/><body><p>Hello<br/>World</p></body></html>'
-
-   >>> etree.tostring(root, method='html')
-   b'<html><head></head><body><p>Hello<br>World</p></body></html>'
-
-   >>> print(etree.tostring(root, method='html', pretty_print=True))
-   <html>
-   <head></head>
-   <body><p>Hello<br>World</p></body>
-   </html>
-
-   >>> etree.tostring(root, method='text')
-   b'HelloWorld'
-
-As for XML serialisation, the default encoding for plain text
-serialisation is ASCII:
-
-.. sourcecode:: pycon
-
-   >>> br = root.find('.//br')
-   >>> br.tail = u'W\xf6rld'
-
-   >>> etree.tostring(root, method='text')  # doctest: +ELLIPSIS
-   Traceback (most recent call last):
-     ...
-   UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' ...
-
-   >>> etree.tostring(root, method='text', encoding="UTF-8")
-   b'HelloW\xc3\xb6rld'
-
-Here, serialising to a Python unicode string instead of a byte string
-might become handy.  Just pass the ``unicode`` type as encoding:
-
-.. sourcecode:: pycon
-
-   >>> etree.tostring(root, encoding=unicode, method='text')
-   u'HelloW\xf6rld'
-
-The W3C has a good `article about the Unicode character set and
-character encodings`_.
-
-.. _`article about the Unicode character set and character encodings`: http://www.w3.org/International/tutorials/tutorial-char-enc/
-
-
-The ElementTree class
-=====================
-
-An ``ElementTree`` is mainly a document wrapper around a tree with a
-root node.  It provides a couple of methods for parsing, serialisation
-and general document handling.  One of the bigger differences is that
-it serialises as a complete document, as opposed to a single
-``Element``.  This includes top-level processing instructions and
-comments, as well as a DOCTYPE and other DTD content in the document:
-
-.. sourcecode:: pycon
-
-    >>> tree = etree.parse(StringIO('''\
-    ... <?xml version="1.0"?>
-    ... <!DOCTYPE root SYSTEM "test" [ <!ENTITY tasty "eggs"> ]>
-    ... <root>
-    ...   <a>&tasty;</a>
-    ... </root>
-    ... '''))
-
-    >>> print(tree.docinfo.doctype)
-    <!DOCTYPE root SYSTEM "test">
-
-    >>> # lxml 1.3.4 and later
-    >>> print(etree.tostring(tree))
-    <!DOCTYPE root SYSTEM "test" [
-    <!ENTITY tasty "eggs">
-    ]>
-    <root>
-      <a>eggs</a>
-    </root>
-
-    >>> # lxml 1.3.4 and later
-    >>> print(etree.tostring(etree.ElementTree(tree.getroot())))
-    <!DOCTYPE root SYSTEM "test" [
-    <!ENTITY tasty "eggs">
-    ]>
-    <root>
-      <a>eggs</a>
-    </root>
-
-    >>> # ElementTree and lxml <= 1.3.3
-    >>> print(etree.tostring(tree.getroot()))
-    <root>
-      <a>eggs</a>
-    </root>
-
-Note that this has changed in lxml 1.3.4 to match the behaviour of
-lxml 2.0.  Before, the examples were serialised without DTD content,
-which made lxml loose DTD information in an input-output cycle.
-
-
-Parsing from strings and files
-==============================
-
-``lxml.etree`` supports parsing XML in a number of ways and from all
-important sources, namely strings, files, URLs (http/ftp) and
-file-like objects.  The main parse functions are ``fromstring()`` and
-``parse()``, both called with the source as first argument.  By
-default, they use the standard parser, but you can always pass a
-different parser as second argument.
-
-
-The fromstring() function
--------------------------
-
-The ``fromstring()`` function is the easiest way to parse a string:
-
-.. sourcecode:: pycon
-
-    >>> some_xml_data = "<root>data</root>"
-
-    >>> root = etree.fromstring(some_xml_data)
-    >>> print(root.tag)
-    root
-    >>> etree.tostring(root)
-    b'<root>data</root>'
-
-
-The XML() function
-------------------
-
-The ``XML()`` function behaves like the ``fromstring()`` function, but is
-commonly used to write XML literals right into the source:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.XML("<root>data</root>")
-    >>> print(root.tag)
-    root
-    >>> etree.tostring(root)
-    b'<root>data</root>'
-
-
-The parse() function
---------------------
-
-The ``parse()`` function is used to parse from files and file-like objects:
-
-.. sourcecode:: pycon
-
-    >>> some_file_like = StringIO("<root>data</root>")
-
-    >>> tree = etree.parse(some_file_like)
-
-    >>> etree.tostring(tree)
-    b'<root>data</root>'
-
-Note that ``parse()`` returns an ElementTree object, not an Element object as
-the string parser functions:
-
-.. sourcecode:: pycon
-
-    >>> root = tree.getroot()
-    >>> print(root.tag)
-    root
-    >>> etree.tostring(root)
-    b'<root>data</root>'
-
-The reasoning behind this difference is that ``parse()`` returns a
-complete document from a file, while the string parsing functions are
-commonly used to parse XML fragments.
-
-The ``parse()`` function supports any of the following sources:
-
-* an open file object
-
-* a file-like object that has a ``.read(byte_count)`` method returning
-  a byte string on each call
-
-* a filename string
-
-* an HTTP or FTP URL string
-
-Note that passing a filename or URL is usually faster than passing an
-open file.
-
-
-Parser objects
---------------
-
-By default, ``lxml.etree`` uses a standard parser with a default setup.  If
-you want to configure the parser, you can create a you instance:
-
-.. sourcecode:: pycon
-
-    >>> parser = etree.XMLParser(remove_blank_text=True) # lxml.etree only!
-
-This creates a parser that removes empty text between tags while parsing,
-which can reduce the size of the tree and avoid dangling tail text if you know
-that whitespace-only content is not meaningful for your data.  An example:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.XML("<root>  <a/>   <b>  </b>     </root>", parser)
-
-    >>> etree.tostring(root)
-    b'<root><a/><b>  </b></root>'
-
-Note that the whitespace content inside the ``<b>`` tag was not removed, as
-content at leaf elements tends to be data content (even if blank).  You can
-easily remove it in an additional step by traversing the tree:
-
-.. sourcecode:: pycon
-
-    >>> for element in root.iter("*"):
-    ...     if element.text is not None and not element.text.strip():
-    ...         element.text = None
-
-    >>> etree.tostring(root)
-    b'<root><a/><b/></root>'
-
-See ``help(etree.XMLParser)`` to find out about the available parser options.
-
-
-Incremental parsing
--------------------
-
-``lxml.etree`` provides two ways for incremental step-by-step parsing.  One is
-through file-like objects, where it calls the ``read()`` method repeatedly.
-This is best used where the data arrives from a source like ``urllib`` or any
-other file-like object that can provide data on request.  Note that the parser
-will block and wait until data becomes available in this case:
-
-.. sourcecode:: pycon
-
-    >>> class DataSource:
-    ...     data = [ b"<roo", b"t><", b"a/", b"><", b"/root>" ]
-    ...     def read(self, requested_size):
-    ...         try:
-    ...             return self.data.pop(0)
-    ...         except IndexError:
-    ...             return b''
-
-    >>> tree = etree.parse(DataSource())
-
-    >>> etree.tostring(tree)
-    b'<root><a/></root>'
-
-The second way is through a feed parser interface, given by the ``feed(data)``
-and ``close()`` methods:
-
-.. sourcecode:: pycon
-
-    >>> parser = etree.XMLParser()
-
-    >>> parser.feed("<roo")
-    >>> parser.feed("t><")
-    >>> parser.feed("a/")
-    >>> parser.feed("><")
-    >>> parser.feed("/root>")
-
-    >>> root = parser.close()
-
-    >>> etree.tostring(root)
-    b'<root><a/></root>'
-
-Here, you can interrupt the parsing process at any time and continue it later
-on with another call to the ``feed()`` method.  This comes in handy if you
-want to avoid blocking calls to the parser, e.g. in frameworks like Twisted,
-or whenever data comes in slowly or in chunks and you want to do other things
-while waiting for the next chunk.
-
-After calling the ``close()`` method (or when an exception was raised
-by the parser), you can reuse the parser by calling its ``feed()``
-method again:
-
-.. sourcecode:: pycon
-
-    >>> parser.feed("<root/>")
-    >>> root = parser.close()
-    >>> etree.tostring(root)
-    b'<root/>'
-
-
-Event-driven parsing
---------------------
-
-Sometimes, all you need from a document is a small fraction somewhere deep
-inside the tree, so parsing the whole tree into memory, traversing it and
-dropping it can be too much overhead.  ``lxml.etree`` supports this use case
-with two event-driven parser interfaces, one that generates parser events
-while building the tree (``iterparse``), and one that does not build the tree
-at all, and instead calls feedback methods on a target object in a SAX-like
-fashion.
-
-Here is a simple ``iterparse()`` example:
-
-.. sourcecode:: pycon
-
-    >>> some_file_like = StringIO("<root><a>data</a></root>")
-
-    >>> for event, element in etree.iterparse(some_file_like):
-    ...     print("%s, %4s, %s" % (event, element.tag, element.text))
-    end,    a, data
-    end, root, None
-
-By default, ``iterparse()`` only generates events when it is done parsing an
-element, but you can control this through the ``events`` keyword argument:
-
-.. sourcecode:: pycon
-
-    >>> some_file_like = StringIO("<root><a>data</a></root>")
-
-    >>> for event, element in etree.iterparse(some_file_like,
-    ...                                       events=("start", "end")):
-    ...     print("%5s, %4s, %s" % (event, element.tag, element.text))
-    start, root, None
-    start,    a, data
-      end,    a, data
-      end, root, None
-
-Note that the text, tail and children of an Element are not necessarily there
-yet when receiving the ``start`` event.  Only the ``end`` event guarantees
-that the Element has been parsed completely.
-
-It also allows to ``.clear()`` or modify the content of an Element to
-save memory. So if you parse a large tree and you want to keep memory
-usage small, you should clean up parts of the tree that you no longer
-need:
-
-.. sourcecode:: pycon
-
-    >>> some_file_like = StringIO(
-    ...     "<root><a><b>data</b></a><a><b/></a></root>")
-
-    >>> for event, element in etree.iterparse(some_file_like):
-    ...     if element.tag == 'b':
-    ...         print(element.text)
-    ...     elif element.tag == 'a':
-    ...         print("** cleaning up the subtree")
-    ...         element.clear()
-    data
-    ** cleaning up the subtree
-    None
-    ** cleaning up the subtree
-
-A very important use cases for ``iterparse()`` is parsing large
-generated XML files, e.g. database dumps.  Most often, these XML
-formats only have one main data item element that hangs directly below
-the root node and that is repeated thousands of times.  In this case,
-it is best practice to let ``lxml.etree`` do the tree building and to
-only intercept exactly on this one Element, using the normal tree API
-for data extraction.
-
-.. sourcecode:: pycon
-
-    >>> xml_file = StringIO('''\
-    ... <root>
-    ...   <a><b>ABC</b><c>abc</c></a>
-    ...   <a><b>MORE DATA</b><c>more data</c></a>
-    ...   <a><b>XYZ</b><c>xyz</c></a>
-    ... </root>''')
-
-    >>> for _, element in etree.iterparse(xml_file, tag='a'):
-    ...     print('%s -- %s' % (element.findtext('b'), element[1].text))
-    ...     element.clear()
-    ABC -- abc
-    MORE DATA -- more data
-    XYZ -- xyz
-
-If, for some reason, building the tree is not desired at all, the
-target parser interface of ``lxml.etree`` can be used.  It creates
-SAX-like events by calling the methods of a target object.  By
-implementing some or all of these methods, you can control which
-events are generated:
-
-.. sourcecode:: pycon
-
-    >>> class ParserTarget:
-    ...     events = []
-    ...     close_count = 0
-    ...     def start(self, tag, attrib):
-    ...         self.events.append(("start", tag, attrib))
-    ...     def close(self):
-    ...         events, self.events = self.events, []
-    ...         self.close_count += 1
-    ...         return events
-
-    >>> parser_target = ParserTarget()
-
-    >>> parser = etree.XMLParser(target=parser_target)
-    >>> events = etree.fromstring('<root test="true"/>', parser)
-
-    >>> print(parser_target.close_count)
-    1
-
-    >>> for event in events:
-    ...     print('event: %s - tag: %s' % (event[0], event[1]))
-    ...     for attr, value in event[2].items():
-    ...         print(' * %s = %s' % (attr, value))
-    event: start - tag: root
-     * test = true
-
-You can reuse the parser and its target as often as you like, so you
-should take care that the ``.close()`` methods really resets the
-target to a usable state (also in the case of an error!).
-
-.. sourcecode:: pycon
-
-    >>> events = etree.fromstring('<root test="true"/>', parser)
-    >>> print(parser_target.close_count)
-    2
-    >>> events = etree.fromstring('<root test="true"/>', parser)
-    >>> print(parser_target.close_count)
-    3
-    >>> events = etree.fromstring('<root test="true"/>', parser)
-    >>> print(parser_target.close_count)
-    4
-
-    >>> for event in events:
-    ...     print('event: %s - tag: %s' % (event[0], event[1]))
-    ...     for attr, value in event[2].items():
-    ...         print(' * %s = %s' % (attr, value))
-    event: start - tag: root
-     * test = true
-
-
-Namespaces
-==========
-
-The ElementTree API avoids `namespace prefixes`_ wherever possible and deploys
-the real namespaces instead:
-
-.. sourcecode:: pycon
-
-    >>> xhtml = etree.Element("{http://www.w3.org/1999/xhtml}html")
-    >>> body = etree.SubElement(xhtml, "{http://www.w3.org/1999/xhtml}body")
-    >>> body.text = "Hello World"
-
-    >>> print(etree.tostring(xhtml, pretty_print=True))
-    <html:html xmlns:html="http://www.w3.org/1999/xhtml">
-      <html:body>Hello World</html:body>
-    </html:html>
-
-.. _`namespace prefixes`: http://www.w3.org/TR/xml-names/#ns-qualnames
-
-The notation that ElementTree uses was originally brought up by `James
-Clark`_.  It has the major advantage of providing a universally
-qualified name for a tag, regardless of any prefixes that may or may
-not have been used or defined in a document.  By moving the
-indirection of prefixes out of the way, it makes namespace aware code
-much clearer and safer.
-
-.. _`James Clark`: http://www.jclark.com/xml/xmlns.htm
-
-As you can see from the example, prefixes only become important when
-you serialise the result.  However, the above code looks somewhat
-verbose due to the lengthy namespace names.  And retyping or copying a
-string over and over again is error prone.  It is therefore common
-practice to store a namespace URI in a global variable.  To adapt the
-namespace prefixes for serialisation, you can also pass a mapping to
-the Element factory function, e.g. to define the default namespace:
-
-.. sourcecode:: pycon
-
-    >>> XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml"
-    >>> XHTML = "{%s}" % XHTML_NAMESPACE
-
-    >>> NSMAP = {None : XHTML_NAMESPACE} # the default namespace (no prefix)
-
-    >>> xhtml = etree.Element(XHTML + "html", nsmap=NSMAP) # lxml only!
-    >>> body = etree.SubElement(xhtml, XHTML + "body")
-    >>> body.text = "Hello World"
-
-    >>> print(etree.tostring(xhtml, pretty_print=True))
-    <html xmlns="http://www.w3.org/1999/xhtml">
-      <body>Hello World</body>
-    </html>
-
-lxml.etree allows you to look up the current namespaces defined for a
-node through the ``.nsmap`` property:
-
-.. sourcecode:: pycon
-
-    >>> xhtml.nsmap
-    {None: 'http://www.w3.org/1999/xhtml'}
-
-Note, however, that this includes all prefixes known in the context of
-an Element, not only those that it defines itself.
-
-.. sourcecode:: pycon
-
-    >>> root = etree.Element('root', nsmap={'a': 'http://a.b/c'})
-    >>> child = etree.SubElement(root, 'child',
-    ...                          nsmap={'b': 'http://b.c/d'})
-    >>> len(root.nsmap)
-    1
-    >>> len(child.nsmap)
-    2
-    >>> child.nsmap['a']
-    'http://a.b/c'
-    >>> child.nsmap['b']
-    'http://b.c/d'
-
-Therefore, modifying the returned dict cannot have any meaningful
-impact on the Element.  Any changes to it are ignored.
-
-Namespaces on attributes work alike, but since version 2.3, lxml.etree
-will make sure that the attribute uses a prefixed namespace
-declaration.  This is because unprefixed attribute names are not
-considered being in a namespace by the XML namespace specification
-(`section 6.2`_), so they may end up loosing their namespace on a
-serialise-parse roundtrip, even if they appear in a namespaced
-element.
-
-.. sourcecode:: pycon
-
-    >>> body.set(XHTML + "bgcolor", "#CCFFAA")
-
-    >>> print(etree.tostring(xhtml, pretty_print=True))
-    <html xmlns="http://www.w3.org/1999/xhtml">
-      <body xmlns:html="http://www.w3.org/1999/xhtml" html:bgcolor="#CCFFAA">Hello World</body>
-    </html>
-
-    >>> print(body.get("bgcolor"))
-    None
-    >>> body.get(XHTML + "bgcolor")
-    '#CCFFAA'
-
-.. _`section 6.2`: http://www.w3.org/TR/2009/REC-xml-names-20091208/#defaulting
-
-You can also use XPath with fully qualified names:
-
-.. sourcecode:: pycon
-
-    >>> find_xhtml_body = etree.ETXPath(      # lxml only !
-    ...     "//{%s}body" % XHTML_NAMESPACE)
-    >>> results = find_xhtml_body(xhtml)
-
-    >>> print(results[0].tag)
-    {http://www.w3.org/1999/xhtml}body
-
-
-The E-factory
-=============
-
-The ``E-factory`` provides a simple and compact syntax for generating XML and
-HTML:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.builder import E
-
-    >>> def CLASS(*args): # class is a reserved word in Python
-    ...     return {"class":' '.join(args)}
-
-    >>> html = page = (
-    ...   E.html(       # create an Element called "html"
-    ...     E.head(
-    ...       E.title("This is a sample document")
-    ...     ),
-    ...     E.body(
-    ...       E.h1("Hello!", CLASS("title")),
-    ...       E.p("This is a paragraph with ", E.b("bold"), " text in it!"),
-    ...       E.p("This is another paragraph, with a", "\n      ",
-    ...         E.a("link", href="http://www.python.org"), "."),
-    ...       E.p("Here are some reservered characters: <spam&egg>."),
-    ...       etree.XML("<p>And finally an embedded XHTML fragment.</p>"),
-    ...     )
-    ...   )
-    ... )
-
-    >>> print(etree.tostring(page, pretty_print=True))
-    <html>
-      <head>
-        <title>This is a sample document</title>
-      </head>
-      <body>
-        <h1 class="title">Hello!</h1>
-        <p>This is a paragraph with <b>bold</b> text in it!</p>
-        <p>This is another paragraph, with a
-          <a href="http://www.python.org">link</a>.</p>
-        <p>Here are some reservered characters: &lt;spam&amp;egg&gt;.</p>
-        <p>And finally an embedded XHTML fragment.</p>
-      </body>
-    </html>
-
-The Element creation based on attribute access makes it easy to build up a
-simple vocabulary for an XML language:
-
-.. sourcecode:: pycon
-
-    >>> from lxml.builder import ElementMaker # lxml only !
-
-    >>> E = ElementMaker(namespace="http://my.de/fault/namespace",
-    ...                  nsmap={'p' : "http://my.de/fault/namespace"})
-
-    >>> DOC = E.doc
-    >>> TITLE = E.title
-    >>> SECTION = E.section
-    >>> PAR = E.par
-
-    >>> my_doc = DOC(
-    ...   TITLE("The dog and the hog"),
-    ...   SECTION(
-    ...     TITLE("The dog"),
-    ...     PAR("Once upon a time, ..."),
-    ...     PAR("And then ...")
-    ...   ),
-    ...   SECTION(
-    ...     TITLE("The hog"),
-    ...     PAR("Sooner or later ...")
-    ...   )
-    ... )
-
-    >>> print(etree.tostring(my_doc, pretty_print=True))
-    <p:doc xmlns:p="http://my.de/fault/namespace">
-      <p:title>The dog and the hog</p:title>
-      <p:section>
-        <p:title>The dog</p:title>
-        <p:par>Once upon a time, ...</p:par>
-        <p:par>And then ...</p:par>
-      </p:section>
-      <p:section>
-        <p:title>The hog</p:title>
-        <p:par>Sooner or later ...</p:par>
-      </p:section>
-    </p:doc>
-
-One such example is the module ``lxml.html.builder``, which provides a
-vocabulary for HTML.
-
-
-ElementPath
-===========
-
-The ElementTree library comes with a simple XPath-like path language
-called ElementPath_.  The main difference is that you can use the
-``{namespace}tag`` notation in ElementPath expressions.  However,
-advanced features like value comparison and functions are not
-available.
-
-.. _ElementPath: http://effbot.org/zone/element-xpath.htm
-.. _`full XPath implementation`: xpathxslt.html#xpath
-
-In addition to a `full XPath implementation`_, lxml.etree supports the
-ElementPath language in the same way ElementTree does, even using
-(almost) the same implementation.  The API provides four methods here
-that you can find on Elements and ElementTrees:
-
-* ``iterfind()`` iterates over all Elements that match the path
-  expression
-
-* ``findall()`` returns a list of matching Elements
-
-* ``find()`` efficiently returns only the first match
-
-* ``findtext()`` returns the ``.text`` content of the first match
-
-Here are some examples:
-
-.. sourcecode:: pycon
-
-    >>> root = etree.XML("<root><a x='123'>aText<b/><c/><b/></a></root>")
-
-Find a child of an Element:
-
-.. sourcecode:: pycon
-
-    >>> print(root.find("b"))
-    None
-    >>> print(root.find("a").tag)
-    a
-
-Find an Element anywhere in the tree:
-
-.. sourcecode:: pycon
-
-    >>> print(root.find(".//b").tag)
-    b
-    >>> [ b.tag for b in root.iterfind(".//b") ]
-    ['b', 'b']
-
-Find Elements with a certain attribute:
-
-.. sourcecode:: pycon
-
-    >>> print(root.findall(".//a[@x]")[0].tag)
-    a
-    >>> print(root.findall(".//a[@y]"))
-    []
diff --git a/doc/sphinx/_sources/valgrind.txt b/doc/sphinx/_sources/valgrind.txt
deleted file mode 100644 (file)
index 54a5e49..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The command used to run the tests with valgrind:
-
-valgrind --tool=memcheck --leak-check=full --suppressions=valgrind-python.supp python2.3 test.py
diff --git a/doc/sphinx/_sources/validation.txt b/doc/sphinx/_sources/validation.txt
deleted file mode 100644 (file)
index 3eb7188..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-====================
-Validation with lxml
-====================
-
-Apart from the built-in DTD support in parsers, lxml currently supports three
-schema languages: DTD_, `Relax NG`_ and `XML Schema`_.  All three provide
-identical APIs in lxml, represented by validator classes with the obvious
-names.
-
-.. _DTD:          http://en.wikipedia.org/wiki/Document_Type_Definition
-.. _`Relax NG`:   http://www.relaxng.org/
-.. _`XML Schema`: http://www.w3.org/XML/Schema
-
-lxml also provides support for ISO-`Schematron`_, based on the pure-XSLT 
-`skeleton implementation`_ of Schematron:
-
-.. _Schematron: http://www.schematron.com
-.. _`skeleton implementation`: http://www.schematron.com/implementation.html
-
-There is also basic support for `pre-ISO-Schematron` through the libxml2 
-Schematron features. However, this does not currently support error reporting
-in the validation phase due to insufficiencies in the implementation as of
-libxml2 2.6.30.
-
-.. _`pre-ISO-Schematron`:   http://www.ascc.net/xml/schematron
-
-.. contents::
-.. 
-   1  Validation at parse time
-   2  DTD
-   3  RelaxNG
-   4  XMLSchema
-   5  Schematron
-   6  (Pre-ISO-Schematron)
-
-The usual setup procedure:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-
-Validation at parse time
-------------------------
-
-The parser in lxml can do on-the-fly validation of a document against
-a DTD or an XML schema.  The DTD is retrieved automatically based on
-the DOCTYPE of the parsed document.  All you have to do is use a
-parser that has DTD validation enabled:
-
-.. sourcecode:: pycon
-
-  >>> parser = etree.XMLParser(dtd_validation=True)
-
-Obviously, a request for validation enables the DTD loading feature.
-There are two other options that enable loading the DTD, but that do
-not perform any validation.  The first is the ``load_dtd`` keyword
-option, which simply loads the DTD into the parser and makes it
-available to the document as external subset.  You can retrieve the
-DTD from the parsed document using the ``docinfo`` property of the
-result ElementTree object.  The internal subset is available as
-``internalDTD``, the external subset is provided as ``externalDTD``.
-
-The third way way to activate DTD loading is with the
-``attribute_defaults`` option, which loads the DTD and weaves
-attribute default values into the document.  Again, no validation is
-performed unless explicitly requested.
-
-XML schema is supported in a similar way, but requires an explicit
-schema to be provided:
-
-.. sourcecode:: pycon
-
-  >>> schema_root = etree.XML('''\
-  ...   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  ...     <xsd:element name="a" type="xsd:integer"/>
-  ...   </xsd:schema>
-  ... ''')
-  >>> schema = etree.XMLSchema(schema_root)
-
-  >>> parser = etree.XMLParser(schema = schema)
-  >>> root = etree.fromstring("<a>5</a>", parser)
-
-If the validation fails (be it for a DTD or an XML schema), the parser
-will raise an exception:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.fromstring("<a>no int</a>", parser)
-  Traceback (most recent call last):
-  lxml.etree.XMLSyntaxError: Element 'a': 'no int' is not a valid value of the atomic type 'xs:integer'.
-
-If you want the parser to succeed regardless of the outcome of the
-validation, you should use a non validating parser and run the
-validation separately after parsing the document.
-
-
-DTD
----
-
-As described above, the parser support for DTDs depends on internal or
-external subsets of the XML file.  This means that the XML file itself
-must either contain a DTD or must reference a DTD to make this work.
-If you want to validate an XML document against a DTD that is not
-referenced by the document itself, you can use the ``DTD`` class.
-
-To use the ``DTD`` class, you must first pass a filename or file-like object
-into the constructor to parse a DTD:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO("<!ELEMENT b EMPTY>")
-  >>> dtd = etree.DTD(f)
-
-Now you can use it to validate documents:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<b/>")
-  >>> print(dtd.validate(root))
-  True
-
-  >>> root = etree.XML("<b><a/></b>")
-  >>> print(dtd.validate(root))
-  False
-
-The reason for the validation failure can be found in the error log:
-
-.. sourcecode:: pycon
-
-  >>> print(dtd.error_log.filter_from_errors()[0])
-  <string>:1:0:ERROR:VALID:DTD_NOT_EMPTY: Element b was declared EMPTY this one has content
-
-As an alternative to parsing from a file, you can use the
-``external_id`` keyword argument to parse from a catalog.  The
-following example reads the DocBook DTD in version 4.2, if available
-in the system catalog:
-
-.. sourcecode:: python
-
-  dtd = etree.DTD(external_id = "-//OASIS//DTD DocBook XML V4.2//EN")
-
-
-RelaxNG
--------
-
-The ``RelaxNG`` class takes an ElementTree object to construct a Relax NG
-validator:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('''\
-  ... <element name="a" xmlns="http://relaxng.org/ns/structure/1.0">
-  ...  <zeroOrMore>
-  ...     <element name="b">
-  ...       <text />
-  ...     </element>
-  ...  </zeroOrMore>
-  ... </element>
-  ... ''')
-  >>> relaxng_doc = etree.parse(f)
-  >>> relaxng = etree.RelaxNG(relaxng_doc)
-
-Alternatively, pass a filename to the ``file`` keyword argument to parse from
-a file.  This also enables correct handling of include files from within the
-RelaxNG parser.
-
-You can then validate some ElementTree document against the schema. You'll get
-back True if the document is valid against the Relax NG schema, and False if
-not:
-
-.. sourcecode:: pycon
-
-  >>> valid = StringIO('<a><b></b></a>')
-  >>> doc = etree.parse(valid)
-  >>> relaxng.validate(doc)
-  True
-
-  >>> invalid = StringIO('<a><c></c></a>')
-  >>> doc2 = etree.parse(invalid)
-  >>> relaxng.validate(doc2)
-  False
-
-Calling the schema object has the same effect as calling its validate
-method. This is sometimes used in conditional statements:
-
-.. sourcecode:: pycon
-
-  >>> invalid = StringIO('<a><c></c></a>')
-  >>> doc2 = etree.parse(invalid)
-  >>> if not relaxng(doc2):
-  ...     print("invalid!")
-  invalid!
-
-If you prefer getting an exception when validating, you can use the
-``assert_`` or ``assertValid`` methods:
-
-.. sourcecode:: pycon
-
-  >>> relaxng.assertValid(doc2)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.DocumentInvalid: Did not expect element c there, line 1
-
-  >>> relaxng.assert_(doc2)
-  Traceback (most recent call last):
-    ...
-  AssertionError: Did not expect element c there, line 1
-
-If you want to find out why the validation failed in the second case, you can
-look up the error log of the validation process and check it for relevant
-messages:
-
-.. sourcecode:: pycon
-
-  >>> log = relaxng.error_log
-  >>> print(log.last_error)
-  <string>:1:0:ERROR:RELAXNGV:RELAXNG_ERR_ELEMWRONG: Did not expect element c there
-
-You can see that the error (ERROR) happened during RelaxNG validation
-(RELAXNGV).  The message then tells you what went wrong.  You can also
-look at the error domain and its type directly:
-
-.. sourcecode:: pycon
-
-  >>> error = log.last_error
-  >>> print(error.domain_name)
-  RELAXNGV
-  >>> print(error.type_name)
-  RELAXNG_ERR_ELEMWRONG
-
-Note that this error log is local to the RelaxNG object.  It will only
-contain log entries that appeared during the validation.
-
-Similar to XSLT, there's also a less efficient but easier shortcut method to
-do one-shot RelaxNG validation:
-
-.. sourcecode:: pycon
-
-  >>> doc.relaxng(relaxng_doc)
-  True
-  >>> doc2.relaxng(relaxng_doc)
-  False
-
-libxml2 does not currently support the `RelaxNG Compact Syntax`_.
-However, the trang_ translator can convert the compact syntax to the
-XML syntax, which can then be used with lxml.
-
-.. _`RelaxNG Compact Syntax`: 
-.. _trang: http://www.thaiopensource.com/relaxng/trang.html
-
-
-XMLSchema
----------
-
-lxml.etree also has XML Schema (XSD) support, using the class
-lxml.etree.XMLSchema.  The API is very similar to the Relax NG and DTD
-classes.  Pass an ElementTree object to construct a XMLSchema validator:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('''\
-  ... <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  ... <xsd:element name="a" type="AType"/>
-  ... <xsd:complexType name="AType">
-  ...   <xsd:sequence>
-  ...     <xsd:element name="b" type="xsd:string" />
-  ...   </xsd:sequence>
-  ... </xsd:complexType>
-  ... </xsd:schema>
-  ... ''')
-  >>> xmlschema_doc = etree.parse(f)
-  >>> xmlschema = etree.XMLSchema(xmlschema_doc)
-
-You can then validate some ElementTree document with this.  Like with RelaxNG,
-you'll get back true if the document is valid against the XML schema, and
-false if not:
-
-.. sourcecode:: pycon
-
-  >>> valid = StringIO('<a><b></b></a>')
-  >>> doc = etree.parse(valid)
-  >>> xmlschema.validate(doc)
-  True
-
-  >>> invalid = StringIO('<a><c></c></a>')
-  >>> doc2 = etree.parse(invalid)
-  >>> xmlschema.validate(doc2)
-  False
-
-Calling the schema object has the same effect as calling its validate method.
-This is sometimes used in conditional statements:
-
-.. sourcecode:: pycon
-
-  >>> invalid = StringIO('<a><c></c></a>')
-  >>> doc2 = etree.parse(invalid)
-  >>> if not xmlschema(doc2):
-  ...     print("invalid!")
-  invalid!
-
-If you prefer getting an exception when validating, you can use the
-``assert_`` or ``assertValid`` methods:
-
-.. sourcecode:: pycon
-
-  >>> xmlschema.assertValid(doc2)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.DocumentInvalid: Element 'c': This element is not expected. Expected is ( b )., line 1
-
-  >>> xmlschema.assert_(doc2)
-  Traceback (most recent call last):
-    ...
-  AssertionError: Element 'c': This element is not expected. Expected is ( b )., line 1
-
-Error reporting works as for the RelaxNG class:
-
-.. sourcecode:: pycon
-
-  >>> log = xmlschema.error_log
-  >>> error = log.last_error
-  >>> print(error.domain_name)
-  SCHEMASV
-  >>> print(error.type_name)
-  SCHEMAV_ELEMENT_CONTENT
-
-If you were to print this log entry, you would get something like the
-following.  Note that the error message depends on the libxml2 version in
-use::
-
-  <string>:1:ERROR::SCHEMAV_ELEMENT_CONTENT: Element 'c': This element is not expected. Expected is ( b ).
-
-Similar to XSLT and RelaxNG, there's also a less efficient but easier shortcut
-method to do XML Schema validation:
-
-.. sourcecode:: pycon
-
-  >>> doc.xmlschema(xmlschema_doc)
-  True
-  >>> doc2.xmlschema(xmlschema_doc)
-  False
-
-Schematron
-----------
-
-From version 2.3 on lxml features ISO-`Schematron`_ support built on the 
-de-facto reference implementation of Schematron, the pure-XSLT-1.0 
-`skeleton implementation`_. This is provided by the lxml.isoschematron package 
-that implements the Schematron class, with an API compatible to the other 
-validators'.  Pass an Element or ElementTree object to construct a Schematron 
-validator:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import isoschematron
-  >>> f = StringIO('''\
-  ... <schema xmlns="http://purl.oclc.org/dsdl/schematron" >
-  ...   <pattern id="sum_equals_100_percent">
-  ...     <title>Sum equals 100%.</title>
-  ...     <rule context="Total">
-  ...       <assert test="sum(//Percent)=100">Sum is not 100%.</assert>
-  ...     </rule>
-  ...   </pattern>
-  ... </schema>
-  ... ''')
-
-  >>> sct_doc = etree.parse(f)
-  >>> schematron = isoschematron.Schematron(sct_doc)
-
-You can then validate some ElementTree document with this. Just like with 
-XMLSchema or RelaxNG, you'll get back true if the document is valid against the
-schema, and false if not:
-
-.. sourcecode:: pycon
-
-  >>> valid = StringIO('''\
-  ... <Total>
-  ...   <Percent>20</Percent>
-  ...   <Percent>30</Percent>
-  ...   <Percent>50</Percent>
-  ... </Total>
-  ... ''')
-
-  >>> doc = etree.parse(valid)
-  >>> schematron.validate(doc)
-  True
-
-  >>> etree.SubElement(doc.getroot(), "Percent").text = "10"
-
-  >>> schematron.validate(doc)
-  False
-
-Calling the schema object has the same effect as calling its validate method.
-This can be useful for conditional statements:
-
-.. sourcecode:: pycon
-
-  >>> is_valid = isoschematron.Schematron(sct_doc)
-
-  >>> if not is_valid(doc):
-  ...     print("invalid!")
-  invalid!
-
-Built on a pure-xslt implementation, the actual validator is created as an 
-XSLT 1.0 stylesheet using these steps:
-
-0. (Extract embedded Schematron from XML Schema or RelaxNG schema)
-1. Process inclusions
-2. Process abstract patterns
-3. Compile the schematron schema to XSLT
-
-To allow more control over the individual steps, isoschematron.Schematron
-supports an extended API:
-
-The ``include`` and ``expand`` keyword arguments can be used to switch off
-steps 1) and 2).
-
-To set parameters for steps 1), 2) and 3) dictionaries containing parameters 
-for XSLT can be provided using the keyword arguments ``include_params``,
-``expand_params`` or ``compile_params``. Schematron automatically converts these
-parameters to stylesheet parameters so you need not worry to set string 
-parameters using quotes or to use XSLT.strparam(). If you ever need to pass an
-XPath as argument to the XSLT stylesheet you can pass in an etree.XPath object
-(see XPath and XSLT with lxml: Stylesheet-parameters_ for background on this).
-
-The ``phase`` parameter of the compile step is additionally exposed as a keyword
-argument. If set, it overrides occurrence in ``compile_params``. Note that 
-isoschematron.Schematron might expose more common parameters as additional keyword
-args in the future.
-
-By setting ``store_schematron`` to True, the (included-and-expanded) schematron
-document tree is stored and made available through the ``schematron`` property.
-
-Similarly, setting ``store_xslt`` to True will result in the validation XSLT 
-document tree being kept; it can be retrieved through the ``validator_xslt``
-property.
-
-Finally, with ``store_report`` set to True (default: False), the resulting 
-validation report document gets stored and can be accessed as the 
-``validation_report`` property.
-
-.. _Stylesheet-parameters: xpathxslt.html#stylesheet-parameters
-
-Using the ``phase`` parameter of isoschematron.Schematron allows for selective 
-validation of predefined pattern groups:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('''\
-  ... <schema xmlns="http://purl.oclc.org/dsdl/schematron" >
-  ...   <phase id="phase.sum_check">
-  ...     <active pattern="sum_equals_100_percent"/>
-  ...   </phase>
-  ...   <phase id="phase.entries_check">
-  ...     <active pattern="all_positive"/>
-  ...   </phase>
-  ...   <pattern id="sum_equals_100_percent">
-  ...     <title>Sum equals 100%.</title>
-  ...     <rule context="Total">
-  ...       <assert test="sum(//Percent)=100">Sum is not 100%.</assert>
-  ...     </rule>
-  ...   </pattern>
-  ...   <pattern id="all_positive">
-  ...     <title>All entries must be positive.</title>
-  ...     <rule context="Percent">
-  ...       <assert test="number(.)>0">Number (<value-of select="."/>) not positive</assert>
-  ...     </rule>
-  ...   </pattern>
-  ... </schema>
-  ... ''')
-
-  >>> sct_doc = etree.parse(f)
-  >>> schematron = isoschematron.Schematron(sct_doc)
-
-  >>> valid = StringIO('''\
-  ... <Total>
-  ...   <Percent>20</Percent>
-  ...   <Percent>30</Percent>
-  ...   <Percent>50</Percent>
-  ... </Total>
-  ... ''')
-
-  >>> doc = etree.parse(valid)
-  >>> schematron.validate(doc)
-  True
-
-  >>> invalid_positive = StringIO('''\
-  ... <Total>
-  ...   <Percent>0</Percent>
-  ...   <Percent>50</Percent>
-  ...   <Percent>50</Percent>
-  ... </Total>
-  ... ''')
-
-  >>> doc = etree.parse(invalid_positive)
-
-  >>> schematron.validate(doc)
-  False
-
-If the constraint of Percent entries being positive is not of interest in a 
-certain validation scenario, it can now be disabled:
-
-.. sourcecode:: pycon
-
-  >>> selective = isoschematron.Schematron(sct_doc, phase="phase.sum_check")
-  >>> selective.validate(doc)
-  True
-
-The usage of validation phases is a unique feature of ISO-Schematron and can be
-a very powerful tool e.g. for establishing validation stages or to provide 
-different validators for different "validation audiences".
-
-(Pre-ISO-Schematron)
---------------------
-
-Since version 2.0, lxml.etree features `pre-ISO-Schematron`_ support, using the
-class lxml.etree.Schematron.  It requires at least libxml2 2.6.21 to
-work.  The API is the same as for the other validators.  Pass an
-ElementTree object to construct a Schematron validator:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('''\
-  ... <schema xmlns="http://www.ascc.net/xml/schematron" >
-  ...   <pattern name="Sum equals 100%.">
-  ...     <rule context="Total">
-  ...       <assert test="sum(//Percent)=100">Sum is not 100%.</assert>
-  ...     </rule>
-  ...   </pattern>
-  ... </schema>
-  ... ''')
-
-  >>> sct_doc = etree.parse(f)
-  >>> schematron = etree.Schematron(sct_doc)
-
-You can then validate some ElementTree document with this.  Like with RelaxNG,
-you'll get back true if the document is valid against the schema, and false if
-not:
-
-.. sourcecode:: pycon
-
-  >>> valid = StringIO('''\
-  ... <Total>
-  ...   <Percent>20</Percent>
-  ...   <Percent>30</Percent>
-  ...   <Percent>50</Percent>
-  ... </Total>
-  ... ''')
-
-  >>> doc = etree.parse(valid)
-  >>> schematron.validate(doc)
-  True
-
-  >>> etree.SubElement(doc.getroot(), "Percent").text = "10"
-
-  >>> schematron.validate(doc)
-  False
-
-Calling the schema object has the same effect as calling its validate method.
-This is sometimes used in conditional statements:
-
-.. sourcecode:: pycon
-
-  >>> is_valid = etree.Schematron(sct_doc)
-
-  >>> if not is_valid(doc):
-  ...     print("invalid!")
-  invalid!
-
-Note that libxml2 restricts error reporting to the parsing step (when creating
-the Schematron instance).  There is not currently any support for error
-reporting during validation.
diff --git a/doc/sphinx/_sources/xpathxslt.txt b/doc/sphinx/_sources/xpathxslt.txt
deleted file mode 100644 (file)
index 2244e61..0000000
+++ /dev/null
@@ -1,751 +0,0 @@
-========================
-XPath and XSLT with lxml
-========================
-
-lxml supports XPath 1.0, XSLT 1.0 and the EXSLT extensions through
-libxml2 and libxslt in a standards compliant way.
-
-.. contents::
-..
-   1  XPath
-     1.1  The ``xpath()`` method
-     1.2  Namespaces and prefixes
-     1.3  XPath return values
-     1.4  Generating XPath expressions
-     1.5  The ``XPath`` class
-     1.6  Regular expressions in XPath
-     1.7  The ``XPathEvaluator`` classes
-     1.8  ``ETXPath``
-     1.9  Error handling
-   2  XSLT
-     2.1  XSLT result objects
-     2.2  Stylesheet parameters
-     2.3  The ``xslt()`` tree method
-     2.4  Dealing with stylesheet complexity
-     2.5  Profiling
-
-The usual setup procedure:
-
-.. sourcecode:: pycon
-
-  >>> from lxml import etree
-
-..
-  >>> try: from StringIO import StringIO
-  ... except ImportError:
-  ...    from io import BytesIO
-  ...    def StringIO(s):
-  ...        if isinstance(s, str): s = s.encode("UTF-8")
-  ...        return BytesIO(s)
-
-  >>> try: unicode = __builtins__["unicode"]
-  ... except (NameError, KeyError): unicode = str
-
-
-XPath
-=====
-
-lxml.etree supports the simple path syntax of the `find, findall and
-findtext`_ methods on ElementTree and Element, as known from the original
-ElementTree library (ElementPath_).  As an lxml specific extension, these
-classes also provide an ``xpath()`` method that supports expressions in the
-complete XPath syntax, as well as `custom extension functions`_.
-
-.. _ElementPath: http://effbot.org/zone/element-xpath.htm
-.. _`find,  findall and findtext`: http://effbot.org/zone/element.htm#searching-for-subelements
-.. _`custom extension functions`: extensions.html#xpath-extension-functions
-.. _`XSLT extension elements`: extensions.html#xslt-extension-elements
-
-There are also specialized XPath evaluator classes that are more efficient for
-frequent evaluation: ``XPath`` and ``XPathEvaluator``.  See the `performance
-comparison`_ to learn when to use which.  Their semantics when used on
-Elements and ElementTrees are the same as for the ``xpath()`` method described
-here.
-
-.. _`performance comparison`: performance.html#xpath
-
-
-The ``xpath()`` method
-----------------------
-
-For ElementTree, the xpath method performs a global XPath query against the
-document (if absolute) or against the root node (if relative):
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('<foo><bar></bar></foo>')
-  >>> tree = etree.parse(f)
-
-  >>> r = tree.xpath('/foo/bar')
-  >>> len(r)
-  1
-  >>> r[0].tag
-  'bar'
-
-  >>> r = tree.xpath('bar')
-  >>> r[0].tag
-  'bar'
-
-When ``xpath()`` is used on an Element, the XPath expression is evaluated
-against the element (if relative) or against the root tree (if absolute):
-
-.. sourcecode:: pycon
-
-  >>> root = tree.getroot()
-  >>> r = root.xpath('bar')
-  >>> r[0].tag
-  'bar'
-
-  >>> bar = root[0]
-  >>> r = bar.xpath('/foo/bar')
-  >>> r[0].tag
-  'bar'
-
-  >>> tree = bar.getroottree()
-  >>> r = tree.xpath('/foo/bar')
-  >>> r[0].tag
-  'bar'
-
-The ``xpath()`` method has support for XPath variables:
-
-.. sourcecode:: pycon
-
-  >>> expr = "//*[local-name() = $name]"
-
-  >>> print(root.xpath(expr, name = "foo")[0].tag)
-  foo
-
-  >>> print(root.xpath(expr, name = "bar")[0].tag)
-  bar
-
-  >>> print(root.xpath("$text", text = "Hello World!"))
-  Hello World!
-
-
-Namespaces and prefixes
------------------------
-
-If your XPath expression uses namespace prefixes, you must define them
-in a prefix mapping.  To this end, pass a dictionary to the
-``namespaces`` keyword argument that maps the namespace prefixes used
-in the XPath expression to namespace URIs:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('''\
-  ... <a:foo xmlns:a="http://codespeak.net/ns/test1" 
-  ...        xmlns:b="http://codespeak.net/ns/test2">
-  ...    <b:bar>Text</b:bar>
-  ... </a:foo>
-  ... ''')
-  >>> doc = etree.parse(f)
-
-  >>> r = doc.xpath('/t:foo/b:bar',
-  ...               namespaces={'t': 'http://codespeak.net/ns/test1', 
-  ...                           'b': 'http://codespeak.net/ns/test2'})
-  >>> len(r)
-  1
-  >>> r[0].tag
-  '{http://codespeak.net/ns/test2}bar'
-  >>> r[0].text
-  'Text'
-
-The prefixes you choose here are not linked to the prefixes used
-inside the XML document.  The document may define whatever prefixes it
-likes, including the empty prefix, without breaking the above code.
-
-Note that XPath does not have a notion of a default namespace.  The
-empty prefix is therefore undefined for XPath and cannot be used in
-namespace prefix mappings.
-
-There is also an optional ``extensions`` argument which is used to
-define `custom extension functions`_ in Python that are local to this
-evaluation.  The namespace prefixes that they use in the XPath
-expression must also be defined in the namespace prefix mapping.
-
-
-XPath return values
--------------------
-
-The return value types of XPath evaluations vary, depending on the
-XPath expression used:
-
-* True or False, when the XPath expression has a boolean result
-
-* a float, when the XPath expression has a numeric result (integer or float)
-
-* a 'smart' string (as described below), when the XPath expression has
-  a string result.
-
-* a list of items, when the XPath expression has a list as result.
-  The items may include Elements (also comments and processing
-  instructions), strings and tuples.  Text nodes and attributes in the
-  result are returned as 'smart' string values.  Namespace
-  declarations are returned as tuples of strings: ``(prefix, URI)``.
-
-XPath string results are 'smart' in that they provide a
-``getparent()`` method that knows their origin:
-
-* for attribute values, ``result.getparent()`` returns the Element
-  that carries them.  An example is ``//foo/@attribute``, where the
-  parent would be a ``foo`` Element.
-
-* for the ``text()`` function (as in ``//text()``), it returns the
-  Element that contains the text or tail that was returned.
-
-You can distinguish between different text origins with the boolean
-properties ``is_text``, ``is_tail`` and ``is_attribute``.
-
-Note that ``getparent()`` may not always return an Element.  For
-example, the XPath functions ``string()`` and ``concat()`` will
-construct strings that do not have an origin.  For them,
-``getparent()`` will return None.
-
-There are certain cases where the smart string behaviour is
-undesirable.  For example, it means that the tree will be kept alive
-by the string, which may have a considerable memory impact in the case
-that the string value is the only thing in the tree that is actually
-of interest.  For these cases, you can deactivate the parental
-relationship using the keyword argument ``smart_strings``.
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<root><a>TEXT</a></root>")
-
-  >>> find_text = etree.XPath("//text()")
-  >>> text = find_text(root)[0]
-  >>> print(text)
-  TEXT
-  >>> print(text.getparent().text)
-  TEXT
-
-  >>> find_text = etree.XPath("//text()", smart_strings=False)
-  >>> text = find_text(root)[0]
-  >>> print(text)
-  TEXT
-  >>> hasattr(text, 'getparent')
-  False
-
-
-Generating XPath expressions
-----------------------------
-
-ElementTree objects have a method ``getpath(element)``, which returns a
-structural, absolute XPath expression to find that element:
-
-.. sourcecode:: pycon
-
-  >>> a  = etree.Element("a")
-  >>> b  = etree.SubElement(a, "b")
-  >>> c  = etree.SubElement(a, "c")
-  >>> d1 = etree.SubElement(c, "d")
-  >>> d2 = etree.SubElement(c, "d")
-
-  >>> tree = etree.ElementTree(c)
-  >>> print(tree.getpath(d2))
-  /c/d[2]
-  >>> tree.xpath(tree.getpath(d2)) == [d2]
-  True
-
-
-The ``XPath`` class
--------------------
-
-The ``XPath`` class compiles an XPath expression into a callable function:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<root><a><b/></a><b/></root>")
-
-  >>> find = etree.XPath("//b")
-  >>> print(find(root)[0].tag)
-  b
-
-The compilation takes as much time as in the ``xpath()`` method, but it is
-done only once per class instantiation.  This makes it especially efficient
-for repeated evaluation of the same XPath expression.
-
-Just like the ``xpath()`` method, the ``XPath`` class supports XPath
-variables:
-
-.. sourcecode:: pycon
-
-  >>> count_elements = etree.XPath("count(//*[local-name() = $name])")
-
-  >>> print(count_elements(root, name = "a"))
-  1.0
-  >>> print(count_elements(root, name = "b"))
-  2.0
-
-This supports very efficient evaluation of modified versions of an XPath
-expression, as compilation is still only required once.
-
-Prefix-to-namespace mappings can be passed as second parameter:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<root xmlns='NS'><a><b/></a><b/></root>")
-
-  >>> find = etree.XPath("//n:b", namespaces={'n':'NS'})
-  >>> print(find(root)[0].tag)
-  {NS}b
-
-
-Regular expressions in XPath
-----------------------------
-
-By default, ``XPath`` supports regular expressions in the EXSLT_ namespace:
-
-.. sourcecode:: pycon
-
-  >>> regexpNS = "http://exslt.org/regular-expressions"
-  >>> find = etree.XPath("//*[re:test(., '^abc$', 'i')]",
-  ...                    namespaces={'re':regexpNS})
-
-  >>> root = etree.XML("<root><a>aB</a><b>aBc</b></root>")
-  >>> print(find(root)[0].text)
-  aBc
-
-.. _EXSLT: http://www.exslt.org/
-
-You can disable this with the boolean keyword argument ``regexp`` which
-defaults to True.
-
-
-The ``XPathEvaluator`` classes
-------------------------------
-
-lxml.etree provides two other efficient XPath evaluators that work on
-ElementTrees or Elements respectively: ``XPathDocumentEvaluator`` and
-``XPathElementEvaluator``.  They are automatically selected if you use the
-XPathEvaluator helper for instantiation:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<root><a><b/></a><b/></root>")
-  >>> xpatheval = etree.XPathEvaluator(root)
-
-  >>> print(isinstance(xpatheval, etree.XPathElementEvaluator))
-  True
-
-  >>> print(xpatheval("//b")[0].tag)
-  b
-
-This class provides efficient support for evaluating different XPath
-expressions on the same Element or ElementTree.
-
-
-``ETXPath``
------------
-
-ElementTree supports a language named ElementPath_ in its ``find*()`` methods.
-One of the main differences between XPath and ElementPath is that the XPath
-language requires an indirection through prefixes for namespace support,
-whereas ElementTree uses the Clark notation (``{ns}name``) to avoid prefixes
-completely.  The other major difference regards the capabilities of both path
-languages.  Where XPath supports various sophisticated ways of restricting the
-result set through functions and boolean expressions, ElementPath only
-supports pure path traversal without nesting or further conditions.  So, while
-the ElementPath syntax is self-contained and therefore easier to write and
-handle, XPath is much more powerful and expressive.
-
-lxml.etree bridges this gap through the class ``ETXPath``, which accepts XPath
-expressions with namespaces in Clark notation.  It is identical to the
-``XPath`` class, except for the namespace notation.  Normally, you would
-write:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML("<root xmlns='ns'><a><b/></a><b/></root>")
-
-  >>> find = etree.XPath("//p:b", namespaces={'p' : 'ns'})
-  >>> print(find(root)[0].tag)
-  {ns}b
-
-``ETXPath`` allows you to change this to:
-
-.. sourcecode:: pycon
-
-  >>> find = etree.ETXPath("//{ns}b")
-  >>> print(find(root)[0].tag)
-  {ns}b
-
-
-Error handling
---------------
-
-lxml.etree raises exceptions when errors occur while parsing or evaluating an
-XPath expression:
-
-.. sourcecode:: pycon
-
-  >>> find = etree.XPath("\\")
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XPathSyntaxError: Invalid expression
-
-lxml will also try to give you a hint what went wrong, so if you pass a more
-complex expression, you may get a somewhat more specific error:
-
-.. sourcecode:: pycon
-
-  >>> find = etree.XPath("//*[1.1.1]")
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XPathSyntaxError: Invalid predicate
-
-During evaluation, lxml will emit an XPathEvalError on errors:
-
-.. sourcecode:: pycon
-
-  >>> find = etree.XPath("//ns:a")
-  >>> find(root)
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XPathEvalError: Undefined namespace prefix
-
-This works for the ``XPath`` class, however, the other evaluators (including
-the ``xpath()`` method) are one-shot operations that do parsing and evaluation
-in one step.  They therefore raise evaluation exceptions in all cases:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.Element("test")
-  >>> find = root.xpath("//*[1.1.1]")
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XPathEvalError: Invalid predicate
-
-  >>> find = root.xpath("//ns:a")
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XPathEvalError: Undefined namespace prefix
-
-  >>> find = root.xpath("\\")
-  Traceback (most recent call last):
-    ...
-  lxml.etree.XPathEvalError: Invalid expression
-
-Note that lxml versions before 1.3 always raised an ``XPathSyntaxError`` for
-all errors, including evaluation errors.  The best way to support older
-versions is to except on the superclass ``XPathError``.
-
-
-XSLT
-====
-
-lxml.etree introduces a new class, lxml.etree.XSLT. The class can be
-given an ElementTree or Element object to construct an XSLT
-transformer:
-
-.. sourcecode:: pycon
-
-  >>> xslt_root = etree.XML('''\
-  ... <xsl:stylesheet version="1.0"
-  ...     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...     <xsl:template match="/">
-  ...         <foo><xsl:value-of select="/a/b/text()" /></foo>
-  ...     </xsl:template>
-  ... </xsl:stylesheet>''')
-  >>> transform = etree.XSLT(xslt_root)
-
-You can then run the transformation on an ElementTree document by simply
-calling it, and this results in another ElementTree object:
-
-.. sourcecode:: pycon
-
-  >>> f = StringIO('<a><b>Text</b></a>')
-  >>> doc = etree.parse(f)
-  >>> result_tree = transform(doc)
-
-By default, XSLT supports all extension functions from libxslt and
-libexslt as well as Python regular expressions through the `EXSLT
-regexp functions`_.  Also see the documentation on `custom extension
-functions`_, `XSLT extension elements`_ and `document resolvers`_.
-There is a separate section on `controlling access`_ to external
-documents and resources.
-
-.. _`EXSLT regexp functions`: http://www.exslt.org/regexp/
-.. _`document resolvers`: resolvers.html
-.. _`controlling access`: resolvers.html#i-o-access-control-in-xslt
-
-
-XSLT result objects
--------------------
-
-The result of an XSL transformation can be accessed like a normal ElementTree
-document:
-
-.. sourcecode:: pycon
-
-  >>> root = etree.XML('<a><b>Text</b></a>')
-  >>> result = transform(root)
-
-  >>> result.getroot().text
-  'Text'
-
-but, as opposed to normal ElementTree objects, can also be turned into an (XML
-or text) string by applying the str() function:
-
-.. sourcecode:: pycon
-
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>Text</foo>\n'
-
-The result is always a plain string, encoded as requested by the
-``xsl:output`` element in the stylesheet.  If you want a Python unicode string
-instead, you should set this encoding to ``UTF-8`` (unless the `ASCII` default
-is sufficient).  This allows you to call the builtin ``unicode()`` function on
-the result:
-
-.. sourcecode:: pycon
-
-  >>> unicode(result)
-  u'<?xml version="1.0"?>\n<foo>Text</foo>\n'
-
-You can use other encodings at the cost of multiple recoding.  Encodings that
-are not supported by Python will result in an error:
-
-.. sourcecode:: pycon
-
-  >>> xslt_tree = etree.XML('''\
-  ... <xsl:stylesheet version="1.0"
-  ...     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...     <xsl:output encoding="UCS4"/>
-  ...     <xsl:template match="/">
-  ...         <foo><xsl:value-of select="/a/b/text()" /></foo>
-  ...     </xsl:template>
-  ... </xsl:stylesheet>''')
-  >>> transform = etree.XSLT(xslt_tree)
-
-  >>> result = transform(doc)
-  >>> unicode(result)
-  Traceback (most recent call last):
-    ...
-  LookupError: unknown encoding: UCS4
-
-
-Stylesheet parameters
----------------------
-
-It is possible to pass parameters, in the form of XPath expressions, to the
-XSLT template:
-
-.. sourcecode:: pycon
-
-  >>> xslt_tree = etree.XML('''\
-  ... <xsl:stylesheet version="1.0"
-  ...     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...     <xsl:param name="a" />
-  ...     <xsl:template match="/">
-  ...         <foo><xsl:value-of select="$a" /></foo>
-  ...     </xsl:template>
-  ... </xsl:stylesheet>''')
-  >>> transform = etree.XSLT(xslt_tree)
-  >>> doc_root = etree.XML('<a><b>Text</b></a>')
-
-The parameters are passed as keyword parameters to the transform call.
-First, let's try passing in a simple integer expression:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(doc_root, a="5")
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>5</foo>\n'
-
-You can use any valid XPath expression as parameter value:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(doc_root, a="/a/b/text()")
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>Text</foo>\n'
-
-It's also possible to pass an XPath object as a parameter:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(doc_root, a=etree.XPath("/a/b/text()"))
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>Text</foo>\n'
-
-Passing a string expression looks like this:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(doc_root, a="'A'")
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>A</foo>\n'
-
-To pass a string that (potentially) contains quotes, you can use the
-``.strparam()`` class method.  Note that it does not escape the
-string.  Instead, it returns an opaque object that keeps the string
-value.
-
-.. sourcecode:: pycon
-
-  >>> plain_string_value = etree.XSLT.strparam(
-  ...                          """ It's "Monty Python" """)
-  >>> result = transform(doc_root, a=plain_string_value)
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo> It\'s "Monty Python" </foo>\n'
-
-If you need to pass parameters that are not legal Python identifiers,
-pass them inside of a dictionary:
-
-.. sourcecode:: pycon
-
-  >>> transform = etree.XSLT(etree.XML('''\
-  ... <xsl:stylesheet version="1.0"
-  ...     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...     <xsl:param name="non-python-identifier" />
-  ...     <xsl:template match="/">
-  ...         <foo><xsl:value-of select="$non-python-identifier" /></foo>
-  ...     </xsl:template>
-  ... </xsl:stylesheet>'''))
-
-  >>> result = transform(doc_root, **{'non-python-identifier': '5'})
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>5</foo>\n'
-
-
-
-Errors and messages
--------------------
-
-Like most of the processing oriented objects in lxml.etree, ``XSLT``
-provides an error log that lists messages and error output from the
-last run.  See the `parser documentation`_ for a description of the
-error log.
-
-.. _`parser documentation`: parsing.html#error-log
-
-.. sourcecode:: pycon
-
-  >>> xslt_root = etree.XML('''\
-  ... <xsl:stylesheet version="1.0"
-  ...     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  ...     <xsl:template match="/">
-  ...         <xsl:message terminate="no">STARTING</xsl:message>
-  ...         <foo><xsl:value-of select="/a/b/text()" /></foo>
-  ...         <xsl:message terminate="no">DONE</xsl:message>
-  ...     </xsl:template>
-  ... </xsl:stylesheet>''')
-  >>> transform = etree.XSLT(xslt_root)
-
-  >>> doc_root = etree.XML('<a><b>Text</b></a>')
-  >>> result = transform(doc_root)
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>Text</foo>\n'
-
-  >>> transform.error_log
-  <string>:0:0:ERROR:XSLT:ERR_OK: STARTING
-  <string>:0:0:ERROR:XSLT:ERR_OK: DONE
-
-  >>> for entry in transform.error_log:
-  ...     print('message from line %s, col %s: %s' % (
-  ...                entry.line, entry.column, entry.message))
-  ...     print('domain: %s (%d)' % (entry.domain_name, entry.domain))
-  ...     print('type: %s (%d)' % (entry.type_name, entry.type))
-  ...     print('level: %s (%d)' % (entry.level_name, entry.level))
-  ...     print('filename: %s' % entry.filename)
-  message from line 0, col 0: STARTING
-  domain: XSLT (22)
-  type: ERR_OK (0)
-  level: ERROR (2)
-  filename: <string>
-  message from line 0, col 0: DONE
-  domain: XSLT (22)
-  type: ERR_OK (0)
-  level: ERROR (2)
-  filename: <string>
-
-Note that there is no way in XSLT to distinguish between user
-messages, warnings and error messages that occurred during the
-run. ``libxslt`` simply does not provide this information.  You can
-partly work around this limitation by making your own messages
-uniquely identifiable, e.g. with a common text prefix.
-
-
-The ``xslt()`` tree method
---------------------------
-
-There's also a convenience method on ElementTree objects for doing XSL
-transformations.  This is less efficient if you want to apply the same XSL
-transformation to multiple documents, but is shorter to write for one-shot
-operations, as you do not have to instantiate a stylesheet yourself:
-
-.. sourcecode:: pycon
-
-  >>> result = doc.xslt(xslt_tree, a="'A'")
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>A</foo>\n'
-
-This is a shortcut for the following code:
-
-.. sourcecode:: pycon
-
-  >>> transform = etree.XSLT(xslt_tree)
-  >>> result = transform(doc, a="'A'")
-  >>> str(result)
-  '<?xml version="1.0"?>\n<foo>A</foo>\n'
-
-
-Dealing with stylesheet complexity
-----------------------------------
-
-Some applications require a larger set of rather diverse stylesheets.
-lxml.etree allows you to deal with this in a number of ways.  Here are
-some ideas to try.
-
-The most simple way to reduce the diversity is by using XSLT
-parameters that you pass at call time to configure the stylesheets.
-The ``partial()`` function in the ``functools`` module of Python 2.5
-may come in handy here.  It allows you to bind a set of keyword
-arguments (i.e. stylesheet parameters) to a reference of a callable
-stylesheet.  The same works for instances of the ``XPath()``
-evaluator, obviously.
-
-You may also consider creating stylesheets programmatically.  Just
-create an XSL tree, e.g. from a parsed template, and then add or
-replace parts as you see fit.  Passing an XSL tree into the ``XSLT()``
-constructor multiple times will create independent stylesheets, so
-later modifications of the tree will not be reflected in the already
-created stylesheets.  This makes stylesheet generation very straight
-forward.
-
-A third thing to remember is the support for `custom extension
-functions`_ and `XSLT extension elements`_.  Some things are much
-easier to express in XSLT than in Python, while for others it is the
-complete opposite.  Finding the right mixture of Python code and XSL
-code can help a great deal in keeping applications well designed and
-maintainable.
-
-
-Profiling
----------
-
-If you want to know how your stylesheet performed, pass the ``profile_run``
-keyword to the transform:
-
-.. sourcecode:: pycon
-
-  >>> result = transform(doc, a="/a/b/text()", profile_run=True)
-  >>> profile = result.xslt_profile
-
-The value of the ``xslt_profile`` property is an ElementTree with profiling
-data about each template, similar to the following:
-
-.. sourcecode:: xml
-
-  <profile>
-    <template rank="1" match="/" name="" mode="" calls="1" time="1" average="1"/>
-  </profile>
-
-Note that this is a read-only document.  You must not move any of its elements
-to other documents.  Please deep-copy the document if you need to modify it.
-If you want to free it from memory, just do:
-
-.. sourcecode:: pycon
-
-  >>> del result.xslt_profile
diff --git a/doc/sphinx/_static/basic.css b/doc/sphinx/_static/basic.css
deleted file mode 100644 (file)
index 32630d5..0000000
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- * basic.css
- * ~~~~~~~~~
- *
- * Sphinx stylesheet -- basic theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
-    clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
-    width: 100%;
-    font-size: 90%;
-}
-
-div.related h3 {
-    display: none;
-}
-
-div.related ul {
-    margin: 0;
-    padding: 0 0 0 10px;
-    list-style: none;
-}
-
-div.related li {
-    display: inline;
-}
-
-div.related li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
-    padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
-    float: left;
-    width: 230px;
-    margin-left: -100%;
-    font-size: 90%;
-}
-
-div.sphinxsidebar ul {
-    list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
-    margin-left: 20px;
-    list-style: square;
-}
-
-div.sphinxsidebar ul ul {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
-    margin-top: 10px;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-img {
-    border: 0;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
-    margin: 10px 0 0 20px;
-    padding: 0;
-}
-
-ul.search li {
-    padding: 5px 0 5px 20px;
-    background-image: url(file.png);
-    background-repeat: no-repeat;
-    background-position: 0 7px;
-}
-
-ul.search li a {
-    font-weight: bold;
-}
-
-ul.search li div.context {
-    color: #888;
-    margin: 2px 0 0 30px;
-    text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
-    font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
-    width: 90%;
-}
-
-table.contentstable p.biglink {
-    line-height: 150%;
-}
-
-a.biglink {
-    font-size: 1.3em;
-}
-
-span.linkdescr {
-    font-style: italic;
-    padding-top: 5px;
-    font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable {
-    width: 100%;
-}
-
-table.indextable td {
-    text-align: left;
-    vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
-    height: 10px;
-}
-
-table.indextable tr.cap {
-    margin-top: 10px;
-    background-color: #f2f2f2;
-}
-
-img.toggler {
-    margin-right: 3px;
-    margin-top: 3px;
-    cursor: pointer;
-}
-
-div.modindex-jumpbox {
-    border-top: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-    margin: 1em 0 1em 0;
-    padding: 0.4em;
-}
-
-div.genindex-jumpbox {
-    border-top: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-    margin: 1em 0 1em 0;
-    padding: 0.4em;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-a.headerlink {
-    visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
-    visibility: visible;
-}
-
-div.body p.caption {
-    text-align: inherit;
-}
-
-div.body td {
-    text-align: left;
-}
-
-.field-list ul {
-    padding-left: 1em;
-}
-
-.first {
-    margin-top: 0 !important;
-}
-
-p.rubric {
-    margin-top: 30px;
-    font-weight: bold;
-}
-
-img.align-left, .figure.align-left, object.align-left {
-    clear: left;
-    float: left;
-    margin-right: 1em;
-}
-
-img.align-right, .figure.align-right, object.align-right {
-    clear: right;
-    float: right;
-    margin-left: 1em;
-}
-
-img.align-center, .figure.align-center, object.align-center {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-.align-left {
-    text-align: left;
-}
-
-.align-center {
-    clear: both;
-    text-align: center;
-}
-
-.align-right {
-    text-align: right;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
-    margin: 0 0 0.5em 1em;
-    border: 1px solid #ddb;
-    padding: 7px 7px 0 7px;
-    background-color: #ffe;
-    width: 40%;
-    float: right;
-}
-
-p.sidebar-title {
-    font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
-    border: 1px solid #ccc;
-    padding: 7px 7px 0 7px;
-    margin: 10px 0 10px 0;
-}
-
-p.topic-title {
-    font-size: 1.1em;
-    font-weight: bold;
-    margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
-    margin-top: 10px;
-    margin-bottom: 10px;
-    padding: 7px;
-}
-
-div.admonition dt {
-    font-weight: bold;
-}
-
-div.admonition dl {
-    margin-bottom: 0;
-}
-
-p.admonition-title {
-    margin: 0px 10px 5px 0px;
-    font-weight: bold;
-}
-
-div.body p.centered {
-    text-align: center;
-    margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
-    border: 0;
-    border-collapse: collapse;
-}
-
-table.docutils td, table.docutils th {
-    padding: 1px 8px 1px 5px;
-    border-top: 0;
-    border-left: 0;
-    border-right: 0;
-    border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
-    border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
-    border: 0 !important;
-}
-
-th {
-    text-align: left;
-    padding-right: 5px;
-}
-
-table.citation {
-    border-left: solid 1px gray;
-    margin-left: 1px;
-}
-
-table.citation td {
-    border-bottom: none;
-}
-
-/* -- other body styles ----------------------------------------------------- */
-
-ol.arabic {
-    list-style: decimal;
-}
-
-ol.loweralpha {
-    list-style: lower-alpha;
-}
-
-ol.upperalpha {
-    list-style: upper-alpha;
-}
-
-ol.lowerroman {
-    list-style: lower-roman;
-}
-
-ol.upperroman {
-    list-style: upper-roman;
-}
-
-dl {
-    margin-bottom: 15px;
-}
-
-dd p {
-    margin-top: 0px;
-}
-
-dd ul, dd table {
-    margin-bottom: 10px;
-}
-
-dd {
-    margin-top: 3px;
-    margin-bottom: 10px;
-    margin-left: 30px;
-}
-
-dt:target, .highlighted {
-    background-color: #fbe54e;
-}
-
-dl.glossary dt {
-    font-weight: bold;
-    font-size: 1.1em;
-}
-
-.field-list ul {
-    margin: 0;
-    padding-left: 1em;
-}
-
-.field-list p {
-    margin: 0;
-}
-
-.refcount {
-    color: #060;
-}
-
-.optional {
-    font-size: 1.3em;
-}
-
-.versionmodified {
-    font-style: italic;
-}
-
-.system-message {
-    background-color: #fda;
-    padding: 5px;
-    border: 3px solid red;
-}
-
-.footnote:target  {
-    background-color: #ffa;
-}
-
-.line-block {
-    display: block;
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-
-.line-block .line-block {
-    margin-top: 0;
-    margin-bottom: 0;
-    margin-left: 1.5em;
-}
-
-.guilabel, .menuselection {
-    font-family: sans-serif;
-}
-
-.accelerator {
-    text-decoration: underline;
-}
-
-.classifier {
-    font-style: oblique;
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
-    overflow: auto;
-    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
-}
-
-td.linenos pre {
-    padding: 5px 0px;
-    border: 0;
-    background-color: transparent;
-    color: #aaa;
-}
-
-table.highlighttable {
-    margin-left: 0.5em;
-}
-
-table.highlighttable td {
-    padding: 0 0.5em 0 0.5em;
-}
-
-tt.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-}
-
-tt.descclassname {
-    background-color: transparent;
-}
-
-tt.xref, a tt {
-    background-color: transparent;
-    font-weight: bold;
-}
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
-    background-color: transparent;
-}
-
-.viewcode-link {
-    float: right;
-}
-
-.viewcode-back {
-    float: right;
-    font-family: sans-serif;
-}
-
-div.viewcode-block:target {
-    margin: -1px -10px;
-    padding: 0 10px;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
-    vertical-align: middle;
-}
-
-div.body div.math p {
-    text-align: center;
-}
-
-span.eqno {
-    float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
-@media print {
-    div.document,
-    div.documentwrapper,
-    div.bodywrapper {
-        margin: 0 !important;
-        width: 100%;
-    }
-
-    div.sphinxsidebar,
-    div.related,
-    div.footer,
-    #top-link {
-        display: none;
-    }
-}
diff --git a/doc/sphinx/_static/default.css b/doc/sphinx/_static/default.css
deleted file mode 100644 (file)
index 21f3f50..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * default.css_t
- * ~~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- default theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
-    font-family: sans-serif;
-    font-size: 100%;
-    background-color: #11303d;
-    color: #000;
-    margin: 0;
-    padding: 0;
-}
-
-div.document {
-    background-color: #1c4e63;
-}
-
-div.documentwrapper {
-    float: left;
-    width: 100%;
-}
-
-div.bodywrapper {
-    margin: 0 0 0 230px;
-}
-
-div.body {
-    background-color: #ffffff;
-    color: #000000;
-    padding: 0 20px 30px 20px;
-}
-
-div.footer {
-    color: #ffffff;
-    width: 100%;
-    padding: 9px 0 9px 0;
-    text-align: center;
-    font-size: 75%;
-}
-
-div.footer a {
-    color: #ffffff;
-    text-decoration: underline;
-}
-
-div.related {
-    background-color: #133f52;
-    line-height: 30px;
-    color: #ffffff;
-}
-
-div.related a {
-    color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: #ffffff;
-    font-size: 1.4em;
-    font-weight: normal;
-    margin: 0;
-    padding: 0;
-}
-
-div.sphinxsidebar h3 a {
-    color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: #ffffff;
-    font-size: 1.3em;
-    font-weight: normal;
-    margin: 5px 0 0 0;
-    padding: 0;
-}
-
-div.sphinxsidebar p {
-    color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
-    margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
-    margin: 10px;
-    padding: 0;
-    color: #ffffff;
-}
-
-div.sphinxsidebar a {
-    color: #98dbcc;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-
-
-/* -- hyperlink styles ------------------------------------------------------ */
-
-a {
-    color: #355f7c;
-    text-decoration: none;
-}
-
-a:visited {
-    color: #355f7c;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-}
-
-
-
-/* -- body styles ----------------------------------------------------------- */
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
-    font-family: 'Trebuchet MS', sans-serif;
-    background-color: #f2f2f2;
-    font-weight: normal;
-    color: #20435c;
-    border-bottom: 1px solid #ccc;
-    margin: 20px -20px 10px -20px;
-    padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
-    color: #c60f0f;
-    font-size: 0.8em;
-    padding: 0 4px 0 4px;
-    text-decoration: none;
-}
-
-a.headerlink:hover {
-    background-color: #c60f0f;
-    color: white;
-}
-
-div.body p, div.body dd, div.body li {
-    text-align: justify;
-    line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
-    display: inline;
-}
-
-div.admonition p {
-    margin-bottom: 5px;
-}
-
-div.admonition pre {
-    margin-bottom: 5px;
-}
-
-div.admonition ul, div.admonition ol {
-    margin-bottom: 5px;
-}
-
-div.note {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
-
-div.seealso {
-    background-color: #ffc;
-    border: 1px solid #ff6;
-}
-
-div.topic {
-    background-color: #eee;
-}
-
-div.warning {
-    background-color: #ffe4e4;
-    border: 1px solid #f66;
-}
-
-p.admonition-title {
-    display: inline;
-}
-
-p.admonition-title:after {
-    content: ":";
-}
-
-pre {
-    padding: 5px;
-    background-color: #eeffcc;
-    color: #333333;
-    line-height: 120%;
-    border: 1px solid #ac9;
-    border-left: none;
-    border-right: none;
-}
-
-tt {
-    background-color: #ecf0f3;
-    padding: 0 1px 0 1px;
-    font-size: 0.95em;
-}
-
-th {
-    background-color: #ede;
-}
-
-.warning tt {
-    background: #efc2c2;
-}
-
-.note tt {
-    background: #d6d6d6;
-}
-
-.viewcode-back {
-    font-family: sans-serif;
-}
-
-div.viewcode-block:target {
-    background-color: #f4debf;
-    border-top: 1px solid #ac9;
-    border-bottom: 1px solid #ac9;
-}
\ No newline at end of file
diff --git a/doc/sphinx/_static/pygments.css b/doc/sphinx/_static/pygments.css
deleted file mode 100644 (file)
index 1a14f2a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-.highlight .hll { background-color: #ffffcc }
-.highlight  { background: #eeffcc; }
-.highlight .c { color: #408090; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #007020; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #007020 } /* Comment.Preproc */
-.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #303030 } /* Generic.Output */
-.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0040D0 } /* Generic.Traceback */
-.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #007020 } /* Keyword.Pseudo */
-.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #902000 } /* Keyword.Type */
-.highlight .m { color: #208050 } /* Literal.Number */
-.highlight .s { color: #4070a0 } /* Literal.String */
-.highlight .na { color: #4070a0 } /* Name.Attribute */
-.highlight .nb { color: #007020 } /* Name.Builtin */
-.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.highlight .no { color: #60add5 } /* Name.Constant */
-.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #007020 } /* Name.Exception */
-.highlight .nf { color: #06287e } /* Name.Function */
-.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
-.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #bb60d5 } /* Name.Variable */
-.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #208050 } /* Literal.Number.Float */
-.highlight .mh { color: #208050 } /* Literal.Number.Hex */
-.highlight .mi { color: #208050 } /* Literal.Number.Integer */
-.highlight .mo { color: #208050 } /* Literal.Number.Oct */
-.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
-.highlight .sc { color: #4070a0 } /* Literal.String.Char */
-.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
-.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
-.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.highlight .sx { color: #c65d09 } /* Literal.String.Other */
-.highlight .sr { color: #235388 } /* Literal.String.Regex */
-.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
-.highlight .ss { color: #517918 } /* Literal.String.Symbol */
-.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
-.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
-.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
-.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/doc/sphinx/_static/sphinxdoc.css b/doc/sphinx/_static/sphinxdoc.css
deleted file mode 100644 (file)
index 75b2ae0..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/**
- * Sphinx stylesheet -- sphinxdoc theme
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl.
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
-    font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
-                 'Verdana', sans-serif;
-    font-size: 14px;
-    letter-spacing: -0.01em;
-    line-height: 150%;
-    text-align: center;
-    background-color: #BFD1D4;
-    color: black;
-    padding: 0;
-    border: 1px solid #aaa;
-
-    margin: 0px 80px 0px 80px;
-    min-width: 740px;
-}
-
-div.document {
-    background-color: white;
-    text-align: left;
-    background-image: url(contents.png);
-    background-repeat: repeat-x;
-}
-
-div.bodywrapper {
-    margin: 0 240px 0 0;
-    border-right: 1px solid #ccc;
-}
-
-div.body {
-    margin: 0;
-    padding: 0.5em 20px 20px 20px;
-}
-
-div.related {
-    font-size: 1em;
-}
-
-div.related ul {
-    background-image: url(navigation.png);
-    height: 2em;
-    border-top: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-}
-
-div.related ul li {
-    margin: 0;
-    padding: 0;
-    height: 2em;
-    float: left;
-}
-
-div.related ul li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-div.related ul li a {
-    margin: 0;
-    padding: 0 5px 0 5px;
-    line-height: 1.75em;
-    color: #EE9816;
-}
-
-div.related ul li a:hover {
-    color: #3CA8E7;
-}
-
-div.sphinxsidebarwrapper {
-    padding: 0;
-}
-
-div.sphinxsidebar {
-    margin: 0;
-    padding: 0.5em 15px 15px 0;
-    width: 210px;
-    float: right;
-    font-size: 1em;
-    text-align: left;
-}
-
-div.sphinxsidebar h3, div.sphinxsidebar h4 {
-    margin: 1em 0 0.5em 0;
-    font-size: 1em;
-    padding: 0.1em 0 0.1em 0.5em;
-    color: white;
-    border: 1px solid #86989B;
-    background-color: #AFC1C4;
-}
-
-div.sphinxsidebar h3 a {
-    color: white;
-}
-
-div.sphinxsidebar ul {
-    padding-left: 1.5em;
-    margin-top: 7px;
-    padding: 0;
-    line-height: 130%;
-}
-
-div.sphinxsidebar ul ul {
-    margin-left: 20px;
-}
-
-div.footer {
-    background-color: #E3EFF1;
-    color: #86989B;
-    padding: 3px 8px 3px 0;
-    clear: both;
-    font-size: 0.8em;
-    text-align: right;
-}
-
-div.footer a {
-    color: #86989B;
-    text-decoration: underline;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-p {    
-    margin: 0.8em 0 0.5em 0;
-}
-
-a {
-    color: #CA7900;
-    text-decoration: none;
-}
-
-a:hover {
-    color: #2491CF;
-}
-
-div.body a {
-    text-decoration: underline;
-}
-
-h1 {
-    margin: 0;
-    padding: 0.7em 0 0.3em 0;
-    font-size: 1.5em;
-    color: #11557C;
-}
-
-h2 {
-    margin: 1.3em 0 0.2em 0;
-    font-size: 1.35em;
-    padding: 0;
-}
-
-h3 {
-    margin: 1em 0 -0.3em 0;
-    font-size: 1.2em;
-}
-
-div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a {
-    color: black!important;
-}
-
-h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
-    display: none;
-    margin: 0 0 0 0.3em;
-    padding: 0 0.2em 0 0.2em;
-    color: #aaa!important;
-}
-
-h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
-h5:hover a.anchor, h6:hover a.anchor {
-    display: inline;
-}
-
-h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
-h5 a.anchor:hover, h6 a.anchor:hover {
-    color: #777;
-    background-color: #eee;
-}
-
-a.headerlink {
-    color: #c60f0f!important;
-    font-size: 1em;
-    margin-left: 6px;
-    padding: 0 4px 0 4px;
-    text-decoration: none!important;
-}
-
-a.headerlink:hover {
-    background-color: #ccc;
-    color: white!important;
-}
-
-cite, code, tt {
-    font-family: 'Consolas', 'Deja Vu Sans Mono',
-                 'Bitstream Vera Sans Mono', monospace;
-    font-size: 0.95em;
-    letter-spacing: 0.01em;
-}
-
-tt {
-    background-color: #f2f2f2;
-    border-bottom: 1px solid #ddd;
-    color: #333;
-}
-
-tt.descname, tt.descclassname, tt.xref {
-    border: 0;
-}
-
-hr {
-    border: 1px solid #abc;
-    margin: 2em;
-}
-
-a tt {
-    border: 0;
-    color: #CA7900;
-}
-
-a tt:hover {
-    color: #2491CF;
-}
-
-pre {
-    font-family: 'Consolas', 'Deja Vu Sans Mono',
-                 'Bitstream Vera Sans Mono', monospace;
-    font-size: 0.95em;
-    letter-spacing: 0.015em;
-    line-height: 120%;
-    padding: 0.5em;
-    border: 1px solid #ccc;
-    background-color: #f8f8f8;
-}
-
-pre a {
-    color: inherit;
-    text-decoration: underline;
-}
-
-td.linenos pre {
-    padding: 0.5em 0;
-}
-
-div.quotebar {
-    background-color: #f8f8f8;
-    max-width: 250px;
-    float: right;
-    padding: 2px 7px;
-    border: 1px solid #ccc;
-}
-
-div.topic {
-    background-color: #f8f8f8;
-}
-
-table {
-    border-collapse: collapse;
-    margin: 0 -0.5em 0 -0.5em;
-}
-
-table td, table th {
-    padding: 0.2em 0.5em 0.2em 0.5em;
-}
-
-div.admonition, div.warning {
-    font-size: 0.9em;
-    margin: 1em 0 1em 0;
-    border: 1px solid #86989B;
-    background-color: #f7f7f7;
-    padding: 0;
-}
-
-div.admonition p, div.warning p {
-    margin: 0.5em 1em 0.5em 1em;
-    padding: 0;
-}
-
-div.admonition pre, div.warning pre {
-    margin: 0.4em 1em 0.4em 1em;
-}
-
-div.admonition p.admonition-title,
-div.warning p.admonition-title {
-    margin: 0;
-    padding: 0.1em 0 0.1em 0.5em;
-    color: white;
-    border-bottom: 1px solid #86989B;
-    font-weight: bold;
-    background-color: #AFC1C4;
-}
-
-div.warning {
-    border: 1px solid #940000;
-}
-
-div.warning p.admonition-title {
-    background-color: #CF0000;
-    border-bottom-color: #940000;
-}
-
-div.admonition ul, div.admonition ol,
-div.warning ul, div.warning ol {
-    margin: 0.1em 0.5em 0.5em 3em;
-    padding: 0;
-}
-
-div.versioninfo {
-    margin: 1em 0 0 0;
-    border: 1px solid #ccc;
-    background-color: #DDEAF0;
-    padding: 8px;
-    line-height: 1.3em;
-    font-size: 0.9em;
-}
diff --git a/doc/sphinx/_static/tagpython-big.png b/doc/sphinx/_static/tagpython-big.png
deleted file mode 100644 (file)
index 8eeb96a..0000000
Binary files a/doc/sphinx/_static/tagpython-big.png and /dev/null differ
diff --git a/doc/sphinx/api.html b/doc/sphinx/api.html
deleted file mode 100644 (file)
index a2b8aab..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>APIs specific to lxml.etree &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="apis-specific-to-lxml-etree">
-<h1><a class="toc-backref" href="#id1">APIs specific to lxml.etree</a><a class="headerlink" href="#apis-specific-to-lxml-etree" title="Permalink to this headline">¶</a></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
-new API.  This page describes the major differences and a few additions to the
-main ElementTree API.</p>
-<p>For a complete reference of the API, see the <a class="reference external" href="api/index.html">generated API
-documentation</a>.</p>
-<p>Separate pages describe the support for <a class="reference external" href="parsing.html">parsing XML</a>, executing <a class="reference external" href="xpathxslt.html">XPath and
-XSLT</a>, <a class="reference external" href="validation.html">validating XML</a> and interfacing with other XML tools through the
-<a class="reference external" href="sax.html">SAX-API</a>.</p>
-<p>lxml is extremely extensible through <a class="reference external" href="extensions.html">XPath functions in Python</a>, custom
-<a class="reference external" href="element_classes.html">Python element classes</a>, custom <a class="reference external" href="resolvers.html">URL resolvers</a> and even <a class="reference external" href="capi.html">at the C-level</a>.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#apis-specific-to-lxml-etree" id="id1">APIs specific to lxml.etree</a><ul>
-<li><a class="reference internal" href="#lxml-etree" id="id2">lxml.etree</a></li>
-<li><a class="reference internal" href="#other-element-apis" id="id3">Other Element APIs</a></li>
-<li><a class="reference internal" href="#trees-and-documents" id="id4">Trees and Documents</a></li>
-<li><a class="reference internal" href="#iteration" id="id5">Iteration</a></li>
-<li><a class="reference internal" href="#error-handling-on-exceptions" id="id6">Error handling on exceptions</a></li>
-<li><a class="reference internal" href="#error-logging" id="id7">Error logging</a></li>
-<li><a class="reference internal" href="#serialisation" id="id8">Serialisation</a></li>
-<li><a class="reference internal" href="#cdata" id="id9">CDATA</a></li>
-<li><a class="reference internal" href="#xinclude-and-elementinclude" id="id10">XInclude and ElementInclude</a></li>
-<li><a class="reference internal" href="#write-c14n-on-elementtree" id="id11">write_c14n on ElementTree</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="lxml-etree">
-<h2><a class="toc-backref" href="#id2">lxml.etree</a><a class="headerlink" href="#lxml-etree" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree tries to follow the <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree API</a> wherever it can.  There are
-however some incompatibilities (see <a class="reference external" href="compatibility.html">compatibility</a>).  The extensions are
-documented here.</p>
-<p>If you need to know which version of lxml is installed, you can access the
-<tt class="docutils literal"><span class="pre">lxml.etree.LXML_VERSION</span></tt> attribute to retrieve a version tuple.  Note,
-however, that it did not exist before version 1.0, so you will get an
-AttributeError in older versions.  The versions of libxml2 and libxslt are
-available through the attributes <tt class="docutils literal"><span class="pre">LIBXML_VERSION</span></tt> and <tt class="docutils literal"><span class="pre">LIBXSLT_VERSION</span></tt>.</p>
-<p>The following examples usually assume this to be executed first:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="other-element-apis">
-<h2><a class="toc-backref" href="#id3">Other Element APIs</a><a class="headerlink" href="#other-element-apis" title="Permalink to this headline">¶</a></h2>
-<p>While lxml.etree itself uses the ElementTree API, it is possible to replace
-the Element implementation by <a class="reference external" href="element_classes.html">custom element subclasses</a>.  This has been
-used to implement well-known XML APIs on top of lxml.  For example, lxml ships
-with a data-binding implementation called <a class="reference external" href="objectify.html">objectify</a>, which is similar to
-the <a class="reference external" href="http://uche.ogbuji.net/tech/4suite/amara/">Amara bindery</a> tool.</p>
-<p>lxml.etree comes with a number of <a class="reference external" href="element_classes.html#setting-up-a-class-lookup-scheme">different lookup schemes</a> to customize the
-mapping between libxml2 nodes and the Element classes used by lxml.etree.</p>
-</div>
-<div class="section" id="trees-and-documents">
-<h2><a class="toc-backref" href="#id4">Trees and Documents</a><a class="headerlink" href="#trees-and-documents" title="Permalink to this headline">¶</a></h2>
-<p>Compared to the original ElementTree API, lxml.etree has an extended tree
-model.  It knows about parents and siblings of elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;a&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;c&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;d&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">d</span><span class="p">,</span>    <span class="s">&quot;e&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span> <span class="o">==</span> <span class="n">root</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">b</span><span class="o">.</span><span class="n">getnext</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">c</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-</pre></div>
-</div>
-<p>Elements always live within a document context in lxml.  This implies that
-there is also a notion of an absolute document root.  You can retrieve an
-ElementTree for the root node of a document from any of its elements.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">getroottree</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-</pre></div>
-</div>
-<p>Note that this is different from wrapping an Element in an ElementTree.  You
-can use ElementTrees to create XML trees with an explicit root node:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">d</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">)</span>
-<span class="go">b&#39;&lt;d&gt;&lt;e/&gt;&lt;/d&gt;&#39;</span>
-</pre></div>
-</div>
-<p>ElementTree objects are serialised as complete documents, including
-preceding or trailing processing instructions and comments.</p>
-<p>All operations that you run on such an ElementTree (like XPath, XSLT, etc.)
-will understand the explicitly chosen root as root node of a document.  They
-will not see any elements outside the ElementTree.  However, ElementTrees do
-not modify their Elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">d</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">getroottree</span><span class="p">()</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-</pre></div>
-</div>
-<p>The rule is that all operations that are applied to Elements use either the
-Element itself as reference point, or the absolute root of the document that
-contains this Element (e.g. for absolute XPath expressions).  All operations
-on an ElementTree use its explicit root node as reference.</p>
-</div>
-<div class="section" id="iteration">
-<h2><a class="toc-backref" href="#id5">Iteration</a><a class="headerlink" href="#iteration" title="Permalink to this headline">¶</a></h2>
-<p>The ElementTree API makes Elements iterable to supports iteration over their
-children.  Using the tree defined above, we get:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span> <span class="p">]</span>
-<span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;]</span>
-</pre></div>
-</div>
-<p>To iterate in the opposite direction, use the <tt class="docutils literal"><span class="pre">reversed()</span></tt> function
-that exists in Python 2.4 and later.</p>
-<p>Tree traversal should use the <tt class="docutils literal"><span class="pre">element.iter()</span></tt> method:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">()</span> <span class="p">]</span>
-<span class="go">[&#39;root&#39;, &#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;]</span>
-</pre></div>
-</div>
-<p>lxml.etree also supports this, but additionally features an extended API for
-iteration over the children, following/preceding siblings, ancestors and
-descendants of an element, as defined by the respective XPath axis:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">()</span> <span class="p">]</span>
-<span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="nb">reversed</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;d&#39;, &#39;c&#39;, &#39;b&#39;, &#39;a&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">sibling</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">sibling</span> <span class="ow">in</span> <span class="n">b</span><span class="o">.</span><span class="n">itersiblings</span><span class="p">()</span> <span class="p">]</span>
-<span class="go">[&#39;c&#39;, &#39;d&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">sibling</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">sibling</span> <span class="ow">in</span> <span class="n">c</span><span class="o">.</span><span class="n">itersiblings</span><span class="p">(</span><span class="n">preceding</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;b&#39;, &#39;a&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">ancestor</span> <span class="ow">in</span> <span class="n">e</span><span class="o">.</span><span class="n">iterancestors</span><span class="p">()</span> <span class="p">]</span>
-<span class="go">[&#39;d&#39;, &#39;root&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterdescendants</span><span class="p">()</span> <span class="p">]</span>
-<span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;]</span>
-</pre></div>
-</div>
-<p>Note how <tt class="docutils literal"><span class="pre">element.iterdescendants()</span></tt> does not include the element
-itself, as opposed to <tt class="docutils literal"><span class="pre">element.iter()</span></tt>.  The latter effectively
-implements the &#8216;descendant-or-self&#8217; axis in XPath.</p>
-<p>All of these iterators support an additional <tt class="docutils literal"><span class="pre">tag</span></tt> keyword argument that
-filters the generated elements by tag name:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">&#39;a&#39;</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;a&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">&#39;a&#39;</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterdescendants</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">&#39;d&#39;</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;d&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">&#39;d&#39;</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;d&#39;]</span>
-</pre></div>
-</div>
-<p>The most common way to traverse an XML tree is depth-first, which
-traverses the tree in document order.  This is implemented by the
-<tt class="docutils literal"><span class="pre">.iter()</span></tt> method.  While there is no dedicated method for
-breadth-first traversal, it is almost as simple if you use the
-<tt class="docutils literal"><span class="pre">collections.deque</span></tt> type from Python 2.4.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/root&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">))</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;a&gt;</span>
-<span class="go">    &lt;b/&gt;</span>
-<span class="go">    &lt;c/&gt;</span>
-<span class="go">  &lt;/a&gt;</span>
-<span class="go">  &lt;d&gt;</span>
-<span class="go">    &lt;e/&gt;</span>
-<span class="go">  &lt;/d&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([</span><span class="n">root</span><span class="p">])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-<span class="gp">... </span>   <span class="n">el</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>  <span class="c"># pop next element</span>
-<span class="gp">... </span>   <span class="n">queue</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>      <span class="c"># append its children</span>
-<span class="gp">... </span>   <span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-<span class="go">a</span>
-<span class="go">d</span>
-<span class="go">b</span>
-<span class="go">c</span>
-<span class="go">e</span>
-</pre></div>
-</div>
-<p>See also the section on the utility functions <tt class="docutils literal"><span class="pre">iterparse()</span></tt> and
-<tt class="docutils literal"><span class="pre">iterwalk()</span></tt> in the <a class="reference external" href="parsing.html#iterparse-and-iterwalk">parser documentation</a>.</p>
-</div>
-<div class="section" id="error-handling-on-exceptions">
-<h2><a class="toc-backref" href="#id6">Error handling on exceptions</a><a class="headerlink" href="#error-handling-on-exceptions" title="Permalink to this headline">¶</a></h2>
-<p>Libxml2 provides error messages for failures, be it during parsing, XPath
-evaluation or schema validation.  The preferred way of accessing them is
-through the local <tt class="docutils literal"><span class="pre">error_log</span></tt> property of the respective evaluator or
-transformer object.  See their documentation for details.</p>
-<p>However, lxml also keeps a global error log of all errors that occurred at the
-application level.  Whenever an exception is raised, you can retrieve the
-errors that occured and &#8220;might have&#8221; lead to the problem from the error log
-copy attached to the exception:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">clear_error_log</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">broken_xml</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">try</span><span class="p">:</span>
-<span class="gp">... </span>  <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">broken_xml</span><span class="p">))</span>
-<span class="gp">... </span><span class="k">except</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSyntaxError</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
-<span class="gp">... </span>  <span class="k">pass</span> <span class="c"># just put the exception into e</span>
-</pre></div>
-</div>
-<p>Once you have caught this exception, you can access its <tt class="docutils literal"><span class="pre">error_log</span></tt> property
-to retrieve the log entries or filter them by a specific type, error domain or
-error level:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">log</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">error_log</span><span class="o">.</span><span class="n">filter_from_level</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ErrorLevels</span><span class="o">.</span><span class="n">FATAL</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">log</span><span class="p">)</span>
-<span class="go">&lt;string&gt;:4:8:FATAL:PARSER:ERR_TAG_NAME_MISMATCH: Opening and ending tag mismatch: a line 3 and root</span>
-<span class="go">&lt;string&gt;:5:1:FATAL:PARSER:ERR_TAG_NOT_FINISHED: Premature end of data in tag root line 2</span>
-</pre></div>
-</div>
-<p>This might look a little cryptic at first, but it is the information that
-libxml2 gives you.  At least the message at the end should give you a hint
-what went wrong and you can see that the fatal errors (FATAL) happened during
-parsing (PARSER) lines 4, column 8 and line 5, column 1 of a string (&lt;string&gt;,
-or the filename if available).  Here, PARSER is the so-called error domain,
-see <tt class="docutils literal"><span class="pre">lxml.etree.ErrorDomains</span></tt> for that.  You can get it from a log entry
-like this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">entry</span> <span class="o">=</span> <span class="n">log</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">domain_name</span><span class="p">)</span>
-<span class="go">PARSER</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">type_name</span><span class="p">)</span>
-<span class="go">ERR_TAG_NAME_MISMATCH</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
-<span class="go">&lt;string&gt;</span>
-</pre></div>
-</div>
-<p>There is also a convenience attribute <tt class="docutils literal"><span class="pre">last_error</span></tt> that returns the last
-error or fatal error that occurred:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">entry</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">error_log</span><span class="o">.</span><span class="n">last_error</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">domain_name</span><span class="p">)</span>
-<span class="go">PARSER</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">type_name</span><span class="p">)</span>
-<span class="go">ERR_TAG_NOT_FINISHED</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
-<span class="go">&lt;string&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="error-logging">
-<h2><a class="toc-backref" href="#id7">Error logging</a><a class="headerlink" href="#error-logging" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree supports logging libxml2 messages to the Python stdlib logging
-module.  This is done through the <tt class="docutils literal"><span class="pre">etree.PyErrorLog</span></tt> class.  It disables the
-error reporting from exceptions and forwards log messages to a Python logger.
-To use it, see the descriptions of the function <tt class="docutils literal"><span class="pre">etree.useGlobalPythonLog</span></tt>
-and the class <tt class="docutils literal"><span class="pre">etree.PyErrorLog</span></tt> for help.  Note that this does not affect
-the local error logs of XSLT, XMLSchema, etc.</p>
-</div>
-<div class="section" id="serialisation">
-<h2><a class="toc-backref" href="#id8">Serialisation</a><a class="headerlink" href="#serialisation" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree has direct support for pretty printing XML output.  Functions like
-<tt class="docutils literal"><span class="pre">ElementTree.write()</span></tt> and <tt class="docutils literal"><span class="pre">tostring()</span></tt> support it through a keyword
-argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;test/&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;test/&gt;&lt;/root&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;test/&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p>Note the newline that is appended at the end when pretty printing the
-output.  It was added in lxml 2.0.</p>
-<p>By default, lxml (just as ElementTree) outputs the XML declaration only if it
-is required by the standard:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span> <span class="s">u&quot;t</span><span class="se">\u3120</span><span class="s">st&quot;</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">u&quot;t</span><span class="se">\u0A0A</span><span class="s">st&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;utf-8&quot;</span><span class="p">)</span>
-<span class="go">b&#39;&lt;t\xe3\x84\xa0st&gt;t\xe0\xa8\x8ast&lt;/t\xe3\x84\xa0st&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;iso-8859-1&quot;</span><span class="p">))</span>
-<span class="go">&lt;?xml version=&#39;1.0&#39; encoding=&#39;iso-8859-1&#39;?&gt;</span>
-<span class="go">&lt;t&amp;#12576;st&gt;t&amp;#2570;st&lt;/t&amp;#12576;st&gt;</span>
-</pre></div>
-</div>
-<p>Also see the general remarks on <a class="reference external" href="parsing.html#python-unicode-strings">Unicode support</a>.</p>
-<p>You can enable or disable the declaration explicitly by passing another
-keyword argument for the serialisation:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;?xml version=&#39;1.0&#39; encoding=&#39;ASCII&#39;?&gt;</span>
-<span class="go">&lt;root&gt;&lt;test/&gt;&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">unicode_root</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;UTF-16LE&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                             <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="go">b&#39;&lt;\x00t\x00 1s\x00t\x00/\x00&gt;\x00&#39;</span>
-</pre></div>
-</div>
-<p>Note that a standard compliant XML parser will not consider the last line
-well-formed XML if the encoding is not explicitly provided somehow, e.g. in an
-underlying transport protocol:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">notxml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">unicode_root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;UTF-16LE&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                                      <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">notxml</span><span class="p">)</span>        
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">...</span>
-</pre></div>
-</div>
-<p>Since version 2.3, the serialisation can override the internal subset
-of the document with a user provided DOCTYPE:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&lt;!DOCTYPE root&gt;</span><span class="se">\n</span><span class="s">&lt;root/&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">))</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">))</span>
-<span class="go">&lt;!DOCTYPE root&gt;</span>
-<span class="go">&lt;root/&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">doctype</span><span class="o">=</span><span class="s">&#39;&lt;!DOCTYPE root SYSTEM &quot;/tmp/test.dtd&quot;&gt;&#39;</span><span class="p">))</span>
-<span class="go">&lt;!DOCTYPE root SYSTEM &quot;/tmp/test.dtd&quot;&gt;</span>
-<span class="go">&lt;root/&gt;</span>
-</pre></div>
-</div>
-<p>The content will be encoded, but otherwise copied verbatimly into the
-output stream.  It is therefore left to the user to take care for a
-correct doctype format, including the name of the root node.</p>
-</div>
-<div class="section" id="cdata">
-<h2><a class="toc-backref" href="#id9">CDATA</a><a class="headerlink" href="#cdata" title="Permalink to this headline">¶</a></h2>
-<p>By default, lxml&#8217;s parser will strip CDATA sections from the tree and
-replace them by their plain text content.  As real applications for
-CDATA are rare, this is the best way to deal with this issue.</p>
-<p>However, in some cases, keeping CDATA sections or creating them in a
-document is required to adhere to existing XML language definitions.
-For these special cases, you can instruct the parser to leave CDATA
-sections in the document:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">strip_cdata</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;&#39;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;test&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Note how the <tt class="docutils literal"><span class="pre">.text</span></tt> property does not give any indication that the
-text content is wrapped by a CDATA section.  If you want to make sure
-your data is wrapped by a CDATA block, you can use the <tt class="docutils literal"><span class="pre">CDATA()</span></tt>
-text wrapper:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&#39;test&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;test&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;test&lt;/root&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">CDATA</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;test&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="xinclude-and-elementinclude">
-<h2><a class="toc-backref" href="#id10">XInclude and ElementInclude</a><a class="headerlink" href="#xinclude-and-elementinclude" title="Permalink to this headline">¶</a></h2>
-<p>You can let lxml process xinclude statements in a document by calling the
-xinclude() method on a tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">data</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;doc xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;</span>
-<span class="gp">... </span><span class="s">&lt;foo/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;xi:include href=&quot;doc/test.xml&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/doc&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">xinclude</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()))</span>
-<span class="go">&lt;doc xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&gt;</span>
-<span class="go">&lt;foo/&gt;</span>
-<span class="go">&lt;a xml:base=&quot;doc/test.xml&quot;/&gt;</span>
-<span class="go">&lt;/doc&gt;</span>
-</pre></div>
-</div>
-<p>Note that the ElementTree compatible <a class="reference external" href="http://effbot.org/zone/element-xinclude.htm">ElementInclude</a> module is also supported
-as <tt class="docutils literal"><span class="pre">lxml.ElementInclude</span></tt>.  It has the additional advantage of supporting
-custom <a class="reference external" href="resolvers.html">URL resolvers</a> at the Python level.  The normal XInclude mechanism
-cannot deploy these.  If you need ElementTree compatibility or custom
-resolvers, you have to stick to the external Python module.</p>
-</div>
-<div class="section" id="write-c14n-on-elementtree">
-<h2><a class="toc-backref" href="#id11">write_c14n on ElementTree</a><a class="headerlink" href="#write-c14n-on-elementtree" title="Permalink to this headline">¶</a></h2>
-<p>The lxml.etree.ElementTree class has a method write_c14n, which takes a file
-object as argument.  This file object will receive an UTF-8 representation of
-the canonicalized form of the XML, following the W3C C14N recommendation.  For
-example:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">f2</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">write_c14n</span><span class="p">(</span><span class="n">f2</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">f2</span><span class="o">.</span><span class="n">getvalue</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&quot;utf-8&quot;</span><span class="p">))</span>
-<span class="go">&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;</span>
-</pre></div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">APIs specific to lxml.etree</a><ul>
-<li><a class="reference internal" href="#lxml-etree">lxml.etree</a></li>
-<li><a class="reference internal" href="#other-element-apis">Other Element APIs</a></li>
-<li><a class="reference internal" href="#trees-and-documents">Trees and Documents</a></li>
-<li><a class="reference internal" href="#iteration">Iteration</a></li>
-<li><a class="reference internal" href="#error-handling-on-exceptions">Error handling on exceptions</a></li>
-<li><a class="reference internal" href="#error-logging">Error logging</a></li>
-<li><a class="reference internal" href="#serialisation">Serialisation</a></li>
-<li><a class="reference internal" href="#cdata">CDATA</a></li>
-<li><a class="reference internal" href="#xinclude-and-elementinclude">XInclude and ElementInclude</a></li>
-<li><a class="reference internal" href="#write-c14n-on-elementtree">write_c14n on ElementTree</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/api.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/build.html b/doc/sphinx/build.html
deleted file mode 100644 (file)
index 42c5106..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>How to build lxml from source &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="how-to-build-lxml-from-source">
-<h1><a class="toc-backref" href="#id3">How to build lxml from source</a><a class="headerlink" href="#how-to-build-lxml-from-source" title="Permalink to this headline">¶</a></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
-separate <tt class="docutils literal"><span class="pre">-dev</span></tt> or <tt class="docutils literal"><span class="pre">-devel</span></tt> packages like <tt class="docutils literal"><span class="pre">libxml2-dev</span></tt>, which
-you must install before trying to build lxml.  The build process also
-requires <a class="reference external" href="http://peak.telecommunity.com/DevCenter/setuptools">setuptools</a>.  The lxml source distribution comes with a
-script called <tt class="docutils literal"><span class="pre">ez_setup.py</span></tt> that can be used to install them.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#how-to-build-lxml-from-source" id="id3">How to build lxml from source</a><ul>
-<li><a class="reference internal" href="#cython" id="id4">Cython</a></li>
-<li><a class="reference internal" href="#github-git-and-hg" id="id5">Github, git and hg</a></li>
-<li><a class="reference internal" href="#id2" id="id6">Setuptools</a></li>
-<li><a class="reference internal" href="#running-the-tests-and-reporting-errors" id="id7">Running the tests and reporting errors</a></li>
-<li><a class="reference internal" href="#building-an-egg" id="id8">Building an egg</a></li>
-<li><a class="reference internal" href="#building-lxml-on-macos-x" id="id9">Building lxml on MacOS-X</a></li>
-<li><a class="reference internal" href="#static-linking-on-windows" id="id10">Static linking on Windows</a></li>
-<li><a class="reference internal" href="#building-debian-packages-from-svn-sources" id="id11">Building Debian packages from SVN sources</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="cython">
-<h2><a class="toc-backref" href="#id4">Cython</a><a class="headerlink" href="#cython" title="Permalink to this headline">¶</a></h2>
-<p>The lxml.etree and lxml.objectify modules are written in <a class="reference external" href="http://www.cython.org">Cython</a>.
-Since we distribute the Cython-generated .c files with lxml releases,
-however, you do not need Cython to build lxml from the normal release
-sources.  We even encourage you to <em>not install Cython</em> for a normal
-release build, as the generated C code can vary quite heavily between
-Cython versions, which may or may not generate correct code for lxml.
-The pre-generated release sources were tested and therefore are known
-to work.</p>
-<p>So, if you want a reliable build of lxml, we suggest to a) use a
-source release of lxml and b) disable or uninstall Cython for the
-build.</p>
-<p><em>Only</em> if you are interested in building lxml from a checkout of the
-developer sources (e.g. to test a bug fix that has not been release
-yet) or if you want to be an lxml developer, then you do need a
-working Cython installation.  You can use <a class="reference external" href="http://peak.telecommunity.com/DevCenter/EasyInstall">EasyInstall</a> to install it:</p>
-<div class="highlight-python"><pre>easy_install "Cython&gt;=0.14.1"</pre>
-</div>
-<p>lxml currently requires Cython 0.14.1, later release versions should
-work as well.</p>
-</div>
-<div class="section" id="github-git-and-hg">
-<h2><a class="toc-backref" href="#id5">Github, git and hg</a><a class="headerlink" href="#github-git-and-hg" title="Permalink to this headline">¶</a></h2>
-<p>The lxml package is developed in a repository on <a class="reference external" href="https://github.com/lxml/">Github</a> using
-<a class="reference external" href="http://mercurial.selenic.com/">Mercurial</a> and the <a class="reference external" href="http://hg-git.github.com/">hg-git</a> plugin.  You can retrieve the current
-developer version using:</p>
-<div class="highlight-python"><pre>hg clone git://github.com/lxml/lxml.git lxml</pre>
-</div>
-<p>This will create a directory <tt class="docutils literal"><span class="pre">lxml</span></tt> and download the source into it,
-including the complete development history.  Don&#8217;t be afraid, the
-download is fairly quick.  You can also browse the <a class="reference external" href="https://github.com/lxml/lxml">lxml repository</a>
-through the web.</p>
-</div>
-<div class="section" id="id2">
-<h2><a class="toc-backref" href="#id6">Setuptools</a><a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2>
-<p>Usually, building lxml is done through setuptools.  Clone the source
-repository as described above (or download the <a class="reference external" href="https://github.com/lxml/lxml/tarball/master">source tar-ball</a> and
-unpack it) and then type:</p>
-<div class="highlight-python"><pre>python setup.py build</pre>
-</div>
-<p>or:</p>
-<div class="highlight-python"><pre>python setup.py bdist_egg</pre>
-</div>
-<p>If you want to test lxml from the source directory, it is better to build it
-in-place like this:</p>
-<div class="highlight-python"><pre>python setup.py  build_ext -i</pre>
-</div>
-<p>or, in Unix-like environments:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">make</span>
-</pre></div>
-</div>
-<p>If you get errors about missing header files (e.g. <tt class="docutils literal"><span class="pre">Python.h</span></tt> or
-<tt class="docutils literal"><span class="pre">libxml/xmlversion.h</span></tt>) then you need to make sure the development
-packages of Python, libxml2 and libxslt are properly installed.  On
-Linux distributions, they are usually called something like
-<tt class="docutils literal"><span class="pre">libxml2-dev</span></tt> or <tt class="docutils literal"><span class="pre">libxslt-devel</span></tt>.  If these packages were
-installed in non-standard places, try passing the following option to
-setup.py to make sure the right config is found:</p>
-<div class="highlight-python"><pre>python setup.py build --with-xslt-config=/path/to/xslt-config</pre>
-</div>
-<p>If this doesn&#8217;t help, you may have to add the location of the header
-files to the include path like:</p>
-<div class="highlight-python"><pre>python setup.py build_ext -i  -I /usr/include/libxml2</pre>
-</div>
-<p>where the file is in <tt class="docutils literal"><span class="pre">/usr/include/libxml2/libxml/xmlversion.h</span></tt></p>
-<p>To use lxml.etree in-place, you can place lxml&#8217;s <tt class="docutils literal"><span class="pre">src</span></tt> directory on your
-Python module search path (PYTHONPATH) and then import <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> to play
-with it:</p>
-<div class="highlight-python"><pre># cd lxml
-# PYTHONPATH=src python
-Python 2.5.1
-Type "help", "copyright", "credits" or "license" for more information.
-&gt;&gt;&gt; from lxml import etree
-&gt;&gt;&gt;</pre>
-</div>
-<p>To make sure everything gets recompiled cleanly after changes, you can
-run <tt class="docutils literal"><span class="pre">make</span> <span class="pre">clean</span></tt> or delete the file <tt class="docutils literal"><span class="pre">src/lxml/etree.c</span></tt>.  Distutils
-do not automatically pick up changes that affect files other than the
-main file <tt class="docutils literal"><span class="pre">src/lxml/etree.pyx</span></tt>.</p>
-</div>
-<div class="section" id="running-the-tests-and-reporting-errors">
-<h2><a class="toc-backref" href="#id7">Running the tests and reporting errors</a><a class="headerlink" href="#running-the-tests-and-reporting-errors" title="Permalink to this headline">¶</a></h2>
-<p>The source distribution (tgz) and the source repository contain a test
-suite for lxml.  You can run it from the top-level directory:</p>
-<div class="highlight-python"><pre>python test.py</pre>
-</div>
-<p>Note that the test script only tests the in-place build (see distutils
-building above), as it searches the <tt class="docutils literal"><span class="pre">src</span></tt> directory.  You can use the
-following one-step command to trigger an in-place build and test it:</p>
-<div class="highlight-python"><pre>make test</pre>
-</div>
-<p>This also runs the ElementTree and cElementTree compatibility tests.  To call
-them separately, make sure you have lxml on your PYTHONPATH first, then run:</p>
-<div class="highlight-python"><pre>python selftest.py</pre>
-</div>
-<p>and:</p>
-<div class="highlight-python"><pre>python selftest2.py</pre>
-</div>
-<p>If the tests give failures, errors, or worse, segmentation faults, we&#8217;d really
-like to know.  Please contact us on the <a class="reference external" href="http://codespeak.net/mailman/listinfo/lxml-dev">mailing list</a>, and please specify
-the version of lxml, libxml2, libxslt and Python you were using, as well as
-your operating system type (Linux, Windows, MacOs, ...).</p>
-</div>
-<div class="section" id="building-an-egg">
-<h2><a class="toc-backref" href="#id8">Building an egg</a><a class="headerlink" href="#building-an-egg" title="Permalink to this headline">¶</a></h2>
-<p>This is the procedure to make an lxml egg for your platform (assuming
-that you have <a class="reference external" href="http://peak.telecommunity.com/DevCenter/setuptools">setuptools</a> installed):</p>
-<ul class="simple">
-<li>Download the lxml-x.y.tar.gz release.  This contains the pregenerated C so
-that you can be sure you build exactly from the release sources.  Unpack
-them and cd into the resulting directory.</li>
-<li>python setup.py build</li>
-<li>If you&#8217;re on a unixy platform, cd into <tt class="docutils literal"><span class="pre">build/lib.your.platform</span></tt> and strip
-any <tt class="docutils literal"><span class="pre">.so</span></tt> file you find there.  This reduces the size of the egg
-considerably.</li>
-<li><tt class="docutils literal"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">bdist_egg</span></tt></li>
-</ul>
-<p>This will put the egg into the <tt class="docutils literal"><span class="pre">dist</span></tt> directory.</p>
-</div>
-<div class="section" id="building-lxml-on-macos-x">
-<h2><a class="toc-backref" href="#id9">Building lxml on MacOS-X</a><a class="headerlink" href="#building-lxml-on-macos-x" title="Permalink to this headline">¶</a></h2>
-<p>Apple regularly ships new system releases with horribly outdated
-system libraries.  This is specifically the case for libxml2 and
-libxslt, where the system provided versions are too old to build lxml.</p>
-<p>While the Unix environment in MacOS-X makes it relatively easy to
-install Unix/Linux style package management tools and new software, it
-actually seems to be hard to get libraries set up for exclusive usage
-that MacOS-X ships in an older version.  Alternative distributions
-(like macports) install their libraries in addition to the system
-libraries, but the compiler and the runtime loader on MacOS still sees
-the system libraries before the new libraries.  This can lead to
-undebuggable crashes where the newer library seems to be loaded but
-the older system library is used.</p>
-<p>Apple discourages static building against libraries, which would help
-working around this problem.  Apple does not ship static library
-binaries with its system and several package management systems follow
-this decision.  Therefore, building static binaries requires building
-the dependencies first.  The <tt class="docutils literal"><span class="pre">setup.py</span></tt> script does this
-automatically when you call it like this:</p>
-<div class="highlight-python"><pre>python setup.py build --static-deps</pre>
-</div>
-<p>This will download and build the latest versions of libxml2 and
-libxslt from the official FTP download site.  If you want to use
-specific versions, or want to prevent any online access, you can
-download both <tt class="docutils literal"><span class="pre">tar.gz</span></tt> release files yourself, place them into a
-subdirectory <tt class="docutils literal"><span class="pre">libs</span></tt> in the lxml distribution, and call <tt class="docutils literal"><span class="pre">setup.py</span></tt>
-with the desired target versions like this:</p>
-<div class="highlight-python"><pre>python setup.py build --static-deps \
-       --libxml2-version=2.7.3 \
-       --libxslt-version=1.1.24 \
-
-sudo python setup.py install</pre>
-</div>
-<p>Instead of <tt class="docutils literal"><span class="pre">build</span></tt>, you can use any target, like <tt class="docutils literal"><span class="pre">bdist_egg</span></tt> if
-you want to use setuptools to build an installable egg.</p>
-<p>Note that this also works with <a class="reference external" href="http://peak.telecommunity.com/DevCenter/EasyInstall">EasyInstall</a>.  Since you can&#8217;t pass
-command line options in this case, you have to use an environment
-variable instead:</p>
-<div class="highlight-python"><pre>STATIC_DEPS=true easy_install lxml</pre>
-</div>
-<p>Some machines may require an additional run with &#8220;sudo&#8221; to install the
-package into the Python package directory:</p>
-<div class="highlight-python"><pre>STATIC_DEPS=true sudo easy_install lxml</pre>
-</div>
-<p>The <tt class="docutils literal"><span class="pre">STATICBUILD</span></tt> environment variable is handled equivalently to
-the <tt class="docutils literal"><span class="pre">STATIC_DEPS</span></tt> variable, but is used by some other extension
-packages, too.</p>
-</div>
-<div class="section" id="static-linking-on-windows">
-<h2><a class="toc-backref" href="#id10">Static linking on Windows</a><a class="headerlink" href="#static-linking-on-windows" title="Permalink to this headline">¶</a></h2>
-<p>Most operating systems have proper package management that makes installing
-current versions of libxml2 and libxslt easy.  The most famous exception is
-Microsoft Windows, which entirely lacks these capabilities.  It can therefore
-be interesting to statically link the external libraries into lxml.etree to
-avoid having to install them separately.</p>
-<p>Download lxml and all required libraries to the same directory.  The iconv,
-libxml2, libxslt, and zlib libraries are all available from the ftp site
-<a class="reference external" href="ftp://ftp.zlatkovic.com/pub/libxml/">ftp://ftp.zlatkovic.com/pub/libxml/</a>.</p>
-<p>Your directory should now have the following files in it (although most likely
-different versions):</p>
-<div class="highlight-python"><pre>iconv-1.9.1.win32.zip
-libxml2-2.6.23.win32.zip
-libxslt-1.1.15.win32.zip
-lxml-1.0.0.tgz
-zlib-1.2.3.win32.zip</pre>
-</div>
-<p>Now extract each of those files in the <em>same</em> directory.  This should give you
-something like this:</p>
-<div class="highlight-python"><pre>iconv-1.9.1.win32/
-iconv-1.9.1.win32.zip
-libxml2-2.6.23.win32/
-libxml2-2.6.23.win32.zip
-libxslt-1.1.15.win32/
-libxslt-1.1.15.win32.zip
-lxml-1.0.0/
-lxml-1.0.0.tgz
-zlib-1.2.3.win32/
-zlib-1.2.3.win32.zip</pre>
-</div>
-<p>Go to the lxml directory and edit the file <tt class="docutils literal"><span class="pre">setup.py</span></tt>.  There should
-be a section near the top that looks like this:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">STATIC_INCLUDE_DIRS</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="n">STATIC_LIBRARY_DIRS</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="n">STATIC_CFLAGS</span> <span class="o">=</span> <span class="p">[]</span>
-</pre></div>
-</div>
-<p>Change this section to something like this, but take care to use the correct
-version numbers:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">STATIC_INCLUDE_DIRS</span> <span class="o">=</span> <span class="p">[</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">libxml2-2.6.23.win32</span><span class="se">\\</span><span class="s">include&quot;</span><span class="p">,</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">libxslt-1.1.15.win32</span><span class="se">\\</span><span class="s">include&quot;</span><span class="p">,</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">zlib-1.2.3.win32</span><span class="se">\\</span><span class="s">include&quot;</span><span class="p">,</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">iconv-1.9.1.win32</span><span class="se">\\</span><span class="s">include&quot;</span>
-       <span class="p">]</span>
-
-<span class="n">STATIC_LIBRARY_DIRS</span> <span class="o">=</span> <span class="p">[</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">libxml2-2.6.23.win32</span><span class="se">\\</span><span class="s">lib&quot;</span><span class="p">,</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">libxslt-1.1.15.win32</span><span class="se">\\</span><span class="s">lib&quot;</span><span class="p">,</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">zlib-1.2.3.win32</span><span class="se">\\</span><span class="s">lib&quot;</span><span class="p">,</span>
-       <span class="s">&quot;..</span><span class="se">\\</span><span class="s">iconv-1.9.1.win32</span><span class="se">\\</span><span class="s">lib&quot;</span>
-       <span class="p">]</span>
-
-<span class="n">STATIC_CFLAGS</span> <span class="o">=</span> <span class="p">[]</span>
-</pre></div>
-</div>
-<p>Add any CFLAGS you might consider useful to the third list.  Now you
-should be able to pass the <tt class="docutils literal"><span class="pre">--static</span></tt> option to setup.py and
-everything should work well.  Try calling:</p>
-<div class="highlight-python"><pre>python setup.py bdist_wininst --static</pre>
-</div>
-<p>This will create a windows installer in the <tt class="docutils literal"><span class="pre">pkg</span></tt> directory.</p>
-</div>
-<div class="section" id="building-debian-packages-from-svn-sources">
-<h2><a class="toc-backref" href="#id11">Building Debian packages from SVN sources</a><a class="headerlink" href="#building-debian-packages-from-svn-sources" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference external" href="http://codespeak.net/pipermail/lxml-dev/2006-May/001254.html">Andreas Pakulat</a> proposed the following approach.</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">apt-get</span> <span class="pre">source</span> <span class="pre">lxml</span></tt></li>
-<li>remove the unpacked directory</li>
-<li>tar.gz the lxml SVN version and replace the orig.tar.gz that lies in the
-directory</li>
-<li>check md5sum of created tar.gz file and place new sum and size in dsc file</li>
-<li>do <tt class="docutils literal"><span class="pre">dpkg-source</span> <span class="pre">-x</span> <span class="pre">lxml-[VERSION].dsc</span></tt> and cd into the newly created directory</li>
-<li>run <tt class="docutils literal"><span class="pre">dch</span> <span class="pre">-i</span></tt> and add a comment like &#8220;use trunk version&#8221;, this will
-increase the debian version number so apt/dpkg won&#8217;t get confused</li>
-<li>run <tt class="docutils literal"><span class="pre">dpkg-buildpackage</span> <span class="pre">-rfakeroot</span> <span class="pre">-us</span> <span class="pre">-uc</span></tt> to build the package</li>
-</ul>
-<p>In case <tt class="docutils literal"><span class="pre">dpkg-buildpackage</span></tt> tells you that some dependecies are missing, you
-can either install them manually or run <tt class="docutils literal"><span class="pre">apt-get</span> <span class="pre">build-dep</span> <span class="pre">lxml</span></tt>.</p>
-<p>That will give you .deb packages in the parent directory which can be
-installed using <tt class="docutils literal"><span class="pre">dpkg</span> <span class="pre">-i</span></tt>.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">How to build lxml from source</a><ul>
-<li><a class="reference internal" href="#cython">Cython</a></li>
-<li><a class="reference internal" href="#github-git-and-hg">Github, git and hg</a></li>
-<li><a class="reference internal" href="#id2">Setuptools</a></li>
-<li><a class="reference internal" href="#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li>
-<li><a class="reference internal" href="#building-an-egg">Building an egg</a></li>
-<li><a class="reference internal" href="#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li>
-<li><a class="reference internal" href="#static-linking-on-windows">Static linking on Windows</a></li>
-<li><a class="reference internal" href="#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/build.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/capi.html b/doc/sphinx/capi.html
deleted file mode 100644 (file)
index c7d6c33..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>The public C-API of lxml.etree &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="the-public-c-api-of-lxml-etree">
-<h1><a class="toc-backref" href="#id1">The public C-API of lxml.etree</a><a class="headerlink" href="#the-public-c-api-of-lxml-etree" title="Permalink to this headline">¶</a></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,
-without going through the Python API.</p>
-<p>The API is described in the file <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/src/lxml/etreepublic.pxd">etreepublic.pxd</a>, which is directly
-c-importable by extension modules implemented in <a class="reference external" href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/">Pyrex</a> or <a class="reference external" href="http://www.cython.org">Cython</a>.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#the-public-c-api-of-lxml-etree" id="id1">The public C-API of lxml.etree</a><ul>
-<li><a class="reference internal" href="#writing-external-modules-in-cython" id="id2">Writing external modules in Cython</a></li>
-<li><a class="reference internal" href="#writing-external-modules-in-c" id="id3">Writing external modules in C</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="writing-external-modules-in-cython">
-<h2><a class="toc-backref" href="#id2">Writing external modules in Cython</a><a class="headerlink" href="#writing-external-modules-in-cython" title="Permalink to this headline">¶</a></h2>
-<p>This is the easiest way of extending lxml at the C level.  A <a class="reference external" href="http://www.cython.org">Cython</a>
-(or <a class="reference external" href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/">Pyrex</a>) module should start like this:</p>
-<div class="highlight-python"><pre># My Cython extension
-
-# import the public functions and classes of lxml.etree
-cimport etreepublic as cetree
-
-# import the lxml.etree module in Python
-cdef object etree
-from lxml import etree
-
-# initialize the access to the C-API of lxml.etree
-cetree.import_lxml__etree()</pre>
-</div>
-<p>From this line on, you can access all public functions of lxml.etree
-from the <tt class="docutils literal"><span class="pre">cetree</span></tt> namespace like this:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># build a tag name from namespace and element name</span>
-<span class="n">py_tag</span> <span class="o">=</span> <span class="n">cetree</span><span class="o">.</span><span class="n">namespacedNameFromNsName</span><span class="p">(</span><span class="s">&quot;http://some/url&quot;</span><span class="p">,</span> <span class="s">&quot;myelement&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Public lxml classes are easily subclassed.  For example, to implement
-and set a new default element class, you can write Cython code like
-the following:</p>
-<div class="highlight-python"><pre>from etreepublic cimport ElementBase
-cdef class NewElementClass(ElementBase):
-     def set_value(self, myval):
-         self.set("my_attribute", myval)
-
-etree.set_element_class_lookup(
-     etree.DefaultElementClassLookup(element=NewElementClass))</pre>
-</div>
-</div>
-<div class="section" id="writing-external-modules-in-c">
-<h2><a class="toc-backref" href="#id3">Writing external modules in C</a><a class="headerlink" href="#writing-external-modules-in-c" title="Permalink to this headline">¶</a></h2>
-<p>If you really feel like it, you can also interface with lxml.etree straight
-from C code.  All you have to do is include the header file for the public
-API, import the <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> module and then call the import function:</p>
-<div class="highlight-c"><div class="highlight"><pre><span class="cp">/* My C extension */</span>
-
-<span class="cp">/* common includes */</span>
-<span class="cp">#include &quot;Python.h&quot;</span>
-<span class="cp">#include &quot;stdio.h&quot;</span>
-<span class="cp">#include &quot;string.h&quot;</span>
-<span class="cp">#include &quot;stdarg.h&quot;</span>
-<span class="cp">#include &quot;libxml/xmlversion.h&quot;</span>
-<span class="cp">#include &quot;libxml/encoding.h&quot;</span>
-<span class="cp">#include &quot;libxml/hash.h&quot;</span>
-<span class="cp">#include &quot;libxml/tree.h&quot;</span>
-<span class="cp">#include &quot;libxml/xmlIO.h&quot;</span>
-<span class="cp">#include &quot;libxml/xmlsave.h&quot;</span>
-<span class="cp">#include &quot;libxml/globals.h&quot;</span>
-<span class="cp">#include &quot;libxml/xmlstring.h&quot;</span>
-
-<span class="cp">/* lxml.etree specific includes */</span>
-<span class="cp">#include &quot;lxml-version.h&quot;</span>
-<span class="cp">#include &quot;etree_defs.h&quot;</span>
-<span class="cp">#include &quot;etree.h&quot;</span>
-
-<span class="cm">/* setup code */</span>
-<span class="n">import_lxml__etree</span><span class="p">()</span>
-</pre></div>
-</div>
-<p>Note that including <tt class="docutils literal"><span class="pre">etree.h</span></tt> does not automatically include the
-header files it requires.  Note also that the above list of common
-includes may not be sufficient.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">The public C-API of lxml.etree</a><ul>
-<li><a class="reference internal" href="#writing-external-modules-in-cython">Writing external modules in Cython</a></li>
-<li><a class="reference internal" href="#writing-external-modules-in-c">Writing external modules in C</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/capi.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/compatibility.html b/doc/sphinx/compatibility.html
deleted file mode 100644 (file)
index 3baf86a..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>ElementTree compatibility of lxml.etree &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="elementtree-compatibility-of-lxml-etree">
-<h1>ElementTree compatibility of lxml.etree<a class="headerlink" href="#elementtree-compatibility-of-lxml-etree" title="Permalink to this headline">¶</a></h1>
-<p>A lot of care has been taken to ensure compatibility between etree and
-ElementTree.  Nonetheless, some differences and incompatibilities exist:</p>
-<ul>
-<li><p class="first">Importing etree is obviously different; etree uses a lower-case
-package name, while ElementTree uses a combination of upper-case and
-lower case in imports:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># etree</span>
-<span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">Element</span>
-
-<span class="c"># ElementTree</span>
-<span class="kn">from</span> <span class="nn">elementtree.ElementTree</span> <span class="kn">import</span> <span class="n">Element</span>
-
-<span class="c"># ElementTree in the Python 2.5 standard library</span>
-<span class="kn">from</span> <span class="nn">xml.etree.ElementTree</span> <span class="kn">import</span> <span class="n">Element</span>
-</pre></div>
-</div>
-<p>When switching over code from ElementTree to lxml.etree, and you&#8217;re using
-the package name prefix &#8216;ElementTree&#8217;, you can do the following:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># instead of</span>
-<span class="kn">from</span> <span class="nn">elementtree</span> <span class="kn">import</span> <span class="n">ElementTree</span>
-<span class="c"># use</span>
-<span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span> <span class="k">as</span> <span class="n">ElementTree</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">lxml.etree offers a lot more functionality, such as XPath, XSLT, Relax NG,
-and XML Schema support, which (c)ElementTree does not offer.</p>
-</li>
-<li><p class="first">etree has a different idea about Python unicode strings than ElementTree.
-In most parts of the API, ElementTree uses plain strings and unicode strings
-as what they are.  This includes Element.text, Element.tail and many other
-places.  However, the ElementTree parsers assume by default that any string
-(<cite>str</cite> or <cite>unicode</cite>) contains ASCII data.  They raise an exception if
-strings do not match the expected encoding.</p>
-<p>etree has the same idea about plain strings (<cite>str</cite>) as ElementTree.  For
-unicode strings, however, etree assumes throughout the API that they are
-Python unicode encoded strings rather than byte data.  This includes the
-parsers.  It is therefore perfectly correct to pass XML unicode data into
-the etree parsers in form of Python unicode strings.  It is an error, on the
-other hand, if unicode strings specify an encoding in their XML declaration,
-as this conflicts with the characteristic encoding of Python unicode
-strings.</p>
-</li>
-<li><p class="first">ElementTree allows you to place an Element in two different trees at the
-same time.  Thus, this:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">a</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="s">&#39;a&#39;</span><span class="p">)</span>
-<span class="n">b</span> <span class="o">=</span> <span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s">&#39;b&#39;</span><span class="p">)</span>
-<span class="n">c</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="s">&#39;c&#39;</span><span class="p">)</span>
-<span class="n">c</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>will result in the following tree a:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;a&gt;&lt;b</span> <span class="nt">/&gt;&lt;/a&gt;</span>
-</pre></div>
-</div>
-<p>and the following tree c:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;c&gt;&lt;b</span> <span class="nt">/&gt;&lt;/c&gt;</span>
-</pre></div>
-</div>
-<p>In lxml, this behavior is different, because lxml is built on top of a tree
-that maintains parent relationships for elements (like W3C DOM).  This means
-an element can only exist in a single tree at the same time.  Adding an
-element in some tree to another tree will cause this element to be moved.</p>
-<p>So, for tree a we will get:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;a&gt;&lt;/a&gt;</span>
-</pre></div>
-</div>
-<p>and for tree c we will get:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;c&gt;&lt;b/&gt;&lt;/c&gt;</span>
-</pre></div>
-</div>
-<p>Unfortunately this is a rather fundamental difference in behavior, which is
-hard to change.  It won&#8217;t affect some applications, but if you want to port
-code you must unfortunately make sure that it doesn&#8217;t affect yours.</p>
-</li>
-<li><p class="first">etree allows navigation to the parent of a node by the <tt class="docutils literal"><span class="pre">getparent()</span></tt>
-method and to the siblings by calling <tt class="docutils literal"><span class="pre">getnext()</span></tt> and <tt class="docutils literal"><span class="pre">getprevious()</span></tt>.
-This is not possible in ElementTree as the underlying tree model does not
-have this information.</p>
-</li>
-<li><p class="first">When trying to set a subelement using __setitem__ that is in fact not an
-Element but some other object, etree raises a TypeError, and ElementTree
-raises an AssertionError.  This also applies to some other places of the
-API.  In general, etree tries to avoid AssertionErrors in favour of being
-more specific about the reason for the exception.</p>
-</li>
-<li><p class="first">When parsing fails in <tt class="docutils literal"><span class="pre">iterparse()</span></tt>, ElementTree up to version
-1.2.x raises a low-level <tt class="docutils literal"><span class="pre">ExpatError</span></tt> instead of a <tt class="docutils literal"><span class="pre">SyntaxError</span></tt>
-as the other parsers.  Both lxml and ElementTree 1.3 raise a
-<tt class="docutils literal"><span class="pre">ParseError</span></tt> for parser errors.</p>
-</li>
-<li><p class="first">The <tt class="docutils literal"><span class="pre">iterparse()</span></tt> function in lxml is implemented based on the libxml2
-parser and tree generator.  This means that modifications of the document
-root or the ancestors of the current element during parsing can irritate the
-parser and even segfault.  While this is not a problem in the Python object
-structure used by ElementTree, the C tree underlying lxml suffers from it.
-The golden rule for <tt class="docutils literal"><span class="pre">iterparse()</span></tt> on lxml therefore is: do not touch
-anything that will have to be touched again by the parser later on.  See the
-lxml parser documentation on this.</p>
-</li>
-<li><p class="first">ElementTree ignores comments and processing instructions when parsing XML,
-while etree will read them in and treat them as Comment or
-ProcessingInstruction elements respectively.  This is especially visible
-where comments are found inside text content, which is then split by the
-Comment element.</p>
-<p>You can disable this behaviour by passing the boolean <tt class="docutils literal"><span class="pre">remove_comments</span></tt>
-and/or <tt class="docutils literal"><span class="pre">remove_pis</span></tt> keyword arguments to the parser you use.  For
-convenience and to support portable code, you can also use the
-<tt class="docutils literal"><span class="pre">etree.ETCompatXMLParser</span></tt> instead of the default <tt class="docutils literal"><span class="pre">etree.XMLParser</span></tt>.  It
-tries to provide a default setup that is as close to the ElementTree parser
-as possible.</p>
-</li>
-<li><p class="first">The <tt class="docutils literal"><span class="pre">TreeBuilder</span></tt> class of <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> uses a different
-signature for the <tt class="docutils literal"><span class="pre">start()</span></tt> method.  It accepts an additional
-argument <tt class="docutils literal"><span class="pre">nsmap</span></tt> to propagate the namespace declarations of an
-element in addition to its own namespace.  To assure compatibility
-with ElementTree (which does not support this argument), lxml checks
-if the method accepts 3 arguments before calling it, and otherwise
-drops the namespace mapping.  This should work with most existing
-ElementTree code, although there may still be conflicting cases.</p>
-</li>
-<li><p class="first">ElementTree 1.2 has a bug when serializing an empty Comment (no text
-argument given) to XML, etree serializes this successfully.</p>
-</li>
-<li><p class="first">ElementTree adds whitespace around comments on serialization, lxml does
-not.  This means that a comment text &#8220;text&#8221; that ElementTree serializes as
-&#8220;&lt;!&#8211; text &#8211;&gt;&#8221; will become &#8220;&lt;!&#8211;text&#8211;&gt;&#8221; in lxml.</p>
-</li>
-<li><p class="first">When the string &#8216;*&#8217; is used as tag filter in the <tt class="docutils literal"><span class="pre">Element.getiterator()</span></tt>
-method, ElementTree returns all elements in the tree, including comments and
-processing instructions. lxml.etree only returns real Elements, i.e. tree
-nodes that have a string tag name.  Without a filter, both libraries iterate
-over all nodes.</p>
-<p>Note that currently only lxml.etree supports passing the <tt class="docutils literal"><span class="pre">Element</span></tt> factory
-function as filter to select only Elements.  Both libraries support passing
-the <tt class="docutils literal"><span class="pre">Comment</span></tt> and <tt class="docutils literal"><span class="pre">ProcessingInstruction</span></tt> factories to select the
-respective tree nodes.</p>
-</li>
-<li><p class="first">ElementTree merges the target of a processing instruction into <tt class="docutils literal"><span class="pre">PI.text</span></tt>,
-while lxml.etree puts it into the <tt class="docutils literal"><span class="pre">.target</span></tt> property and leaves it out of
-the <tt class="docutils literal"><span class="pre">.text</span></tt> property.  The <tt class="docutils literal"><span class="pre">pi.text</span></tt> in ElementTree therefore
-correspondents to <tt class="docutils literal"><span class="pre">pi.target</span> <span class="pre">+</span> <span class="pre">&quot;</span> <span class="pre">&quot;</span> <span class="pre">+</span> <span class="pre">pi.text</span></tt> in lxml.etree.</p>
-</li>
-<li><p class="first">Because etree is built on top of libxml2, which is namespace prefix aware,
-etree preserves namespaces declarations and prefixes while ElementTree tends
-to come up with its own prefixes (ns0, ns1, etc).  When no namespace prefix
-is given, however, etree creates ElementTree style prefixes as well.</p>
-</li>
-<li><p class="first">etree has a &#8216;prefix&#8217; attribute (read-only) on elements giving the Element&#8217;s
-prefix, if this is known, and None otherwise (in case of no namespace at
-all, or default namespace).</p>
-</li>
-<li><p class="first">etree further allows passing an &#8216;nsmap&#8217; dictionary to the Element and
-SubElement element factories to explicitly map namespace prefixes to
-namespace URIs.  These will be translated into namespace declarations on
-that element.  This means that in the probably rare case that you need to
-construct an attribute called &#8216;nsmap&#8217;, you need to be aware that unlike in
-ElementTree, you cannot pass it as a keyword argument to the Element and
-SubElement factories directly.</p>
-</li>
-<li><p class="first">ElementTree allows QName objects as attribute values and resolves their
-prefix on serialisation (e.g. an attribute value <tt class="docutils literal"><span class="pre">QName(&quot;{myns}myname&quot;)</span></tt>
-becomes &#8220;p:myname&#8221; if &#8220;p&#8221; is the namespace prefix of &#8220;myns&#8221;).  lxml.etree
-also allows you to set attribute values from QName instances (and also .text
-values), but it resolves their prefix immediately and stores the plain text
-value.  So, if prefixes are modified later on, e.g. by moving a subtree to a
-different tree (which reassigns the prefix mappings), the text values will
-not be updated and you might end up with an undefined prefix.</p>
-</li>
-<li><p class="first">etree elements can be copied using <tt class="docutils literal"><span class="pre">copy.deepcopy()</span></tt> and <tt class="docutils literal"><span class="pre">copy.copy()</span></tt>,
-just like ElementTree&#8217;s.  However, <tt class="docutils literal"><span class="pre">copy.copy()</span></tt> does <em>not</em> create a
-shallow copy where elements are shared between trees, as this makes no sense
-in the context of libxml2 trees.  Note that lxml can deep-copy trees
-considerably faster than ElementTree, so a deep copy might still be fast
-enough to replace a shallow copy in your case.</p>
-</li>
-</ul>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/compatibility.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/cssselect.html b/doc/sphinx/cssselect.html
deleted file mode 100644 (file)
index 5507055..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>lxml.cssselect &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="lxml-cssselect">
-<h1><a class="toc-backref" href="#id1">lxml.cssselect</a><a class="headerlink" href="#lxml-cssselect" title="Permalink to this headline">¶</a></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
-<a class="reference external" href="objectify.html#objectpath">ObjectPath</a> in the <a class="reference external" href="objectify.html">lxml.objectify</a> module.  The newest child of this family
-is <a class="reference external" href="http://www.w3.org/TR/CSS21/selector.html">CSS selection</a>, which is implemented in the new <tt class="docutils literal"><span class="pre">lxml.cssselect</span></tt> module.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#lxml-cssselect" id="id1">lxml.cssselect</a><ul>
-<li><a class="reference internal" href="#the-cssselector-class" id="id2">The CSSSelector class</a></li>
-<li><a class="reference internal" href="#css-selectors" id="id3">CSS Selectors</a></li>
-<li><a class="reference internal" href="#namespaces" id="id4">Namespaces</a></li>
-<li><a class="reference internal" href="#limitations" id="id5">Limitations</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="the-cssselector-class">
-<h2><a class="toc-backref" href="#id2">The CSSSelector class</a><a class="headerlink" href="#the-cssselector-class" title="Permalink to this headline">¶</a></h2>
-<p>The most important class in the <tt class="docutils literal"><span class="pre">cssselect</span></tt> module is <tt class="docutils literal"><span class="pre">CSSSelector</span></tt>.  It
-provides the same interface as the <a class="reference external" href="xpathxslt.html#xpath">XPath</a> class, but accepts a CSS selector
-expression as input:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.cssselect</span> <span class="kn">import</span> <span class="n">CSSSelector</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span> <span class="o">=</span> <span class="n">CSSSelector</span><span class="p">(</span><span class="s">&#39;div.content&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span>  
-<span class="go">&lt;CSSSelector ... for &#39;div.content&#39;&gt;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span><span class="o">.</span><span class="n">css</span>
-<span class="go">&#39;div.content&#39;</span>
-</pre></div>
-</div>
-<p>The selector actually compiles to XPath, and you can see the
-expression by inspecting the object:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">sel</span><span class="o">.</span><span class="n">path</span>
-<span class="go">&quot;descendant-or-self::div[contains(concat(&#39; &#39;, normalize-space(@class), &#39; &#39;), &#39; content &#39;)]&quot;</span>
-</pre></div>
-</div>
-<p>To use the selector, simply call it with a document or element
-object:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">fromstring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">h</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;&lt;div id=&quot;outer&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;div id=&quot;inner&quot; class=&quot;content body&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      text</span>
-<span class="gp">... </span><span class="s">  &lt;/div&gt;&lt;/div&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;id&#39;</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">sel</span><span class="p">(</span><span class="n">h</span><span class="p">)]</span>
-<span class="go">[&#39;inner&#39;]</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="css-selectors">
-<h2><a class="toc-backref" href="#id3">CSS Selectors</a><a class="headerlink" href="#css-selectors" title="Permalink to this headline">¶</a></h2>
-<p>This libraries attempts to implement CSS selectors <a class="reference external" href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">as described in
-the w3c specification</a>.  Many of
-the pseudo-classes do not apply in this context, including all
-<a class="reference external" href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#dynamic-pseudos">dynamic pseudo-classes</a>.
-In particular these will not be available:</p>
-<ul class="simple">
-<li>link state: <tt class="docutils literal"><span class="pre">:link</span></tt>, <tt class="docutils literal"><span class="pre">:visited</span></tt>, <tt class="docutils literal"><span class="pre">:target</span></tt></li>
-<li>actions: <tt class="docutils literal"><span class="pre">:hover</span></tt>, <tt class="docutils literal"><span class="pre">:active</span></tt>, <tt class="docutils literal"><span class="pre">:focus</span></tt></li>
-<li>UI states: <tt class="docutils literal"><span class="pre">:enabled</span></tt>, <tt class="docutils literal"><span class="pre">:disabled</span></tt>, <tt class="docutils literal"><span class="pre">:indeterminate</span></tt>
-(<tt class="docutils literal"><span class="pre">:checked</span></tt> and <tt class="docutils literal"><span class="pre">:unchecked</span></tt> <em>are</em> available)</li>
-</ul>
-<p>Also, none of the pseudo-elements apply, because the selector only
-returns elements and pseudo-elements select portions of text, like
-<tt class="docutils literal"><span class="pre">::first-line</span></tt>.</p>
-</div>
-<div class="section" id="namespaces">
-<h2><a class="toc-backref" href="#id4">Namespaces</a><a class="headerlink" href="#namespaces" title="Permalink to this headline">¶</a></h2>
-<p>In CSS you can use <tt class="docutils literal"><span class="pre">namespace-prefix|element</span></tt>, similar to
-<tt class="docutils literal"><span class="pre">namespace-prefix:element</span></tt> in an XPath expression.  In fact, it maps
-one-to-one, and the same rules are used to map namespace prefixes to
-namespace URIs.</p>
-</div>
-<div class="section" id="limitations">
-<h2><a class="toc-backref" href="#id5">Limitations</a><a class="headerlink" href="#limitations" title="Permalink to this headline">¶</a></h2>
-<p>These applicable pseudoclasses are not yet implemented:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">:lang(language)</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">:root</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">*:first-of-type</span></tt>, <tt class="docutils literal"><span class="pre">*:last-of-type</span></tt>, <tt class="docutils literal"><span class="pre">*:nth-of-type</span></tt>,
-<tt class="docutils literal"><span class="pre">*:nth-last-of-type</span></tt>, <tt class="docutils literal"><span class="pre">*:only-of-type</span></tt>.  All of these work when
-you specify an element type, but not with <tt class="docutils literal"><span class="pre">*</span></tt></li>
-</ul>
-<p>Unlike XPath you cannot provide parameters in your expressions &#8211; all
-expressions are completely static.</p>
-<p>XPath has underspecified string quoting rules (there seems to be no
-string quoting at all), so if you use expressions that contain
-characters that requiring quoting you might have problems with the
-translation from CSS to XPath.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">lxml.cssselect</a><ul>
-<li><a class="reference internal" href="#the-cssselector-class">The CSSSelector class</a></li>
-<li><a class="reference internal" href="#css-selectors">CSS Selectors</a></li>
-<li><a class="reference internal" href="#namespaces">Namespaces</a></li>
-<li><a class="reference internal" href="#limitations">Limitations</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/cssselect.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/element_classes.html b/doc/sphinx/element_classes.html
deleted file mode 100644 (file)
index 6a6a212..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Using custom Element classes in lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="using-custom-element-classes-in-lxml">
-<h1><a class="toc-backref" href="#id2">Using custom Element classes in lxml</a><a class="headerlink" href="#using-custom-element-classes-in-lxml" title="Permalink to this headline">¶</a></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
-default for all elements generated by a specific parser, only for a
-specific tag name in a specific namespace or even for an exact element
-at a specific position in the tree.</p>
-<p>Custom Elements must inherit from the <tt class="docutils literal"><span class="pre">lxml.etree.ElementBase</span></tt> class, which
-provides the Element interface for subclasses:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">honk</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">def</span> <span class="nf">honking</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;honking&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s">&#39;true&#39;</span>
-<span class="gp">... </span>   <span class="n">honking</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">honking</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This defines a new Element class <tt class="docutils literal"><span class="pre">honk</span></tt> with a property <tt class="docutils literal"><span class="pre">honking</span></tt>.</p>
-<p>The following document describes how you can make lxml.etree use these
-custom Element classes.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#using-custom-element-classes-in-lxml" id="id2">Using custom Element classes in lxml</a><ul>
-<li><a class="reference internal" href="#background-on-element-proxies" id="id3">Background on Element proxies</a></li>
-<li><a class="reference internal" href="#element-initialization" id="id4">Element initialization</a></li>
-<li><a class="reference internal" href="#setting-up-a-class-lookup-scheme" id="id5">Setting up a class lookup scheme</a><ul>
-<li><a class="reference internal" href="#default-class-lookup" id="id6">Default class lookup</a></li>
-<li><a class="reference internal" href="#namespace-class-lookup" id="id7">Namespace class lookup</a></li>
-<li><a class="reference internal" href="#attribute-based-lookup" id="id8">Attribute based lookup</a></li>
-<li><a class="reference internal" href="#custom-element-class-lookup" id="id9">Custom element class lookup</a></li>
-<li><a class="reference internal" href="#tree-based-element-class-lookup-in-python" id="id10">Tree based element class lookup in Python</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#generating-xml-with-custom-classes" id="id11">Generating XML with custom classes</a></li>
-<li><a class="reference internal" href="#id1" id="id12">Implementing namespaces</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="background-on-element-proxies">
-<h2><a class="toc-backref" href="#id3">Background on Element proxies</a><a class="headerlink" href="#background-on-element-proxies" title="Permalink to this headline">¶</a></h2>
-<p>Being based on libxml2, lxml.etree holds the entire XML tree in a C
-structure.  To communicate with Python code, it creates Python proxy
-objects for the XML elements on demand.</p>
-<blockquote>
-<div><img alt="proxies.png" src="proxies.png" />
-</div></blockquote>
-<p>The mapping between C elements and Python Element classes is
-completely configurable.  When you ask lxml.etree for an Element by
-using its API, it will instantiate your classes for you.  All you have
-to do is tell lxml which class to use for which kind of Element.  This
-is done through a class lookup scheme, as described in the sections
-below.</p>
-</div>
-<div class="section" id="element-initialization">
-<h2><a class="toc-backref" href="#id4">Element initialization</a><a class="headerlink" href="#element-initialization" title="Permalink to this headline">¶</a></h2>
-<p>There is one thing to know up front.  Element classes <em>must not</em> have
-an <tt class="docutils literal"><span class="pre">__init___</span></tt> or <tt class="docutils literal"><span class="pre">__new__</span></tt> method.  There should not be any
-internal state either, except for the data stored in the underlying
-XML tree.  Element instances are created and garbage collected at
-need, so there is normally no way to predict when and how often a
-proxy is created for them.  Even worse, when the <tt class="docutils literal"><span class="pre">__init__</span></tt> method
-is called, the object is not even initialized yet to represent the XML
-tag, so there is not much use in providing an <tt class="docutils literal"><span class="pre">__init__</span></tt> method in
-subclasses.</p>
-<p>Most use cases will not require any class initialisation or proxy
-state, so you can content yourself with skipping to the next section
-for now.  However, if you really need to set up your element class on
-instantiation, or need a way to persistently store state in the proxy
-instances instead of the XML tree, here is a way to do so.</p>
-<p>There is one important guarantee regarding Element proxies.  Once a
-proxy has been instantiated, it will keep alive as long as there is a
-Python reference to it, and any access to the XML element in the tree
-will return this very instance.  Therefore, if you need to store local
-state in a custom Element class (which is generally discouraged), you
-can do so by keeping the Elements in a tree alive.  If the tree
-doesn&#8217;t change, you can simply do this:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">proxy_cache</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">())</span>
-</pre></div>
-</div>
-<p>or</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">proxy_cache</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">())</span>
-</pre></div>
-</div>
-<p>or use any other suitable container.  Note that you have to keep this
-cache manually up to date if the tree changes, which can get tricky in
-cases.</p>
-<p>For proxy initialisation, ElementBase classes have an <tt class="docutils literal"><span class="pre">_init()</span></tt>
-method that can be overridden, as oppose to the normal <tt class="docutils literal"><span class="pre">__init__()</span></tt>
-method.  It can be used to modify the XML tree, e.g. to construct
-special children or verify and update attributes.</p>
-<p>The semantics of <tt class="docutils literal"><span class="pre">_init()</span></tt> are as follows:</p>
-<ul class="simple">
-<li>It is called once on Element class instantiation time.  That is,
-when a Python representation of the element is created by lxml.  At
-that time, the element object is completely initialized to represent
-a specific XML element within the tree.</li>
-<li>The method has complete access to the XML tree.  Modifications can be done
-in exactly the same way as anywhere else in the program.</li>
-<li>Python representations of elements may be created multiple times during the
-lifetime of an XML element in the underlying C tree.  The <tt class="docutils literal"><span class="pre">_init()</span></tt> code
-provided by subclasses must take special care by itself that multiple
-executions either are harmless or that they are prevented by some kind of
-flag in the XML tree.  The latter can be achieved by modifying an attribute
-value or by removing or adding a specific child node and then verifying this
-before running through the init process.</li>
-<li>Any exceptions raised in <tt class="docutils literal"><span class="pre">_init()</span></tt> will be propagated throught the API
-call that lead to the creation of the Element.  So be careful with the code
-you write here as its exceptions may turn up in various unexpected places.</li>
-</ul>
-</div>
-<div class="section" id="setting-up-a-class-lookup-scheme">
-<h2><a class="toc-backref" href="#id5">Setting up a class lookup scheme</a><a class="headerlink" href="#setting-up-a-class-lookup-scheme" title="Permalink to this headline">¶</a></h2>
-<p>The first thing to do when deploying custom element classes is to register a
-class lookup scheme on a parser.  lxml.etree provides quite a number of
-different schemes that also support class lookup based on namespaces or
-attribute values.  Most lookups support fallback chaining, which allows the
-next lookup mechanism to take over when the previous one fails to find a
-class.</p>
-<p>For example, setting the <tt class="docutils literal"><span class="pre">honk</span></tt> Element as a default element class
-for a parser works as follows:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser_lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementDefaultClassLookup</span><span class="p">(</span><span class="n">element</span><span class="o">=</span><span class="n">honk</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">parser_lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>There is one drawback of the parser based scheme: the <tt class="docutils literal"><span class="pre">Element()</span></tt> factory
-does not know about your specialised parser and creates a new document that
-deploys the default parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>You should therefore avoid using this factory function in code that
-uses custom classes.  The <tt class="docutils literal"><span class="pre">makeelement()</span></tt> method of parsers provides
-a simple replacement:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>If you use a parser at the module level, you can easily redirect a module
-level <tt class="docutils literal"><span class="pre">Element()</span></tt> factory to the parser method by adding code like this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">module_level_parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">Element</span> <span class="o">=</span> <span class="n">module_level_parser</span><span class="o">.</span><span class="n">makeelement</span>
-</pre></div>
-</div>
-<p>While the <tt class="docutils literal"><span class="pre">XML()</span></tt> and <tt class="docutils literal"><span class="pre">HTML()</span></tt> factories also depend on the default
-parser, you can pass them a different parser as second argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;test/&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">False</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;test/&gt;&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>Whenever you create a document with a parser, it will inherit the lookup
-scheme and all subsequent element instantiations for this document will use
-it:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;test/&gt;&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="s">&quot;subel&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>For testing code in the Python interpreter and for small projects, you
-may also consider setting a lookup scheme on the default parser.  To
-avoid interfering with other modules, however, it is usually a better
-idea to use a dedicated parser for each module (or a parser pool when
-using threads) and then register the required lookup scheme only for
-this parser.</p>
-<div class="section" id="default-class-lookup">
-<h3><a class="toc-backref" href="#id6">Default class lookup</a><a class="headerlink" href="#default-class-lookup" title="Permalink to this headline">¶</a></h3>
-<p>This is the most simple lookup mechanism.  It always returns the default
-element class.  Consequently, no further fallbacks are supported, but this
-scheme is a nice fallback for other custom lookup mechanisms.</p>
-<p>Usage:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementDefaultClassLookup</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Note that the default for new parsers is to use the global fallback, which is
-also the default lookup (if not configured otherwise).</p>
-<p>To change the default element implementation, you can pass your new class to
-the constructor.  While it accepts classes for <tt class="docutils literal"><span class="pre">element</span></tt>, <tt class="docutils literal"><span class="pre">comment</span></tt> and
-<tt class="docutils literal"><span class="pre">pi</span></tt> nodes, most use cases will only override the element class:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">&quot;myelement&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">False</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementDefaultClassLookup</span><span class="p">(</span><span class="n">element</span><span class="o">=</span><span class="n">honk</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">&quot;myelement&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">honk</span><span class="p">))</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">honking</span>
-<span class="go">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">&quot;myelement&quot;</span><span class="p">,</span> <span class="n">honking</span><span class="o">=</span><span class="s">&#39;true&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>
-<span class="go">b&#39;&lt;myelement honking=&quot;true&quot;/&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">honking</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="namespace-class-lookup">
-<h3><a class="toc-backref" href="#id7">Namespace class lookup</a><a class="headerlink" href="#namespace-class-lookup" title="Permalink to this headline">¶</a></h3>
-<p>This is an advanced lookup mechanism that supports namespace/tag-name specific
-element classes.  You can select it by calling:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>See the separate section on <a class="reference external" href="#implementing-namespaces">implementing namespaces</a> below to learn how to
-make use of it.</p>
-<p>This scheme supports a fallback mechanism that is used in the case where the
-namespace is not found or no class was registered for the element name.
-Normally, the default class lookup is used here.  To change it, pass the
-desired fallback lookup scheme to the constructor:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">fallback</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementDefaultClassLookup</span><span class="p">(</span><span class="n">element</span><span class="o">=</span><span class="n">honk</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">(</span><span class="n">fallback</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="attribute-based-lookup">
-<h3><a class="toc-backref" href="#id8">Attribute based lookup</a><a class="headerlink" href="#attribute-based-lookup" title="Permalink to this headline">¶</a></h3>
-<p>This scheme uses a mapping from attribute values to classes.  An attribute
-name is set at initialisation time and is then used to find the corresponding
-value in a dictionary.  It is set up as follows:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">id_class_mapping</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;1234&#39;</span> <span class="p">:</span> <span class="n">honk</span><span class="p">}</span> <span class="c"># maps attribute values to classes</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">AttributeBasedElementClassLookup</span><span class="p">(</span>
-<span class="gp">... </span>                                     <span class="s">&#39;id&#39;</span><span class="p">,</span> <span class="n">id_class_mapping</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This class uses its fallback if the attribute is not found or its value is not
-in the mapping.  Normally, the default class lookup is used here.  If you want
-to use the namespace lookup, for example, you can use this code:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">fallback</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">AttributeBasedElementClassLookup</span><span class="p">(</span>
-<span class="gp">... </span>                      <span class="s">&#39;id&#39;</span><span class="p">,</span> <span class="n">id_class_mapping</span><span class="p">,</span> <span class="n">fallback</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="custom-element-class-lookup">
-<h3><a class="toc-backref" href="#id9">Custom element class lookup</a><a class="headerlink" href="#custom-element-class-lookup" title="Permalink to this headline">¶</a></h3>
-<p>This is the most customisable way of finding element classes on a per-element
-basis.  It allows you to implement a custom lookup scheme in a subclass:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyLookup</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">CustomElementClassLookup</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">lookup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_type</span><span class="p">,</span> <span class="n">document</span><span class="p">,</span> <span class="n">namespace</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="n">honk</span> <span class="c"># be a bit more selective here ...</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">MyLookup</span><span class="p">())</span>
-</pre></div>
-</div>
-<p>The <tt class="docutils literal"><span class="pre">.lookup()</span></tt> method must return either None (which triggers the
-fallback mechanism) or a subclass of <tt class="docutils literal"><span class="pre">lxml.etree.ElementBase</span></tt>.  It
-can take any decision it wants based on the node type (one of
-&#8220;element&#8221;, &#8220;comment&#8221;, &#8220;PI&#8221;, &#8220;entity&#8221;), the XML document of the
-element, or its namespace or tag name.</p>
-</div>
-<div class="section" id="tree-based-element-class-lookup-in-python">
-<h3><a class="toc-backref" href="#id10">Tree based element class lookup in Python</a><a class="headerlink" href="#tree-based-element-class-lookup-in-python" title="Permalink to this headline">¶</a></h3>
-<p>Taking more elaborate decisions than allowed by the custom scheme is
-difficult to achieve in pure Python, as it results in a
-chicken-and-egg problem.  It would require access to the tree - before
-the elements in the tree have been instantiated as Python Element
-proxies.</p>
-<p>Luckily, there is a way to do this.  The <tt class="docutils literal"><span class="pre">PythonElementClassLookup</span></tt>
-works similar to the custom lookup scheme:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyLookup</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">PythonElementClassLookup</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">lookup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">document</span><span class="p">,</span> <span class="n">element</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="n">MyElementClass</span> <span class="c"># defined elsewhere</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">MyLookup</span><span class="p">())</span>
-</pre></div>
-</div>
-<p>As before, the first argument to the <tt class="docutils literal"><span class="pre">lookup()</span></tt> method is the opaque
-document instance that contains the Element.  The second arguments is a
-lightweight Element proxy implementation that is only valid during the lookup.
-Do not try to keep a reference to it.  Once the lookup is finished, the proxy
-will become invalid.  You will get an <tt class="docutils literal"><span class="pre">AssertionError</span></tt> if you access any of
-the properties or methods outside the scope of the lookup call where they were
-instantiated.</p>
-<p>During the lookup, the element object behaves mostly like a normal Element
-instance.  It provides the properties <tt class="docutils literal"><span class="pre">tag</span></tt>, <tt class="docutils literal"><span class="pre">text</span></tt>, <tt class="docutils literal"><span class="pre">tail</span></tt> etc. and
-supports indexing, slicing and the <tt class="docutils literal"><span class="pre">getchildren()</span></tt>, <tt class="docutils literal"><span class="pre">getparent()</span></tt>
-etc. methods.  It does <em>not</em> support iteration, nor does it support any kind
-of modification.  All of its properties are read-only and it cannot be removed
-or inserted into other trees.  You can use it as a starting point to freely
-traverse the tree and collect any kind of information that its elements
-provide.  Once you have taken the decision which class to use for this
-element, you can simply return it and have lxml take care of cleaning up the
-instantiated proxy classes.</p>
-<p>Sidenote: this lookup scheme originally lived in a separate module called
-<tt class="docutils literal"><span class="pre">lxml.pyclasslookup</span></tt>.</p>
-</div>
-</div>
-<div class="section" id="generating-xml-with-custom-classes">
-<h2><a class="toc-backref" href="#id11">Generating XML with custom classes</a><a class="headerlink" href="#generating-xml-with-custom-classes" title="Permalink to this headline">¶</a></h2>
-<p>Up to lxml 2.1, you could not instantiate proxy classes yourself.
-Only lxml.etree could do that when creating an object representation
-of an existing XML element.  Since lxml 2.2, however, instantiating
-this class will simply create a new Element:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">honk</span><span class="p">(</span><span class="n">honking</span> <span class="o">=</span> <span class="s">&#39;true&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;honk&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span><span class="o">.</span><span class="n">honking</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>Note, however, that the proxy you create here will be garbage
-collected just like any other proxy.  You can therefore not count on
-lxml.etree using the same class that you instantiated when you access
-this Element a second time after letting its reference go.  You should
-therefore always use a corresponding class lookup scheme that returns
-your Element proxy classes for the elements that they create.  The
-<tt class="docutils literal"><span class="pre">ElementNamespaceClassLookup</span></tt> is generally a good match.</p>
-<p>You can use custom Element classes to quickly create XML fragments:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">hale</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span> <span class="k">pass</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">bopp</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span> <span class="k">pass</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">hale</span><span class="p">(</span> <span class="s">&quot;some &quot;</span><span class="p">,</span> <span class="n">honk</span><span class="p">(</span><span class="n">honking</span> <span class="o">=</span> <span class="s">&#39;true&#39;</span><span class="p">),</span> <span class="n">bopp</span><span class="p">,</span> <span class="s">&quot; text&quot;</span> <span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">))</span>
-<span class="go">&lt;hale&gt;some &lt;honk honking=&quot;true&quot;/&gt;&lt;bopp/&gt; text&lt;/hale&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="id1">
-<h2><a class="toc-backref" href="#id12">Implementing namespaces</a><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
-<p>lxml allows you to implement namespaces, in a rather literal sense.  After
-setting up the namespace class lookup mechanism as described above, you can
-build a new element namespace (or retrieve an existing one) by calling the
-<tt class="docutils literal"><span class="pre">get_namespace(uri)</span></tt> method of the lookup:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span> <span class="o">=</span> <span class="n">lookup</span><span class="o">.</span><span class="n">get_namespace</span><span class="p">(</span><span class="s">&#39;http://hui.de/honk&#39;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>and then register the new element type with that namespace, say, under the tag
-name <tt class="docutils literal"><span class="pre">honk</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="s">&#39;honk&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">honk</span>
-</pre></div>
-</div>
-<p>If you have many Element classes declared in one module, and they are
-all named like the elements they create, you can simply use
-<tt class="docutils literal"><span class="pre">namespace.update(vars())</span></tt> at the end of your module to declare them
-automatically.  The implementation is smart enough to ignore
-everything that is not an Element class.</p>
-<p>After this, you create and use your XML elements through the normal API of
-lxml:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&lt;honk xmlns=&quot;http://hui.de/honk&quot; honking=&quot;true&quot;/&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>The same works when creating elements by hand:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="s">&#39;{http://hui.de/honk}honk&#39;</span><span class="p">,</span>
-<span class="gp">... </span>                                  <span class="n">honking</span><span class="o">=</span><span class="s">&#39;true&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>Essentially, what this allows you to do, is to give Elements a custom API
-based on their namespace and tag name.</p>
-<p>A somewhat related topic are <a class="reference external" href="extensions.html">extension functions</a> which use a similar
-mechanism for registering extension functions in XPath and XSLT.</p>
-<p>In the setup example above, we associated the <tt class="docutils literal"><span class="pre">honk</span></tt> Element class
-only with the &#8216;honk&#8217; element.  If an XML tree contains different
-elements in the same namespace, they do not pick up the same
-implementation:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&lt;honk xmlns=&quot;http://hui.de/honk&quot; honking=&quot;true&quot;&gt;&lt;bla/&gt;&lt;/honk&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="gr">AttributeError</span>: <span class="n">&#39;lxml.etree._Element&#39; object has no attribute &#39;honking&#39;</span>
-</pre></div>
-</div>
-<p>You can therefore provide one implementation per element name in each
-namespace and have lxml select the right one on the fly.  If you want one
-element implementation per namespace (ignoring the element name) or prefer
-having a common class for most elements except a few, you can specify a
-default implementation for an entire namespace by registering that class with
-the empty element name (None).</p>
-<p>You may consider following an object oriented approach here.  If you build a
-class hierarchy of element classes, you can also implement a base class for a
-namespace that is used if no specific element class is provided.  Again, you
-can just pass None as an element name:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">HonkNSElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">def</span> <span class="nf">honk</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="s">&quot;HONK&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="bp">None</span><span class="p">]</span> <span class="o">=</span> <span class="n">HonkNSElement</span> <span class="c"># default Element for namespace</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">HonkElement</span><span class="p">(</span><span class="n">HonkNSElement</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">def</span> <span class="nf">honking</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;honking&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s">&#39;true&#39;</span>
-<span class="gp">... </span>   <span class="n">honking</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">honking</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespace</span><span class="p">[</span><span class="s">&#39;honk&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">HonkElement</span> <span class="c"># Element for specific tag</span>
-</pre></div>
-</div>
-<p>Now you can rely on lxml to always return objects of type HonkNSElement or its
-subclasses for elements of this namespace:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&lt;honk xmlns=&quot;http://hui.de/honk&quot; honking=&quot;true&quot;&gt;&lt;bla/&gt;&lt;/honk&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">honk_element</span><span class="p">))</span>
-<span class="go">&lt;class &#39;HonkElement&#39;&gt;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">honk_element</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
-<span class="go">&lt;class &#39;HonkNSElement&#39;&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="o">.</span><span class="n">honk</span><span class="p">())</span>
-<span class="go">HONK</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">honk</span><span class="p">())</span>
-<span class="go">HONK</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">honk_element</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">honking</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="gr">AttributeError</span>: <span class="n">&#39;HonkNSElement&#39; object has no attribute &#39;honking&#39;</span>
-</pre></div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Using custom Element classes in lxml</a><ul>
-<li><a class="reference internal" href="#background-on-element-proxies">Background on Element proxies</a></li>
-<li><a class="reference internal" href="#element-initialization">Element initialization</a></li>
-<li><a class="reference internal" href="#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a><ul>
-<li><a class="reference internal" href="#default-class-lookup">Default class lookup</a></li>
-<li><a class="reference internal" href="#namespace-class-lookup">Namespace class lookup</a></li>
-<li><a class="reference internal" href="#attribute-based-lookup">Attribute based lookup</a></li>
-<li><a class="reference internal" href="#custom-element-class-lookup">Custom element class lookup</a></li>
-<li><a class="reference internal" href="#tree-based-element-class-lookup-in-python">Tree based element class lookup in Python</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#generating-xml-with-custom-classes">Generating XML with custom classes</a></li>
-<li><a class="reference internal" href="#id1">Implementing namespaces</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/element_classes.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/elementsoup.html b/doc/sphinx/elementsoup.html
deleted file mode 100644 (file)
index 82cee04..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>BeautifulSoup Parser &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="beautifulsoup-parser">
-<h1><a class="toc-backref" href="#id1">BeautifulSoup Parser</a><a class="headerlink" href="#beautifulsoup-parser" title="Permalink to this headline">¶</a></h1>
-<p><a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> is a Python package that parses broken HTML, just like
-lxml supports it based on the parser of libxml2.  BeautifulSoup uses a
-different parsing approach.  It is not a real HTML parser but uses
-regular expressions to dive through tag soup.  It is therefore more
-forgiving in some cases and less good in others.  It is not uncommon
-that lxml/libxml2 parses and fixes broken HTML better, but
-BeautifulSoup has superiour <a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/documentation.html#Beautiful%20Soup%20Gives%20You%20Unicode%2C%20Dammit">support for encoding detection</a>.  It
-very much depends on the input which parser works better.</p>
-<p>To prevent users from having to choose their parser library in
-advance, lxml can interface to the parsing capabilities of
-BeautifulSoup through the <tt class="docutils literal"><span class="pre">lxml.html.soupparser</span></tt> module.  It
-provides three main functions: <tt class="docutils literal"><span class="pre">fromstring()</span></tt> and <tt class="docutils literal"><span class="pre">parse()</span></tt> to
-parse a string or file using BeautifulSoup into an <tt class="docutils literal"><span class="pre">lxml.html</span></tt>
-document, and <tt class="docutils literal"><span class="pre">convert_tree()</span></tt> to convert an existing BeautifulSoup
-tree into a list of top-level Elements.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#beautifulsoup-parser" id="id1">BeautifulSoup Parser</a><ul>
-<li><a class="reference internal" href="#parsing-with-the-soupparser" id="id2">Parsing with the soupparser</a></li>
-<li><a class="reference internal" href="#entity-handling" id="id3">Entity handling</a></li>
-<li><a class="reference internal" href="#using-soupparser-as-a-fallback" id="id4">Using soupparser as a fallback</a></li>
-<li><a class="reference internal" href="#using-only-the-encoding-detection" id="id5">Using only the encoding detection</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="parsing-with-the-soupparser">
-<h2><a class="toc-backref" href="#id2">Parsing with the soupparser</a><a class="headerlink" href="#parsing-with-the-soupparser" title="Permalink to this headline">¶</a></h2>
-<p>The functions <tt class="docutils literal"><span class="pre">fromstring()</span></tt> and <tt class="docutils literal"><span class="pre">parse()</span></tt> behave as known from
-ElementTree.  The first returns a root Element, the latter returns an
-ElementTree.</p>
-<p>There is also a legacy module called <tt class="docutils literal"><span class="pre">lxml.html.ElementSoup</span></tt>, which
-mimics the interface provided by ElementTree&#8217;s own <a class="reference external" href="http://effbot.org/zone/element-soup.htm">ElementSoup</a>
-module.  Note that the <tt class="docutils literal"><span class="pre">soupparser</span></tt> module was added in lxml 2.0.3.
-Previous versions of lxml 2.0.x only have the <tt class="docutils literal"><span class="pre">ElementSoup</span></tt> module.</p>
-<p>Here is a document full of tag soup, similar to, but not quite like, HTML:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s">&#39;&lt;meta&gt;&lt;head&gt;&lt;title&gt;Hello&lt;/head&gt;&lt;body onload=crash()&gt;Hi all&lt;p&gt;&#39;</span>
-</pre></div>
-</div>
-<p>all you need to do is pass it to the <tt class="docutils literal"><span class="pre">fromstring()</span></tt> function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html.soupparser</span> <span class="kn">import</span> <span class="n">fromstring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>To see what we have here, you can serialise it:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">tostring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">),</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;meta/&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">    &lt;title&gt;Hello&lt;/title&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body onload=&quot;crash()&quot;&gt;Hi all&lt;p/&gt;&lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>Not quite what you&#8217;d expect from an HTML page, but, well, it was broken
-already, right?  BeautifulSoup did its best, and so now it&#8217;s a tree.</p>
-<p>To control which Element implementation is used, you can pass a
-<tt class="docutils literal"><span class="pre">makeelement</span></tt> factory function to <tt class="docutils literal"><span class="pre">parse()</span></tt> and <tt class="docutils literal"><span class="pre">fromstring()</span></tt>.
-By default, this is based on the HTML parser defined in <tt class="docutils literal"><span class="pre">lxml.html</span></tt>.</p>
-<p>For a quick comparison, libxml2 2.6.32 parses the same tag soup as
-follows.  The main difference is that libxml2 tries harder to adhere
-to the structure of an HTML document and moves misplaced tags where
-they (likely) belong.  Note, however, that the result can vary between
-parser versions.</p>
-<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;html&gt;</span>
-  <span class="nt">&lt;head&gt;</span>
-    <span class="nt">&lt;meta/&gt;</span>
-    <span class="nt">&lt;title&gt;</span>Hello<span class="nt">&lt;/title&gt;</span>
-  <span class="nt">&lt;/head&gt;</span>
-  <span class="nt">&lt;body&gt;</span>
-    <span class="nt">&lt;p&gt;</span>Hi all<span class="nt">&lt;/p&gt;</span>
-    <span class="nt">&lt;p/&gt;</span>
-  <span class="nt">&lt;/body&gt;</span>
-<span class="nt">&lt;/html&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="entity-handling">
-<h2><a class="toc-backref" href="#id3">Entity handling</a><a class="headerlink" href="#entity-handling" title="Permalink to this headline">¶</a></h2>
-<p>By default, the BeautifulSoup parser also replaces the entities it
-finds by their character equivalent.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s">&#39;&lt;body&gt;&amp;copy;&amp;euro;&amp;#45;&amp;#245;&amp;#445;&lt;p&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;.//body&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span>
-<span class="go">u&#39;\xa9\u20ac-\xf5\u01bd&#39;</span>
-</pre></div>
-</div>
-<p>If you want them back on the way out, you can just serialise with the
-default encoding, which is &#8216;US-ASCII&#8217;.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">)</span>
-<span class="go">&#39;&lt;body&gt;&amp;#169;&amp;#8364;-&amp;#245;&amp;#445;&lt;p/&gt;&lt;/body&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">)</span>
-<span class="go">&#39;&lt;body&gt;&amp;#169;&amp;#8364;-&amp;#245;&amp;#445;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Any other encoding will output the respective byte sequences.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;utf-8&quot;</span><span class="p">)</span>
-<span class="go">&#39;&lt;body&gt;\xc2\xa9\xe2\x82\xac-\xc3\xb5\xc6\xbd&lt;p/&gt;&lt;/body&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;utf-8&quot;</span><span class="p">)</span>
-<span class="go">&#39;&lt;body&gt;\xc2\xa9\xe2\x82\xac-\xc3\xb5\xc6\xbd&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="go">u&#39;&lt;body&gt;\xa9\u20ac-\xf5\u01bd&lt;p/&gt;&lt;/body&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="go">u&#39;&lt;body&gt;\xa9\u20ac-\xf5\u01bd&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="using-soupparser-as-a-fallback">
-<h2><a class="toc-backref" href="#id4">Using soupparser as a fallback</a><a class="headerlink" href="#using-soupparser-as-a-fallback" title="Permalink to this headline">¶</a></h2>
-<p>The downside of using this parser is that it is <a class="reference external" href="http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/">much slower</a> than
-the HTML parser of lxml.  So if performance matters, you might want to
-consider using <tt class="docutils literal"><span class="pre">soupparser</span></tt> only as a fallback for certain cases.</p>
-<p>One common problem of lxml&#8217;s parser is that it might not get the
-encoding right in cases where the document contains a <tt class="docutils literal"><span class="pre">&lt;meta&gt;</span></tt> tag
-at the wrong place.  In this case, you can exploit the fact that lxml
-serialises much faster than most other HTML libraries for Python.
-Just serialise the document to unicode and if that gives you an
-exception, re-parse it with BeautifulSoup to see if that works
-better.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag_soup</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;meta http-equiv=&quot;Content-Type&quot;</span>
-<span class="gp">... </span><span class="s">      content=&quot;text/html;charset=utf-8&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;html&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;head&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;Hello W</span><span class="se">\xc3\xb6</span><span class="s">rld!&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/head&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;body&gt;Hi all&lt;/body&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/html&gt;&#39;&#39;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html.soupparser</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">try</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="n">ignore</span> <span class="o">=</span> <span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="gp">... </span><span class="k">except</span> <span class="ne">UnicodeDecodeError</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="n">root</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">soupparser</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="using-only-the-encoding-detection">
-<h2><a class="toc-backref" href="#id5">Using only the encoding detection</a><a class="headerlink" href="#using-only-the-encoding-detection" title="Permalink to this headline">¶</a></h2>
-<p>If you prefer a &#8216;real&#8217; (and fast) HTML parser instead of the regular
-expression based one in BeautifulSoup, you can still benefit from
-BeautifulSoup&#8217;s <a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/documentation.html#Beautiful%20Soup%20Gives%20You%20Unicode%2C%20Dammit">support for encoding detection</a> in the
-<tt class="docutils literal"><span class="pre">UnicodeDammit</span></tt> class.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">BeautifulSoup</span> <span class="kn">import</span> <span class="n">UnicodeDammit</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">decode_html</span><span class="p">(</span><span class="n">html_string</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">converted</span> <span class="o">=</span> <span class="n">UnicodeDammit</span><span class="p">(</span><span class="n">html_string</span><span class="p">,</span> <span class="n">isHTML</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="ow">not</span> <span class="n">converted</span><span class="o">.</span><span class="n">unicode</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">raise</span> <span class="ne">UnicodeDecodeError</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">&quot;Failed to detect encoding, tried [</span><span class="si">%s</span><span class="s">]&quot;</span><span class="p">,</span>
-<span class="gp">... </span>            <span class="s">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">converted</span><span class="o">.</span><span class="n">triedEncodings</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="c"># print converted.originalEncoding</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="n">converted</span><span class="o">.</span><span class="n">unicode</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">decode_html</span><span class="p">(</span><span class="n">tag_soup</span><span class="p">))</span>
-</pre></div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">BeautifulSoup Parser</a><ul>
-<li><a class="reference internal" href="#parsing-with-the-soupparser">Parsing with the soupparser</a></li>
-<li><a class="reference internal" href="#entity-handling">Entity handling</a></li>
-<li><a class="reference internal" href="#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li>
-<li><a class="reference internal" href="#using-only-the-encoding-detection">Using only the encoding detection</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/elementsoup.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/extensions.html b/doc/sphinx/extensions.html
deleted file mode 100644 (file)
index f8f0b78..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Python extensions for XPath and XSLT &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="python-extensions-for-xpath-and-xslt">
-<h1><a class="toc-backref" href="#id1">Python extensions for XPath and XSLT</a><a class="headerlink" href="#python-extensions-for-xpath-and-xslt" title="Permalink to this headline">¶</a></h1>
-<p>This document describes how to use Python extension functions in XPath
-and XSLT like this:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;xsl:value-of</span> <span class="na">select=</span><span class="s">&quot;f:myPythonFunction(.//sometag)&quot;</span> <span class="nt">/&gt;</span>
-</pre></div>
-</div>
-<p>and extension elements in XSLT as in the following example:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;xsl:template</span> <span class="na">match=</span><span class="s">&quot;*&quot;</span><span class="nt">&gt;</span>
-    <span class="nt">&lt;my:python-extension&gt;</span>
-        <span class="nt">&lt;some-content</span> <span class="nt">/&gt;</span>
-    <span class="nt">&lt;/my:python-extension&gt;</span>
-<span class="nt">&lt;/xsl:template&gt;</span>
-</pre></div>
-</div>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#python-extensions-for-xpath-and-xslt" id="id1">Python extensions for XPath and XSLT</a><ul>
-<li><a class="reference internal" href="#xpath-extension-functions" id="id2">XPath Extension functions</a><ul>
-<li><a class="reference internal" href="#the-functionnamespace" id="id3">The FunctionNamespace</a></li>
-<li><a class="reference internal" href="#global-prefix-assignment" id="id4">Global prefix assignment</a></li>
-<li><a class="reference internal" href="#the-xpath-context" id="id5">The XPath context</a></li>
-<li><a class="reference internal" href="#evaluators-and-xslt" id="id6">Evaluators and XSLT</a></li>
-<li><a class="reference internal" href="#evaluator-local-extensions" id="id7">Evaluator-local extensions</a></li>
-<li><a class="reference internal" href="#what-to-return-from-a-function" id="id8">What to return from a function</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xslt-extension-elements" id="id9">XSLT extension elements</a><ul>
-<li><a class="reference internal" href="#declaring-extension-elements" id="id10">Declaring extension elements</a></li>
-<li><a class="reference internal" href="#applying-xsl-templates" id="id11">Applying XSL templates</a></li>
-<li><a class="reference internal" href="#working-with-read-only-elements" id="id12">Working with read-only elements</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="xpath-extension-functions">
-<h2><a class="toc-backref" href="#id2">XPath Extension functions</a><a class="headerlink" href="#xpath-extension-functions" title="Permalink to this headline">¶</a></h2>
-<p>Here is how an extension function looks like.  As the first argument,
-it always receives a context object (see below).  The other arguments
-are provided by the respective call in the XPath expression, one in
-the following examples.  Any number of arguments is allowed:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">hello</span><span class="p">(</span><span class="n">dummy</span><span class="p">,</span> <span class="n">a</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="s">&quot;Hello </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">a</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">ola</span><span class="p">(</span><span class="n">dummy</span><span class="p">,</span> <span class="n">a</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="s">&quot;Ola </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">a</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">loadsofargs</span><span class="p">(</span><span class="n">dummy</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="s">&quot;Got </span><span class="si">%d</span><span class="s"> arguments.&quot;</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
-</pre></div>
-</div>
-<div class="section" id="the-functionnamespace">
-<h3><a class="toc-backref" href="#id3">The FunctionNamespace</a><a class="headerlink" href="#the-functionnamespace" title="Permalink to this headline">¶</a></h3>
-<p>In order to use a function in XPath or XSLT, it needs to have a
-(namespaced) name by which it can be called during evaluation.  This
-is done using the FunctionNamespace class.  For simplicity, we choose
-the empty namespace (None):</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;hello&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">hello</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;countargs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">loadsofargs</span>
-</pre></div>
-</div>
-<p>This registers the function <cite>hello</cite> with the name <cite>hello</cite> in the default
-namespace (None), and the function <cite>loadsofargs</cite> with the name <cite>countargs</cite>.
-Now we&#8217;re going to create a document that we can run XPath expressions
-against:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;Haegar&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Done. Now we can have XPath expressions call our new function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;hello(&#39;world&#39;)&quot;</span><span class="p">))</span>
-<span class="go">Hello world</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;hello(local-name(*))&#39;</span><span class="p">))</span>
-<span class="go">Hello b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;hello(string(b))&#39;</span><span class="p">))</span>
-<span class="go">Hello Haegar</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;countargs(., b, ./*)&#39;</span><span class="p">))</span>
-<span class="go">Got 3 arguments.</span>
-</pre></div>
-</div>
-<p>Note how we call both a Python function (<cite>hello</cite>) and an XPath built-in
-function (<cite>string</cite>) in exactly the same way.  Normally, however, you would
-want to separate the two in different namespaces.  The FunctionNamespace class
-allows you to do this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s">&#39;http://mydomain.org/myfunctions&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;hello&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">hello</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">prefixmap</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;f&#39;</span> <span class="p">:</span> <span class="s">&#39;http://mydomain.org/myfunctions&#39;</span><span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;f:hello(local-name(*))&#39;</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">prefixmap</span><span class="p">))</span>
-<span class="go">Hello b</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="global-prefix-assignment">
-<h3><a class="toc-backref" href="#id4">Global prefix assignment</a><a class="headerlink" href="#global-prefix-assignment" title="Permalink to this headline">¶</a></h3>
-<p>In the last example, you had to specify a prefix for the function namespace.
-If you always use the same prefix for a function namespace, you can also
-register it with the namespace:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s">&#39;http://mydomain.org/myother/functions&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="s">&#39;es&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;hello&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ola</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;es:hello(local-name(*))&#39;</span><span class="p">))</span>
-<span class="go">Ola b</span>
-</pre></div>
-</div>
-<p>This is a global assignment, so take care not to assign the same prefix to
-more than one namespace.  The resulting behaviour in that case is completely
-undefined.  It is always a good idea to consistently use the same meaningful
-prefix for each namespace throughout your application.</p>
-<p>The prefix assignment only works with functions and FunctionNamespace objects,
-not with the general Namespace object that registers element classes.  The
-reasoning is that elements in lxml do not care about prefixes anyway, so it
-would rather complicate things than be of any help.</p>
-</div>
-<div class="section" id="the-xpath-context">
-<h3><a class="toc-backref" href="#id5">The XPath context</a><a class="headerlink" href="#the-xpath-context" title="Permalink to this headline">¶</a></h3>
-<p>Functions get a context object as first parameter.  In lxml 1.x, this value
-was None, but since lxml 2.0 it provides two properties: <tt class="docutils literal"><span class="pre">eval_context</span></tt> and
-<tt class="docutils literal"><span class="pre">context_node</span></tt>.  The context node is the Element where the current function
-is called:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">print_tag</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">nodes</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">context_node</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="p">[</span> <span class="n">n</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">nodes</span> <span class="p">]))</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="s">&#39;http://mydomain.org/printtag&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="s">&quot;pt&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&quot;print_tag&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">print_tag</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ignore</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//*[pt:print_tag(.//*)]&quot;</span><span class="p">)</span>
-<span class="go">a: [&#39;b&#39;]</span>
-<span class="go">b: []</span>
-</pre></div>
-</div>
-<p>The <tt class="docutils literal"><span class="pre">eval_context</span></tt> is a dictionary that is local to the evaluation.  It
-allows functions to keep state:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">print_context</span><span class="p">(</span><span class="n">context</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">context</span><span class="o">.</span><span class="n">eval_context</span><span class="p">[</span><span class="n">context</span><span class="o">.</span><span class="n">context_node</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;done&quot;</span>
-<span class="gp">... </span>    <span class="n">entries</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">eval_context</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-<span class="gp">... </span>    <span class="n">entries</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&quot;print_context&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">print_context</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ignore</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//*[pt:print_context()]&quot;</span><span class="p">)</span>
-<span class="go">[(&#39;a&#39;, &#39;done&#39;)]</span>
-<span class="go">[(&#39;a&#39;, &#39;done&#39;), (&#39;b&#39;, &#39;done&#39;)]</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="evaluators-and-xslt">
-<h3><a class="toc-backref" href="#id6">Evaluators and XSLT</a><a class="headerlink" href="#evaluators-and-xslt" title="Permalink to this headline">¶</a></h3>
-<p>Extension functions work for all ways of evaluating XPath expressions and for
-XSL transformations:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;es:hello(local-name(/a))&#39;</span><span class="p">))</span>
-<span class="go">Ola a</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;f&#39;</span> <span class="p">:</span> <span class="s">&#39;http://mydomain.org/myfunctions&#39;</span><span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;f:hello(local-name(/a))&#39;</span><span class="p">))</span>
-<span class="go">Hello a</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xslt</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span>
-<span class="gp">... </span><span class="s">  &lt;stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">         xmlns=&quot;http://www.w3.org/1999/XSL/Transform&quot;</span>
-<span class="gp">... </span><span class="s">         xmlns:es=&quot;http://mydomain.org/myother/functions&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;output method=&quot;text&quot; encoding=&quot;ASCII&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;value-of select=&quot;es:hello(string(//b))&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/template&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/stylesheet&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">xslt</span><span class="p">(</span><span class="n">doc</span><span class="p">))</span>
-<span class="go">Ola Haegar</span>
-</pre></div>
-</div>
-<p>It is also possible to register namespaces with a single evaluator after its
-creation.  While the following example involves no functions, the idea should
-still be clear:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a xmlns=&quot;http://mydomain.org/myfunctions&quot; /&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">ns_doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">&#39;/a&#39;</span><span class="p">)</span>
-<span class="go">[]</span>
-</pre></div>
-</div>
-<p>This returns nothing, as we did not ask for the right namespace.  When we
-register the namespace with the evaluator, however, we can access it via a
-prefix:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="o">.</span><span class="n">register_namespace</span><span class="p">(</span><span class="s">&#39;foo&#39;</span><span class="p">,</span> <span class="s">&#39;http://mydomain.org/myfunctions&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">&#39;/foo:a&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;{http://mydomain.org/myfunctions}a&#39;</span>
-</pre></div>
-</div>
-<p>Note that this prefix mapping is only known to this evaluator, as opposed to
-the global mapping of the FunctionNamespace objects:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">e2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">ns_doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e2</span><span class="p">(</span><span class="s">&#39;/foo:a&#39;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Undefined namespace prefix</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="evaluator-local-extensions">
-<h3><a class="toc-backref" href="#id7">Evaluator-local extensions</a><a class="headerlink" href="#evaluator-local-extensions" title="Permalink to this headline">¶</a></h3>
-<p>Apart from the global registration of extension functions, there is also a way
-of making extensions known to a single Evaluator or XSLT.  All evaluators and
-the XSLT object accept a keyword argument <tt class="docutils literal"><span class="pre">extensions</span></tt> in their constructor.
-The value is a dictionary mapping (namespace, name) tuples to functions:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{(</span><span class="s">&#39;local-ns&#39;</span><span class="p">,</span> <span class="s">&#39;local-hello&#39;</span><span class="p">)</span> <span class="p">:</span> <span class="n">hello</span><span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;l&#39;</span> <span class="p">:</span> <span class="s">&#39;local-ns&#39;</span><span class="p">}</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;l:local-hello(string(b))&#39;</span><span class="p">))</span>
-<span class="go">Hello Haegar</span>
-</pre></div>
-</div>
-<p>For larger numbers of extension functions, you can define classes or modules
-and use the <tt class="docutils literal"><span class="pre">Extension</span></tt> helper:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExt</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">function1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">&#39;1&#39;</span><span class="o">+</span><span class="n">arg</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">function2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">&#39;2&#39;</span><span class="o">+</span><span class="n">arg</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">function3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">&#39;3&#39;</span><span class="o">+</span><span class="n">arg</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ext_module</span> <span class="o">=</span> <span class="n">MyExt</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;function1&#39;</span><span class="p">,</span> <span class="s">&#39;function2&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="s">&#39;local-ns&#39;</span> <span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;l:function1(string(b))&#39;</span><span class="p">))</span>
-<span class="go">1Haegar</span>
-</pre></div>
-</div>
-<p>The optional second argument to <tt class="docutils literal"><span class="pre">Extension</span></tt> can either be be a
-sequence of names to select from the module, a dictionary that
-explicitly maps function names to their XPath alter-ego or <tt class="xref docutils literal"><span class="pre">None</span></tt>
-(explicitly passed) to take all available functions under their
-original name (if their name does not start with &#8216;_&#8217;).</p>
-<p>The additional <tt class="docutils literal"><span class="pre">ns</span></tt> keyword argument takes a namespace URI or
-<tt class="xref docutils literal"><span class="pre">None</span></tt> (also if left out) for the default namespace.  The following
-examples will therefore all do the same thing:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;function1&#39;</span><span class="p">,</span> <span class="s">&#39;function2&#39;</span><span class="p">,</span> <span class="s">&#39;function3&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;function1(function2(function3(string(b))))&#39;</span><span class="p">))</span>
-<span class="go">123Haegar</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span> <span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="bp">None</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;function1(function2(function3(string(b))))&#39;</span><span class="p">))</span>
-<span class="go">123Haegar</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;function1(function2(function3(string(b))))&#39;</span><span class="p">))</span>
-<span class="go">123Haegar</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
-<span class="gp">... </span>    <span class="s">&#39;function1&#39;</span> <span class="p">:</span> <span class="s">&#39;function1&#39;</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="s">&#39;function2&#39;</span> <span class="p">:</span> <span class="s">&#39;function2&#39;</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="s">&#39;function3&#39;</span> <span class="p">:</span> <span class="s">&#39;function3&#39;</span>
-<span class="gp">... </span>    <span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">,</span> <span class="n">functions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="n">extensions</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;function1(function2(function3(string(b))))&#39;</span><span class="p">))</span>
-<span class="go">123Haegar</span>
-</pre></div>
-</div>
-<p>For convenience, you can also pass a sequence of extensions:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">extensions1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Extension</span><span class="p">(</span><span class="n">ext_module</span><span class="p">,</span> <span class="n">ns</span><span class="o">=</span><span class="s">&#39;local-ns&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">extensions</span><span class="o">=</span><span class="p">[</span><span class="n">extensions1</span><span class="p">,</span> <span class="n">extensions2</span><span class="p">],</span>
-<span class="gp">... </span>                         <span class="n">namespaces</span><span class="o">=</span><span class="n">namespaces</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">(</span><span class="s">&#39;function1(l:function2(function3(string(b))))&#39;</span><span class="p">))</span>
-<span class="go">123Haegar</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="what-to-return-from-a-function">
-<h3><a class="toc-backref" href="#id8">What to return from a function</a><a class="headerlink" href="#what-to-return-from-a-function" title="Permalink to this headline">¶</a></h3>
-<p>Extension functions can return any data type for which there is an XPath
-equivalent (see the documentation on <cite>XPath return values</cite>).  This includes
-numbers, boolean values, elements and lists of elements.  Note that integers
-will also be returned as floats:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">returnsFloat</span><span class="p">(</span><span class="n">_</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="mf">1.7</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">returnsInteger</span><span class="p">(</span><span class="n">_</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="mi">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">returnsBool</span><span class="p">(</span><span class="n">_</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="bp">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">returnFirstNode</span><span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">nodes</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="k">return</span> <span class="n">nodes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">FunctionNamespace</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;float&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnsFloat</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span>   <span class="o">=</span> <span class="n">returnsInteger</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;bool&#39;</span><span class="p">]</span>  <span class="o">=</span> <span class="n">returnsBool</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;first&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnFirstNode</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">&quot;float()&quot;</span><span class="p">)</span>
-<span class="go">1.7</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">&quot;int()&quot;</span><span class="p">)</span>
-<span class="go">1.0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">int</span><span class="p">(</span> <span class="n">e</span><span class="p">(</span><span class="s">&quot;int()&quot;</span><span class="p">)</span> <span class="p">)</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">&quot;bool()&quot;</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span><span class="p">(</span><span class="s">&quot;count(first(//b))&quot;</span><span class="p">)</span>
-<span class="go">1.0</span>
-</pre></div>
-</div>
-<p>As the last example shows, you can pass the results of functions back into
-the XPath expression.  Elements and sequences of elements are treated as
-XPath node-sets:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">returnsNodeSet</span><span class="p">(</span><span class="n">_</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">results1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&#39;results1&#39;</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="s">&#39;result&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Alpha&quot;</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="s">&#39;result&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Beta&quot;</span>
-<span class="gp">...</span>
-<span class="gp">... </span>    <span class="n">results2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&#39;results2&#39;</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s">&#39;result&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Gamma&quot;</span>
-<span class="gp">... </span>    <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s">&#39;result&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Delta&quot;</span>
-<span class="gp">...</span>
-<span class="gp">... </span>    <span class="n">results3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">results2</span><span class="p">,</span> <span class="s">&#39;subresult&#39;</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="p">[</span><span class="n">results1</span><span class="p">,</span> <span class="n">results2</span><span class="p">,</span> <span class="n">results3</span><span class="p">]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">[</span><span class="s">&#39;new-node-set&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">returnsNodeSet</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">e</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">e</span><span class="p">(</span><span class="s">&quot;new-node-set()/result&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">t</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">r</span> <span class="p">])</span>
-<span class="go">[&#39;Alpha&#39;, &#39;Beta&#39;, &#39;Gamma&#39;, &#39;Delta&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">e</span><span class="p">(</span><span class="s">&quot;new-node-set()&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">t</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">r</span> <span class="p">])</span>
-<span class="go">[&#39;results1&#39;, &#39;results2&#39;, &#39;subresult&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">r</span> <span class="p">])</span>
-<span class="go">[2, 3, 0]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;Alpha&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-<span class="go">b&#39;&lt;results1&gt;&lt;result&gt;Alpha&lt;/result&gt;&lt;result&gt;Beta&lt;/result&gt;&lt;/results1&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
-<span class="go">b&#39;&lt;results2&gt;&lt;result&gt;Gamma&lt;/result&gt;&lt;result&gt;Delta&lt;/result&gt;&lt;subresult/&gt;&lt;/results2&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
-<span class="go">b&#39;&lt;subresult/&gt;&#39;</span>
-</pre></div>
-</div>
-<p>The current implementation deep-copies newly created elements in node-sets.
-Only the elements and their children are passed on, no outlying parents or
-tail texts will be available in the result.  This also means that in the above
-example, the <cite>subresult</cite> elements in <cite>results2</cite> and <cite>results3</cite> are no longer
-identical within the node-set, they belong to independent trees:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">subresult - subresult</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
-<span class="go">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">results2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">())</span>
-<span class="go">None</span>
-</pre></div>
-</div>
-<p>This is an implementation detail that you should be aware of, but you should
-avoid relying on it in your code.  Note that elements taken from the source
-document (the most common case) do not suffer from this restriction.  They
-will always be passed unchanged.</p>
-</div>
-</div>
-<div class="section" id="xslt-extension-elements">
-<h2><a class="toc-backref" href="#id9">XSLT extension elements</a><a class="headerlink" href="#xslt-extension-elements" title="Permalink to this headline">¶</a></h2>
-<p>Just like the XPath extension functions described above, lxml supports
-custom extension <em>elements</em> in XSLT.  This means, you can write XSLT
-code like this:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;xsl:template</span> <span class="na">match=</span><span class="s">&quot;*&quot;</span><span class="nt">&gt;</span>
-    <span class="nt">&lt;my:python-extension&gt;</span>
-        <span class="nt">&lt;some-content</span> <span class="nt">/&gt;</span>
-    <span class="nt">&lt;/my:python-extension&gt;</span>
-<span class="nt">&lt;/xsl:template&gt;</span>
-</pre></div>
-</div>
-<p>And then you can implement the element in Python like this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExtElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XSLTExtension</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">self_node</span><span class="p">,</span> <span class="n">input_node</span><span class="p">,</span> <span class="n">output_parent</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;Hello from XSLT!&quot;</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;I did it!&quot;</span>
-<span class="gp">... </span>        <span class="c"># just copy own content input to output</span>
-<span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span> <span class="nb">list</span><span class="p">(</span><span class="n">self_node</span><span class="p">)</span> <span class="p">)</span>
-</pre></div>
-</div>
-<p>The arguments passed to the <tt class="docutils literal"><span class="pre">.execute()</span></tt> method  are</p>
-<dl class="docutils">
-<dt>context</dt>
-<dd>The opaque evaluation context.  You need this when calling back
-into the XSLT processor.</dd>
-<dt>self_node</dt>
-<dd>A read-only Element object that represents the extension element
-in the stylesheet.</dd>
-<dt>input_node</dt>
-<dd>The current context Element in the input document (also read-only).</dd>
-<dt>output_parent</dt>
-<dd>The current insertion point in the output document.  You can
-append elements or set the text value (not the tail).  Apart from
-that, the Element is read-only.</dd>
-</dl>
-<div class="section" id="declaring-extension-elements">
-<h3><a class="toc-backref" href="#id10">Declaring extension elements</a><a class="headerlink" href="#declaring-extension-elements" title="Permalink to this headline">¶</a></h3>
-<p>In XSLT, extension elements can be used like any other XSLT element,
-except that they must be declared as extensions using the standard
-XSLT <tt class="docutils literal"><span class="pre">extension-element-prefixes</span></tt> option:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_ext_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:my=&quot;testns&quot;</span>
-<span class="gp">... </span><span class="s">    extension-element-prefixes=&quot;my&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;my:ext&gt;&lt;child&gt;XYZ&lt;/child&gt;&lt;/my:ext&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;child&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;CHILD&gt;--xyz--&lt;/CHILD&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>To register the extension, add its namespace and name to the extension
-mapping of the XSLT object:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">my_extension</span> <span class="o">=</span> <span class="n">MyExtElement</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s">&#39;testns&#39;</span><span class="p">,</span> <span class="s">&#39;ext&#39;</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_ext_tree</span><span class="p">,</span> <span class="n">extensions</span> <span class="o">=</span> <span class="n">extensions</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Note how we pass an instance here, not the class of the extension.
-Now we can run the transformation and see how our extension is
-called:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;dummy/&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">Hello from XSLT!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;I did it!&lt;child&gt;XYZ&lt;/child&gt;&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="applying-xsl-templates">
-<h3><a class="toc-backref" href="#id11">Applying XSL templates</a><a class="headerlink" href="#applying-xsl-templates" title="Permalink to this headline">¶</a></h3>
-<p>XSLT extensions are a very powerful feature that allows you to
-interact directly with the XSLT processor.  You have full read-only
-access to the input document and the stylesheet, and you can even call
-back into the XSLT processor to process templates.  Here is an example
-that passes an Element into the <tt class="docutils literal"><span class="pre">.apply_templates()</span></tt> method of the
-<tt class="docutils literal"><span class="pre">XSLTExtension</span></tt> instance:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExtElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XSLTExtension</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">self_node</span><span class="p">,</span> <span class="n">input_node</span><span class="p">,</span> <span class="n">output_parent</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="n">child</span> <span class="o">=</span> <span class="n">self_node</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">... </span>        <span class="n">results</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">apply_templates</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">child</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">my_extension</span> <span class="o">=</span> <span class="n">MyExtElement</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s">&#39;testns&#39;</span><span class="p">,</span> <span class="s">&#39;ext&#39;</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_ext_tree</span><span class="p">,</span> <span class="n">extensions</span> <span class="o">=</span> <span class="n">extensions</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;dummy/&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;&lt;CHILD&gt;--xyz--&lt;/CHILD&gt;&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>Note how we applied the templates to a child of the extension element
-itself, i.e. to an element inside the stylesheet instead of an element
-of the input document.</p>
-</div>
-<div class="section" id="working-with-read-only-elements">
-<h3><a class="toc-backref" href="#id12">Working with read-only elements</a><a class="headerlink" href="#working-with-read-only-elements" title="Permalink to this headline">¶</a></h3>
-<p>There is one important thing to keep in mind: all Elements that the
-<tt class="docutils literal"><span class="pre">execute()</span></tt> method gets to deal with are read-only Elements, so you
-cannot modify them.  They also will not easily work in the API.  For
-example, you cannot pass them to the <tt class="docutils literal"><span class="pre">tostring()</span></tt> function or wrap
-them in an <tt class="docutils literal"><span class="pre">ElementTree</span></tt>.</p>
-<p>What you can do, however, is to deepcopy them to make them normal
-Elements, and then modify them using the normal etree API.  So this
-will work:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyExtElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XSLTExtension</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">self_node</span><span class="p">,</span> <span class="n">input_node</span><span class="p">,</span> <span class="n">output_parent</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="n">child</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">self_node</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-<span class="gp">... </span>        <span class="n">child</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;NEW TEXT&quot;</span>
-<span class="gp">... </span>        <span class="n">output_parent</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">my_extension</span> <span class="o">=</span> <span class="n">MyExtElement</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">extensions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">(</span><span class="s">&#39;testns&#39;</span><span class="p">,</span> <span class="s">&#39;ext&#39;</span><span class="p">)</span> <span class="p">:</span> <span class="n">my_extension</span> <span class="p">}</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_ext_tree</span><span class="p">,</span> <span class="n">extensions</span> <span class="o">=</span> <span class="n">extensions</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;dummy/&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;&lt;child&gt;NEW TEXT&lt;/child&gt;&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Python extensions for XPath and XSLT</a><ul>
-<li><a class="reference internal" href="#xpath-extension-functions">XPath Extension functions</a><ul>
-<li><a class="reference internal" href="#the-functionnamespace">The FunctionNamespace</a></li>
-<li><a class="reference internal" href="#global-prefix-assignment">Global prefix assignment</a></li>
-<li><a class="reference internal" href="#the-xpath-context">The XPath context</a></li>
-<li><a class="reference internal" href="#evaluators-and-xslt">Evaluators and XSLT</a></li>
-<li><a class="reference internal" href="#evaluator-local-extensions">Evaluator-local extensions</a></li>
-<li><a class="reference internal" href="#what-to-return-from-a-function">What to return from a function</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xslt-extension-elements">XSLT extension elements</a><ul>
-<li><a class="reference internal" href="#declaring-extension-elements">Declaring extension elements</a></li>
-<li><a class="reference internal" href="#applying-xsl-templates">Applying XSL templates</a></li>
-<li><a class="reference internal" href="#working-with-read-only-elements">Working with read-only elements</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/extensions.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/genindex.html b/doc/sphinx/genindex.html
deleted file mode 100644 (file)
index 7da6556..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Index &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="#" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-
-   <h1 id="index">Index</h1>
-
-   <div class="genindex-jumpbox">
-   <a href="#C"><strong>C</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#P"><strong>P</strong></a> 
-   </div>
-<h2 id="C">C</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
-    <dt><a href="s5/lxml-ep2008.html#center">center (built-in class)</a>, <a href="s5/lxml-ep2008.html#center">[1]</a></dt>
-</dl></td>
-</tr></table>
-
-<h2 id="E">E</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
-    <dt><a href="main.html#eyecatcher">eyecatcher (built-in class)</a></dt>
-</dl></td>
-</tr></table>
-
-<h2 id="I">I</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
-    <dt><a href="s5/lxml-ep2008.html#incremental">incremental (built-in class)</a>, <a href="s5/lxml-ep2008.html#incremental">[1]</a>, <a href="s5/lxml-ep2008.html#incremental">[2]</a>, <a href="s5/lxml-ep2008.html#incremental">[3]</a>, <a href="s5/lxml-ep2008.html#incremental">[4]</a></dt>
-</dl></td>
-</tr></table>
-
-<h2 id="P">P</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
-    <dt><a href="main.html#pagequote">pagequote (built-in class)</a></dt>
-</dl></td>
-</tr></table>
-
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-
-   
-
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="#" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/html/api/api-objects.html b/doc/sphinx/html/api/api-objects.html
deleted file mode 100644 (file)
index 7ffbe0b..0000000
+++ /dev/null
@@ -1,7373 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>&lt;no title&gt; &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../../',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../../_static/jquery.js"></script>
-    <script type="text/javascript" src="../../_static/underscore.js"></script>
-    <script type="text/javascript" src="../../_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="../../index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="../../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <p>lxml    lxml-module.html
-lxml.__package__        lxml-module.html#__package__
-lxml.ElementInclude     lxml.ElementInclude-module.html
-lxml.ElementInclude.include     lxml.ElementInclude-module.html#include
-lxml.ElementInclude.XINCLUDE_INCLUDE    lxml.ElementInclude-module.html#XINCLUDE_INCLUDE
-lxml.ElementInclude.XINCLUDE_FALLBACK   lxml.ElementInclude-module.html#XINCLUDE_FALLBACK
-lxml.ElementInclude._include    lxml.ElementInclude-module.html#_include
-lxml.ElementInclude.__package__ lxml.ElementInclude-module.html#__package__
-lxml.ElementInclude._lxml_default_loader        lxml.ElementInclude-module.html#_lxml_default_loader
-lxml.ElementInclude.XINCLUDE    lxml.ElementInclude-module.html#XINCLUDE
-lxml.ElementInclude._wrap_et_loader     lxml.ElementInclude-module.html#_wrap_et_loader
-lxml.ElementInclude.default_loader      lxml.ElementInclude-module.html#default_loader
-lxml.builder    lxml.builder-module.html
-lxml.builder.E  lxml.builder-module.html#E
-lxml.builder.__package__        lxml.builder-module.html#__package__
-lxml.builder.callable   lxml.builder-module.html#callable
-lxml.cssselect  lxml.cssselect-module.html
-lxml.cssselect._el_re   lxml.cssselect-module.html#_el_re
-lxml.cssselect.parse_attrib     lxml.cssselect-module.html#parse_attrib
-lxml.cssselect.parse_selector_group     lxml.cssselect-module.html#parse_selector_group
-lxml.cssselect.css_to_xpath     lxml.cssselect-module.html#css_to_xpath
-lxml.cssselect.parse_series     lxml.cssselect-module.html#parse_series
-lxml.cssselect.xpath_literal    lxml.cssselect-module.html#xpath_literal
-lxml.cssselect.__package__      lxml.cssselect-module.html#__package__
-lxml.cssselect.tokenize lxml.cssselect-module.html#tokenize
-lxml.cssselect._illegal_symbol  lxml.cssselect-module.html#_illegal_symbol
-lxml.cssselect.unescape_string_literal  lxml.cssselect-module.html#unescape_string_literal
-lxml.cssselect.parse_simple_selector    lxml.cssselect-module.html#parse_simple_selector
-lxml.cssselect._match_count_number      lxml.cssselect-module.html#_match_count_number
-lxml.cssselect.ns       lxml.cssselect-module.html#ns
-lxml.cssselect._id_re   lxml.cssselect-module.html#_id_re
-lxml.cssselect._match_whitespace        lxml.cssselect-module.html#_match_whitespace
-lxml.cssselect.is_int   lxml.cssselect-module.html#is_int
-lxml.cssselect.split_at_string_escapes  lxml.cssselect-module.html#split_at_string_escapes
-lxml.cssselect._replace_comments        lxml.cssselect-module.html#_replace_comments
-lxml.cssselect.tokenize_escaped_string  lxml.cssselect-module.html#tokenize_escaped_string
-lxml.cssselect._make_lower_case lxml.cssselect-module.html#_make_lower_case
-lxml.cssselect._class_re        lxml.cssselect-module.html#_class_re
-lxml.cssselect.split_at_single_quotes   lxml.cssselect-module.html#split_at_single_quotes
-lxml.cssselect.tokenize_symbol  lxml.cssselect-module.html#tokenize_symbol
-lxml.cssselect.parse    lxml.cssselect-module.html#parse
-lxml.cssselect.parse_selector   lxml.cssselect-module.html#parse_selector
-lxml.doctestcompare     lxml.doctestcompare-module.html
-lxml.doctestcompare._norm_whitespace_re lxml.doctestcompare-module.html#_norm_whitespace_re
-lxml.doctestcompare.norm_whitespace     lxml.doctestcompare-module.html#norm_whitespace
-lxml.doctestcompare.PARSE_XML   lxml.doctestcompare-module.html#PARSE_XML
-lxml.doctestcompare._IS_PYTHON_3        lxml.doctestcompare-module.html#_IS_PYTHON_3
-lxml.doctestcompare._find_doctest_frame lxml.doctestcompare-module.html#_find_doctest_frame
-lxml.doctestcompare.strip       lxml.doctestcompare-module.html#strip
-lxml.doctestcompare._repr_re    lxml.doctestcompare-module.html#_repr_re
-lxml.doctestcompare._html_parser        lxml.doctestcompare-module.html#_html_parser
-lxml.doctestcompare.NOPARSE_MARKUP      lxml.doctestcompare-module.html#NOPARSE_MARKUP
-lxml.doctestcompare.__package__ lxml.doctestcompare-module.html#__package__
-lxml.doctestcompare.html_fromstring     lxml.doctestcompare-module.html#html_fromstring
-lxml.doctestcompare.temp_install        lxml.doctestcompare-module.html#temp_install
-lxml.doctestcompare.__test__    lxml.doctestcompare-module.html#__test__
-lxml.doctestcompare.install     lxml.doctestcompare-module.html#install
-lxml.doctestcompare.PARSE_HTML  lxml.doctestcompare-module.html#PARSE_HTML
-lxml.etree      lxml.etree-module.html
-lxml.etree.XPathEvaluator       lxml.etree-module.html#XPathEvaluator
-lxml.etree.XMLID        lxml.etree-module.html#XMLID
-lxml.etree.LIBXSLT_VERSION      lxml.etree-module.html#LIBXSLT_VERSION
-lxml.etree.XMLDTDID     lxml.etree-module.html#XMLDTDID
-lxml.etree.ElementTree  lxml.etree-module.html#ElementTree
-lxml.etree.cleanup_namespaces   lxml.etree-module.html#cleanup_namespaces
-lxml.etree.set_default_parser   lxml.etree-module.html#set_default_parser
-lxml.etree.parseid      lxml.etree-module.html#parseid
-lxml.etree.tostring     lxml.etree-module.html#tostring
-lxml.etree.iselement    lxml.etree-module.html#iselement
-lxml.etree.FunctionNamespace    lxml.etree-module.html#FunctionNamespace
-lxml.etree.strip_attributes     lxml.etree-module.html#strip_attributes
-lxml.etree.Entity       lxml.etree-module.html#Entity
-lxml.etree.__package__  lxml.etree-module.html#__package__
-lxml.etree.strip_elements       lxml.etree-module.html#strip_elements
-lxml.etree.HTML lxml.etree-module.html#HTML
-lxml.etree.PI   lxml.etree-module.html#PI
-lxml.etree.Extension    lxml.etree-module.html#Extension
-lxml.etree.DEBUG        lxml.etree-module.html#DEBUG
-lxml.etree.Comment      lxml.etree-module.html#Comment
-lxml.etree.ProcessingInstruction        lxml.etree-module.html#ProcessingInstruction
-lxml.etree.LXML_VERSION lxml.etree-module.html#LXML_VERSION
-lxml.etree.LIBXML_COMPILED_VERSION      lxml.etree-module.html#LIBXML_COMPILED_VERSION
-lxml.etree.strip_tags   lxml.etree-module.html#strip_tags
-lxml.etree.tounicode    lxml.etree-module.html#tounicode
-lxml.etree.LIBXSLT_COMPILED_VERSION     lxml.etree-module.html#LIBXSLT_COMPILED_VERSION
-lxml.etree.dump lxml.etree-module.html#dump
-lxml.etree.__pyx_capi__ lxml.etree-module.html#__pyx_capi__
-lxml.etree.XML  lxml.etree-module.html#XML
-lxml.etree.use_global_python_log        lxml.etree-module.html#use_global_python_log
-lxml.etree.LIBXML_VERSION       lxml.etree-module.html#LIBXML_VERSION
-lxml.etree.tostringlist lxml.etree-module.html#tostringlist
-lxml.etree.SubElement   lxml.etree-module.html#SubElement
-lxml.etree.get_default_parser   lxml.etree-module.html#get_default_parser
-lxml.etree.register_namespace   lxml.etree-module.html#register_namespace
-lxml.etree.parse        lxml.etree-module.html#parse
-lxml.etree.set_element_class_lookup     lxml.etree-module.html#set_element_class_lookup
-lxml.etree.clear_error_log      lxml.etree-module.html#clear_error_log
-lxml.etree.fromstringlist       lxml.etree-module.html#fromstringlist
-lxml.etree.Element      lxml.etree-module.html#Element
-lxml.etree.fromstring   lxml.etree-module.html#fromstring
-lxml.etree.__test__     lxml.etree-module.html#__test__
-lxml.html       lxml.html-module.html
-lxml.html._css_import_re        lxml.html-module.html#_css_import_re
-lxml.html._css_url_re   lxml.html-module.html#_css_url_re
-lxml.html.parse lxml.html-module.html#parse
-lxml.html._nons lxml.html-module.html#_nons
-lxml.html._forms_xpath  lxml.html-module.html#_forms_xpath
-lxml.html._contains_block_level_tag     lxml.html-module.html#_contains_block_level_tag
-lxml.html._element_name lxml.html-module.html#_element_name
-lxml.html._archive_re   lxml.html-module.html#_archive_re
-lxml.html.iterlinks     lxml.html-module.html#iterlinks
-lxml.html.__package__   lxml.html-module.html#__package__
-lxml.html._collect_string_content       lxml.html-module.html#_collect_string_content
-lxml.html.submit_form   lxml.html-module.html#submit_form
-lxml.html.xhtml_parser  lxml.html-module.html#xhtml_parser
-lxml.html.XHTML_NAMESPACE       lxml.html-module.html#XHTML_NAMESPACE
-lxml.html._id_xpath     lxml.html-module.html#_id_xpath
-lxml.html.make_links_absolute   lxml.html-module.html#make_links_absolute
-lxml.html.resolve_base_href     lxml.html-module.html#resolve_base_href
-lxml.html.__bytes_replace_meta_content_type     lxml.html-module.html#__bytes_replace_meta_content_type
-lxml.html.rewrite_links lxml.html-module.html#rewrite_links
-lxml.html.fragment_fromstring   lxml.html-module.html#fragment_fromstring
-lxml.html.html_to_xhtml lxml.html-module.html#html_to_xhtml
-lxml.html._unquote_match        lxml.html-module.html#_unquote_match
-lxml.html.fragments_fromstring  lxml.html-module.html#fragments_fromstring
-lxml.html.__str_replace_meta_content_type       lxml.html-module.html#__str_replace_meta_content_type
-lxml.html._options_xpath        lxml.html-module.html#_options_xpath
-lxml.html.document_fromstring   lxml.html-module.html#document_fromstring
-lxml.html.Element       lxml.html-module.html#Element
-lxml.html.__fix_docstring       lxml.html-module.html#__fix_docstring
-lxml.html._class_xpath  lxml.html-module.html#_class_xpath
-lxml.html._rel_links_xpath      lxml.html-module.html#_rel_links_xpath
-lxml.html.tostring      lxml.html-module.html#tostring
-lxml.html.find_class    lxml.html-module.html#find_class
-lxml.html.find_rel_links        lxml.html-module.html#find_rel_links
-lxml.html.html_parser   lxml.html-module.html#html_parser
-lxml.html.open_in_browser       lxml.html-module.html#open_in_browser
-lxml.html.fromstring    lxml.html-module.html#fromstring
-lxml.html._label_xpath  lxml.html-module.html#_label_xpath
-lxml.html._transform_result     lxml.html-module.html#_transform_result
-lxml.html.open_http_urllib      lxml.html-module.html#open_http_urllib
-lxml.html.xhtml_to_html lxml.html-module.html#xhtml_to_html
-lxml.html.ElementSoup   lxml.html.ElementSoup-module.html
-lxml.html.ElementSoup.parse     lxml.html.ElementSoup-module.html#parse
-lxml.html.ElementSoup._parse    lxml.html.soupparser-module.html#parse
-lxml.html.ElementSoup.convert_tree      lxml.html.ElementSoup-module.html#convert_tree
-lxml.html.ElementSoup.__doc__   lxml.html.ElementSoup-module.html#__doc__
-lxml.html.ElementSoup.__package__       lxml.html.ElementSoup-module.html#__package__
-lxml.html.builder       lxml.html.builder-module.html
-lxml.html.builder.BLOCKQUOTE    lxml.html.builder-module.html#BLOCKQUOTE
-lxml.html.builder.OBJECT        lxml.html.builder-module.html#OBJECT
-lxml.html.builder.LINK  lxml.html.builder-module.html#LINK
-lxml.html.builder.BR    lxml.html.builder-module.html#BR
-lxml.html.builder.OPTGROUP      lxml.html.builder-module.html#OPTGROUP
-lxml.html.builder.__package__   lxml.html.builder-module.html#__package__
-lxml.html.builder.SUB   lxml.html.builder-module.html#SUB
-lxml.html.builder.PRE   lxml.html.builder-module.html#PRE
-lxml.html.builder.FRAME lxml.html.builder-module.html#FRAME
-lxml.html.builder.BODY  lxml.html.builder-module.html#BODY
-lxml.html.builder.TH    lxml.html.builder-module.html#TH
-lxml.html.builder.P     lxml.html.builder-module.html#P
-lxml.html.builder.BASE  lxml.html.builder-module.html#BASE
-lxml.html.builder.TFOOT lxml.html.builder-module.html#TFOOT
-lxml.html.builder.VAR   lxml.html.builder-module.html#VAR
-lxml.html.builder.MAP   lxml.html.builder-module.html#MAP
-lxml.html.builder.OL    lxml.html.builder-module.html#OL
-lxml.html.builder.TEXTAREA      lxml.html.builder-module.html#TEXTAREA
-lxml.html.builder.ACRONYM       lxml.html.builder-module.html#ACRONYM
-lxml.html.builder.MENU  lxml.html.builder-module.html#MENU
-lxml.html.builder.DT    lxml.html.builder-module.html#DT
-lxml.html.builder.ADDRESS       lxml.html.builder-module.html#ADDRESS
-lxml.html.builder.CODE  lxml.html.builder-module.html#CODE
-lxml.html.builder.HR    lxml.html.builder-module.html#HR
-lxml.html.builder.ISINDEX       lxml.html.builder-module.html#ISINDEX
-lxml.html.builder.HEAD  lxml.html.builder-module.html#HEAD
-lxml.html.builder.LABEL lxml.html.builder-module.html#LABEL
-lxml.html.builder.META  lxml.html.builder-module.html#META
-lxml.html.builder.DEL   lxml.html.builder-module.html#DEL
-lxml.html.builder.FONT  lxml.html.builder-module.html#FONT
-lxml.html.builder.SELECT        lxml.html.builder-module.html#SELECT
-lxml.html.builder.NOFRAMES      lxml.html.builder-module.html#NOFRAMES
-lxml.html.builder.CENTER        lxml.html.builder-module.html#CENTER
-lxml.html.builder.KBD   lxml.html.builder-module.html#KBD
-lxml.html.builder.HTML  lxml.html.builder-module.html#HTML
-lxml.html.builder.EM    lxml.html.builder-module.html#EM
-lxml.html.builder.FRAMESET      lxml.html.builder-module.html#FRAMESET
-lxml.html.builder.FIELDSET      lxml.html.builder-module.html#FIELDSET
-lxml.html.builder.FOR   lxml.html.builder-module.html#FOR
-lxml.html.builder.BASEFONT      lxml.html.builder-module.html#BASEFONT
-lxml.html.builder.BDO   lxml.html.builder-module.html#BDO
-lxml.html.builder.PARAM lxml.html.builder-module.html#PARAM
-lxml.html.builder.S     lxml.html.builder-module.html#S
-lxml.html.builder.INPUT lxml.html.builder-module.html#INPUT
-lxml.html.builder.H2    lxml.html.builder-module.html#H2
-lxml.html.builder.H3    lxml.html.builder-module.html#H3
-lxml.html.builder.BUTTON        lxml.html.builder-module.html#BUTTON
-lxml.html.builder.SCRIPT        lxml.html.builder-module.html#SCRIPT
-lxml.html.builder.H6    lxml.html.builder-module.html#H6
-lxml.html.builder.H4    lxml.html.builder-module.html#H4
-lxml.html.builder.INS   lxml.html.builder-module.html#INS
-lxml.html.builder.UL    lxml.html.builder-module.html#UL
-lxml.html.builder.STRIKE        lxml.html.builder-module.html#STRIKE
-lxml.html.builder.OPTION        lxml.html.builder-module.html#OPTION
-lxml.html.builder.TITLE lxml.html.builder-module.html#TITLE
-lxml.html.builder.SUP   lxml.html.builder-module.html#SUP
-lxml.html.builder.SMALL lxml.html.builder-module.html#SMALL
-lxml.html.builder.STRONG        lxml.html.builder-module.html#STRONG
-lxml.html.builder.COL   lxml.html.builder-module.html#COL
-lxml.html.builder.AREA  lxml.html.builder-module.html#AREA
-lxml.html.builder.APPLET        lxml.html.builder-module.html#APPLET
-lxml.html.builder.TABLE lxml.html.builder-module.html#TABLE
-lxml.html.builder.B     lxml.html.builder-module.html#B
-lxml.html.builder.IMG   lxml.html.builder-module.html#IMG
-lxml.html.builder.DFN   lxml.html.builder-module.html#DFN
-lxml.html.builder.SPAN  lxml.html.builder-module.html#SPAN
-lxml.html.builder.DL    lxml.html.builder-module.html#DL
-lxml.html.builder.H1    lxml.html.builder-module.html#H1
-lxml.html.builder.DD    lxml.html.builder-module.html#DD
-lxml.html.builder.TBODY lxml.html.builder-module.html#TBODY
-lxml.html.builder.DIV   lxml.html.builder-module.html#DIV
-lxml.html.builder.H5    lxml.html.builder-module.html#H5
-lxml.html.builder.LEGEND        lxml.html.builder-module.html#LEGEND
-lxml.html.builder.DIR   lxml.html.builder-module.html#DIR
-lxml.html.builder.NOSCRIPT      lxml.html.builder-module.html#NOSCRIPT
-lxml.html.builder.COLGROUP      lxml.html.builder-module.html#COLGROUP
-lxml.html.builder.BIG   lxml.html.builder-module.html#BIG
-lxml.html.builder.TT    lxml.html.builder-module.html#TT
-lxml.html.builder.TR    lxml.html.builder-module.html#TR
-lxml.html.builder.LI    lxml.html.builder-module.html#LI
-lxml.html.builder.IFRAME        lxml.html.builder-module.html#IFRAME
-lxml.html.builder.TD    lxml.html.builder-module.html#TD
-lxml.html.builder.CLASS lxml.html.builder-module.html#CLASS
-lxml.html.builder.A     lxml.html.builder-module.html#A
-lxml.html.builder.STYLE lxml.html.builder-module.html#STYLE
-lxml.html.builder.E     lxml.html.builder-module.html#E
-lxml.html.builder.FORM  lxml.html.builder-module.html#FORM
-lxml.html.builder.I     lxml.html.builder-module.html#I
-lxml.html.builder.Q     lxml.html.builder-module.html#Q
-lxml.html.builder.CAPTION       lxml.html.builder-module.html#CAPTION
-lxml.html.builder.U     lxml.html.builder-module.html#U
-lxml.html.builder.ABBR  lxml.html.builder-module.html#ABBR
-lxml.html.builder.THEAD lxml.html.builder-module.html#THEAD
-lxml.html.builder.SAMP  lxml.html.builder-module.html#SAMP
-lxml.html.builder.CITE  lxml.html.builder-module.html#CITE
-lxml.html.clean lxml.html.clean-module.html
-lxml.html.clean._css_import_re  lxml.html.clean-module.html#_css_import_re
-lxml.html.clean.word_break_html lxml.html.clean-module.html#word_break_html
-lxml.html.clean._link_regexes   lxml.html.clean-module.html#_link_regexes
-lxml.html.clean._substitute_whitespace  lxml.html.clean-module.html#_substitute_whitespace
-lxml.html.clean._nons   lxml.html-module.html#_nons
-lxml.html.clean._find_styled_elements   lxml.html.clean-module.html#_find_styled_elements
-lxml.html.clean._break_text     lxml.html.clean-module.html#_break_text
-lxml.html.clean._avoid_classes  lxml.html.clean-module.html#_avoid_classes
-lxml.html.clean._javascript_scheme_re   lxml.html.clean-module.html#_javascript_scheme_re
-lxml.html.clean.__package__     lxml.html.clean-module.html#__package__
-lxml.html.clean._avoid_elements lxml.html.clean-module.html#_avoid_elements
-lxml.html.clean._find_external_links    lxml.html.clean-module.html#_find_external_links
-lxml.html.clean._insert_break   lxml.html.clean-module.html#_insert_break
-lxml.html.clean._transform_result       lxml.html-module.html#_transform_result
-lxml.html.clean.autolink        lxml.html.clean-module.html#autolink
-lxml.html.clean._conditional_comment_re lxml.html.clean-module.html#_conditional_comment_re
-lxml.html.clean._link_text      lxml.html.clean-module.html#_link_text
-lxml.html.clean._avoid_hosts    lxml.html.clean-module.html#_avoid_hosts
-lxml.html.clean.autolink_html   lxml.html.clean-module.html#autolink_html
-lxml.html.clean.tostring        lxml.html-module.html#tostring
-lxml.html.clean.clean_html      lxml.html.clean-module.html#clean_html
-lxml.html.clean._avoid_word_break_classes       lxml.html.clean-module.html#_avoid_word_break_classes
-lxml.html.clean._css_javascript_re      lxml.html.clean-module.html#_css_javascript_re
-lxml.html.clean.fromstring      lxml.html-module.html#fromstring
-lxml.html.clean.word_break      lxml.html.clean-module.html#word_break
-lxml.html.clean._break_prefer_re        lxml.html.clean-module.html#_break_prefer_re
-lxml.html.clean.clean   lxml.html.clean-module.html#clean
-lxml.html.clean._avoid_word_break_elements      lxml.html.clean-module.html#_avoid_word_break_elements
-lxml.html.defs  lxml.html.defs-module.html
-lxml.html.defs.block_tags       lxml.html.defs-module.html#block_tags
-lxml.html.defs.link_attrs       lxml.html.defs-module.html#link_attrs
-lxml.html.defs.tags     lxml.html.defs-module.html#tags
-lxml.html.defs.font_style_tags  lxml.html.defs-module.html#font_style_tags
-lxml.html.defs.event_attrs      lxml.html.defs-module.html#event_attrs
-lxml.html.defs.safe_attrs       lxml.html.defs-module.html#safe_attrs
-lxml.html.defs.table_tags       lxml.html.defs-module.html#table_tags
-lxml.html.defs.__package__      lxml.html.defs-module.html#__package__
-lxml.html.defs.top_level_tags   lxml.html.defs-module.html#top_level_tags
-lxml.html.defs.form_tags        lxml.html.defs-module.html#form_tags
-lxml.html.defs.phrase_tags      lxml.html.defs-module.html#phrase_tags
-lxml.html.defs.deprecated_tags  lxml.html.defs-module.html#deprecated_tags
-lxml.html.defs.head_tags        lxml.html.defs-module.html#head_tags
-lxml.html.defs.list_tags        lxml.html.defs-module.html#list_tags
-lxml.html.defs.special_inline_tags      lxml.html.defs-module.html#special_inline_tags
-lxml.html.defs.empty_tags       lxml.html.defs-module.html#empty_tags
-lxml.html.defs.general_block_tags       lxml.html.defs-module.html#general_block_tags
-lxml.html.defs.frame_tags       lxml.html.defs-module.html#frame_tags
-lxml.html.defs.nonstandard_tags lxml.html.defs-module.html#nonstandard_tags
-lxml.html.diff  lxml.html.diff-module.html
-lxml.html.diff._move_el_inside_block    lxml.html.diff-module.html#_move_el_inside_block
-lxml.html.diff.compress_merge_back      lxml.html.diff-module.html#compress_merge_back
-lxml.html.diff.serialize_html_fragment  lxml.html.diff-module.html#serialize_html_fragment
-lxml.html.diff.split_delete     lxml.html.diff-module.html#split_delete
-lxml.html.diff.split_unbalanced lxml.html.diff-module.html#split_unbalanced
-lxml.html.diff.is_word  lxml.html.diff-module.html#is_word
-lxml.html.diff._contains_block_level_tag        lxml.html.diff-module.html#_contains_block_level_tag
-lxml.html.diff.empty_tags       lxml.html.diff-module.html#empty_tags
-lxml.html.diff.is_start_tag     lxml.html.diff-module.html#is_start_tag
-lxml.html.diff.end_tag  lxml.html.diff-module.html#end_tag
-lxml.html.diff.fixup_chunks     lxml.html.diff-module.html#fixup_chunks
-lxml.html.diff.html_annotate    lxml.html.diff-module.html#html_annotate
-lxml.html.diff.cleanup_delete   lxml.html.diff-module.html#cleanup_delete
-lxml.html.diff.htmldiff lxml.html.diff-module.html#htmldiff
-lxml.html.diff._fixup_ins_del_tags      lxml.html.diff-module.html#_fixup_ins_del_tags
-lxml.html.diff.htmldiff_tokens  lxml.html.diff-module.html#htmldiff_tokens
-lxml.html.diff.expand_tokens    lxml.html.diff-module.html#expand_tokens
-lxml.html.diff.__package__      lxml.html.diff-module.html#__package__
-lxml.html.diff.block_level_tags lxml.html.diff-module.html#block_level_tags
-lxml.html.diff.compress_tokens  lxml.html.diff-module.html#compress_tokens
-lxml.html.diff.html_annotate_merge_annotations  lxml.html.diff-module.html#html_annotate_merge_annotations
-lxml.html.diff._merge_element_contents  lxml.html.diff-module.html#_merge_element_contents
-lxml.html.diff.split_words      lxml.html.diff-module.html#split_words
-lxml.html.diff.block_level_container_tags       lxml.html.diff-module.html#block_level_container_tags
-lxml.html.diff.flatten_el       lxml.html.diff-module.html#flatten_el
-lxml.html.diff.markup_serialize_tokens  lxml.html.diff-module.html#markup_serialize_tokens
-lxml.html.diff._body_re lxml.html.diff-module.html#_body_re
-lxml.html.diff.locate_unbalanced_start  lxml.html.diff-module.html#locate_unbalanced_start
-lxml.html.diff.fragment_fromstring      lxml.html-module.html#fragment_fromstring
-lxml.html.diff.fixup_ins_del_tags       lxml.html.diff-module.html#fixup_ins_del_tags
-lxml.html.diff.default_markup   lxml.html.diff-module.html#default_markup
-lxml.html.diff.tokenize lxml.html.diff-module.html#tokenize
-lxml.html.diff.cleanup_html     lxml.html.diff-module.html#cleanup_html
-lxml.html.diff.tokenize_annotated       lxml.html.diff-module.html#tokenize_annotated
-lxml.html.diff.parse_html       lxml.html.diff-module.html#parse_html
-lxml.html.diff.merge_insert     lxml.html.diff-module.html#merge_insert
-lxml.html.diff.merge_delete     lxml.html.diff-module.html#merge_delete
-lxml.html.diff._ins_del_re      lxml.html.diff-module.html#_ins_del_re
-lxml.html.diff.locate_unbalanced_end    lxml.html.diff-module.html#locate_unbalanced_end
-lxml.html.diff.start_tag        lxml.html.diff-module.html#start_tag
-lxml.html.diff._end_body_re     lxml.html.diff-module.html#_end_body_re
-lxml.html.diff.is_end_tag       lxml.html.diff-module.html#is_end_tag
-lxml.html.diff.copy_annotations lxml.html.diff-module.html#copy_annotations
-lxml.html.diff.end_whitespace_re        lxml.html.diff-module.html#end_whitespace_re
-lxml.html.diff.start_whitespace_re      lxml.html.diff-module.html#start_whitespace_re
-lxml.html.formfill      lxml.html.formfill-module.html
-lxml.html.formfill._fill_single lxml.html.formfill-module.html#_fill_single
-lxml.html.formfill._input_xpath lxml.html.formfill-module.html#_input_xpath
-lxml.html.formfill._nons        lxml.html-module.html#_nons
-lxml.html.formfill._insert_error        lxml.html.formfill-module.html#_insert_error
-lxml.html.formfill._fill_form   lxml.html.formfill-module.html#_fill_form
-lxml.html.formfill._check       lxml.html.formfill-module.html#_check
-lxml.html.formfill._takes_multiple      lxml.html.formfill-module.html#_takes_multiple
-lxml.html.formfill.__package__  lxml.html.formfill-module.html#__package__
-lxml.html.formfill.insert_errors_html   lxml.html.formfill-module.html#insert_errors_html
-lxml.html.formfill._form_name_xpath     lxml.html.formfill-module.html#_form_name_xpath
-lxml.html.formfill._name_xpath  lxml.html.formfill-module.html#_name_xpath
-lxml.html.formfill.fill_form_html       lxml.html.formfill-module.html#fill_form_html
-lxml.html.formfill._add_class   lxml.html.formfill-module.html#_add_class
-lxml.html.formfill._transform_result    lxml.html-module.html#_transform_result
-lxml.html.formfill.default_error_creator        lxml.html.formfill-module.html#default_error_creator
-lxml.html.formfill._find_elements_for_name      lxml.html.formfill-module.html#_find_elements_for_name
-lxml.html.formfill._label_for_xpath     lxml.html.formfill-module.html#_label_for_xpath
-lxml.html.formfill._fill_multiple       lxml.html.formfill-module.html#_fill_multiple
-lxml.html.formfill._select      lxml.html.formfill-module.html#_select
-lxml.html.formfill.fill_form    lxml.html.formfill-module.html#fill_form
-lxml.html.formfill.insert_errors        lxml.html.formfill-module.html#insert_errors
-lxml.html.formfill._find_form_ids       lxml.html.formfill-module.html#_find_form_ids
-lxml.html.formfill.fromstring   lxml.html-module.html#fromstring
-lxml.html.formfill._tag lxml.html.formfill-module.html#_tag
-lxml.html.formfill._find_form   lxml.html.formfill-module.html#_find_form
-lxml.html.formfill.tostring     lxml.html-module.html#tostring
-lxml.html.html5parser   lxml.html.html5parser-module.html
-lxml.html.html5parser.fragment_fromstring       lxml.html.html5parser-module.html#fragment_fromstring
-lxml.html.html5parser.xhtml_parser      lxml.html.html5parser-module.html#xhtml_parser
-lxml.html.html5parser.fragments_fromstring      lxml.html.html5parser-module.html#fragments_fromstring
-lxml.html.html5parser.__package__       lxml.html.html5parser-module.html#__package__
-lxml.html.html5parser.parse     lxml.html.html5parser-module.html#parse
-lxml.html.html5parser.html_parser       lxml.html.html5parser-module.html#html_parser
-lxml.html.html5parser.document_fromstring       lxml.html.html5parser-module.html#document_fromstring
-lxml.html.html5parser._find_tag lxml.html.html5parser-module.html#_find_tag
-lxml.html.html5parser.fromstring        lxml.html.html5parser-module.html#fromstring
-lxml.html.html5parser._contains_block_level_tag lxml.html-module.html#_contains_block_level_tag
-lxml.html.soupparser    lxml.html.soupparser-module.html
-lxml.html.soupparser._convert_tree      lxml.html.soupparser-module.html#_convert_tree
-lxml.html.soupparser._convert_children  lxml.html.soupparser-module.html#_convert_children
-lxml.html.soupparser.__package__        lxml.html.soupparser-module.html#__package__
-lxml.html.soupparser.parse      lxml.html.soupparser-module.html#parse
-lxml.html.soupparser.convert_tree       lxml.html.soupparser-module.html#convert_tree
-lxml.html.soupparser.__doc__    lxml.html.soupparser-module.html#__doc__
-lxml.html.soupparser.fromstring lxml.html.soupparser-module.html#fromstring
-lxml.html.soupparser.unescape   lxml.html.soupparser-module.html#unescape
-lxml.html.soupparser._parse     lxml.html.soupparser-module.html#_parse
-lxml.html.soupparser._append_text       lxml.html.soupparser-module.html#_append_text
-lxml.html.soupparser.handle_entities    lxml.html.soupparser-module.html#handle_entities
-lxml.html.usedoctest    lxml.html.usedoctest-module.html
-lxml.isoschematron      lxml.isoschematron-module.html
-lxml.isoschematron.SVRL_NS      lxml.isoschematron-module.html#SVRL_NS
-lxml.isoschematron.iso_svrl_for_xslt1   lxml.isoschematron-module.html#iso_svrl_for_xslt1
-lxml.isoschematron._xml_schema_root     lxml.isoschematron-module.html#_xml_schema_root
-lxml.isoschematron._stylesheet_param_dict       lxml.isoschematron-module.html#_stylesheet_param_dict
-lxml.isoschematron.svrl_validation_errors       lxml.isoschematron-module.html#svrl_validation_errors
-lxml.isoschematron.iso_dsdl_include     lxml.isoschematron-module.html#iso_dsdl_include
-lxml.isoschematron.extract_rng  lxml.isoschematron-module.html#extract_rng
-lxml.isoschematron._resources_dir       lxml.isoschematron-module.html#_resources_dir
-lxml.isoschematron.__package__  lxml.isoschematron-module.html#__package__
-lxml.isoschematron.SCHEMATRON_NS        lxml.isoschematron-module.html#SCHEMATRON_NS
-lxml.isoschematron._schematron_root     lxml.isoschematron-module.html#_schematron_root
-lxml.isoschematron.extract_xsd  lxml.isoschematron-module.html#extract_xsd
-lxml.isoschematron.RELAXNG_NS   lxml.isoschematron-module.html#RELAXNG_NS
-lxml.isoschematron.XML_SCHEMA_NS        lxml.isoschematron-module.html#XML_SCHEMA_NS
-lxml.isoschematron.schematron_schema_valid      lxml.isoschematron-module.html#schematron_schema_valid
-lxml.isoschematron.stylesheet_params    lxml.isoschematron-module.html#stylesheet_params
-lxml.isoschematron.iso_abstract_expand  lxml.isoschematron-module.html#iso_abstract_expand
-lxml.objectify  lxml.objectify-module.html
-lxml.objectify.enable_recursive_str     lxml.objectify-module.html#enable_recursive_str
-lxml.objectify.dump     lxml.objectify-module.html#dump
-lxml.objectify.__parseBool      lxml.objectify-module.html#__parseBool
-lxml.objectify.annotate lxml.objectify-module.html#annotate
-lxml.objectify.set_default_parser       lxml.objectify-module.html#set_default_parser
-lxml.objectify.pyannotate       lxml.objectify-module.html#pyannotate
-lxml.objectify.getRegisteredTypes       lxml.objectify-module.html#getRegisteredTypes
-lxml.objectify.xsiannotate      lxml.objectify-module.html#xsiannotate
-lxml.objectify.PYTYPE_ATTRIBUTE lxml.objectify-module.html#PYTYPE_ATTRIBUTE
-lxml.objectify.__package__      lxml.objectify-module.html#__package__
-lxml.objectify.pytypename       lxml.objectify-module.html#pytypename
-lxml.objectify.makeparser       lxml.objectify-module.html#makeparser
-lxml.objectify.XML      lxml.objectify-module.html#XML
-lxml.objectify.deannotate       lxml.objectify-module.html#deannotate
-lxml.objectify.E        lxml.objectify-module.html#E
-lxml.objectify.Element  lxml.objectify-module.html#Element
-lxml.objectify.__test__ lxml.objectify-module.html#__test__
-lxml.objectify.__unpickleElementTree    lxml.objectify-module.html#__unpickleElementTree
-lxml.objectify.__lower_bool     lxml.objectify-module.html#__lower_bool
-lxml.objectify.parse    lxml.objectify-module.html#parse
-lxml.objectify.set_pytype_attribute_tag lxml.objectify-module.html#set_pytype_attribute_tag
-lxml.objectify.__checkBool      lxml.objectify-module.html#__checkBool
-lxml.objectify.fromstring       lxml.objectify-module.html#fromstring
-lxml.objectify.DataElement      lxml.objectify-module.html#DataElement
-lxml.pyclasslookup      lxml.pyclasslookup-module.html
-lxml.pyclasslookup.__package__  lxml.pyclasslookup-module.html#__package__
-lxml.sax        lxml.sax-module.html
-lxml.sax.Comment        lxml.etree-module.html#Comment
-lxml.sax.ProcessingInstruction  lxml.etree-module.html#PI
-lxml.sax.SubElement     lxml.etree-module.html#SubElement
-lxml.sax.__package__    lxml.sax-module.html#__package__
-lxml.sax.saxify lxml.sax-module.html#saxify
-lxml.sax._getNsTag      lxml.sax-module.html#_getNsTag
-lxml.sax.ElementTree    lxml.etree-module.html#ElementTree
-lxml.tests      lxml.tests-module.html
-lxml.tests.__package__  lxml.tests-module.html#__package__
-lxml.tests.common_imports       lxml.tests.common_imports-module.html
-lxml.tests.common_imports.make_doctest  lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.common_imports._str  lxml.tests.common_imports-module.html#_str
-lxml.tests.common_imports._bytes        lxml.tests.common_imports-module.html#_bytes
-lxml.tests.common_imports.canonicalize  lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.common_imports._fix_unicode  lxml.tests.common_imports-module.html#_fix_unicode
-lxml.tests.common_imports.write_to_file lxml.tests.common_imports-module.html#write_to_file
-lxml.tests.common_imports.__package__   lxml.tests.common_imports-module.html#__package__
-lxml.tests.common_imports.filter_by_version     lxml.tests.common_imports-module.html#filter_by_version
-lxml.tests.common_imports._get_caller_relative_path     lxml.tests.common_imports-module.html#_get_caller_relative_path
-lxml.tests.common_imports.unentitify    lxml.tests.common_imports-module.html#unentitify
-lxml.tests.common_imports.doctest_parser        lxml.tests.common_imports-module.html#doctest_parser
-lxml.tests.common_imports._fix_bytes    lxml.tests.common_imports-module.html#_fix_bytes
-lxml.tests.common_imports._fix_exceptions       lxml.tests.common_imports-module.html#_fix_exceptions
-lxml.tests.common_imports.make_version_tuple    lxml.tests.common_imports-module.html#make_version_tuple
-lxml.tests.common_imports.ET_VERSION    lxml.tests.common_imports-module.html#ET_VERSION
-lxml.tests.common_imports.read_file     lxml.tests.common_imports-module.html#read_file
-lxml.tests.common_imports.fileInTestDir lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.common_imports.CET_VERSION   lxml.tests.common_imports-module.html#CET_VERSION
-lxml.tests.common_imports._fix_traceback        lxml.tests.common_imports-module.html#_fix_traceback
-lxml.tests.common_imports.readFileInTestDir     lxml.tests.common_imports-module.html#readFileInTestDir
-lxml.tests.test_classlookup     lxml.tests.test_classlookup-module.html
-lxml.tests.test_classlookup.xml_str     lxml.tests.test_classlookup-module.html#xml_str
-lxml.tests.test_classlookup.this_dir    lxml.tests.test_classlookup-module.html#this_dir
-lxml.tests.test_classlookup.fileInTestDir       lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_classlookup._str        lxml.tests.common_imports-module.html#_str
-lxml.tests.test_classlookup.__package__ lxml.tests.test_classlookup-module.html#__package__
-lxml.tests.test_classlookup._bytes      lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_classlookup.test_suite  lxml.tests.test_classlookup-module.html#test_suite
-lxml.tests.test_classlookup.canonicalize        lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_css     lxml.tests.test_css-module.html
-lxml.tests.test_css.doc_fn      lxml.tests.test_css-module.html#doc_fn
-lxml.tests.test_css.make_doctest        lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_css.__package__ lxml.tests.test_css-module.html#__package__
-lxml.tests.test_css.test_suite  lxml.tests.test_css-module.html#test_suite
-lxml.tests.test_css.unique      lxml.tests.test_css-module.html#unique
-lxml.tests.test_dtd     lxml.tests.test_dtd-module.html
-lxml.tests.test_dtd.make_doctest        lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_dtd.fileInTestDir       lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_dtd.__package__ lxml.tests.test_dtd-module.html#__package__
-lxml.tests.test_dtd._bytes      lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_dtd.test_suite  lxml.tests.test_dtd-module.html#test_suite
-lxml.tests.test_dtd.this_dir    lxml.tests.test_dtd-module.html#this_dir
-lxml.tests.test_elementtree     lxml.tests.test_elementtree-module.html
-lxml.tests.test_elementtree._str        lxml.tests.common_imports-module.html#_str
-lxml.tests.test_elementtree.canonicalize        lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_elementtree._bytes      lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_elementtree.__package__ lxml.tests.test_elementtree-module.html#__package__
-lxml.tests.test_elementtree.filter_by_version   lxml.tests.common_imports-module.html#filter_by_version
-lxml.tests.test_elementtree.this_dir    lxml.tests.test_elementtree-module.html#this_dir
-lxml.tests.test_elementtree.reversed    lxml.tests.test_elementtree-module.html#reversed
-lxml.tests.test_elementtree.cElementTree        lxml.tests.test_elementtree-module.html#cElementTree
-lxml.tests.test_elementtree.fileInTestDir       lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_elementtree.test_suite  lxml.tests.test_elementtree-module.html#test_suite
-lxml.tests.test_errors  lxml.tests.test_errors-module.html
-lxml.tests.test_errors.__package__      lxml.tests.test_errors-module.html#__package__
-lxml.tests.test_errors.test_suite       lxml.tests.test_errors-module.html#test_suite
-lxml.tests.test_errors.this_dir lxml.tests.test_errors-module.html#this_dir
-lxml.tests.test_etree   lxml.tests.test_etree-module.html
-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._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.this_dir  lxml.tests.test_etree-module.html#this_dir
-lxml.tests.test_etree.sorted    lxml.tests.common_imports-module.html#sorted
-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_etree.read_file lxml.tests.common_imports-module.html#read_file
-lxml.tests.test_htmlparser      lxml.tests.test_htmlparser-module.html
-lxml.tests.test_htmlparser._str lxml.tests.common_imports-module.html#_str
-lxml.tests.test_htmlparser.fileInTestDir        lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_htmlparser.__package__  lxml.tests.test_htmlparser-module.html#__package__
-lxml.tests.test_htmlparser.write_to_file        lxml.tests.common_imports-module.html#write_to_file
-lxml.tests.test_htmlparser._bytes       lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_htmlparser.test_suite   lxml.tests.test_htmlparser-module.html#test_suite
-lxml.tests.test_htmlparser.this_dir     lxml.tests.test_htmlparser-module.html#this_dir
-lxml.tests.test_io      lxml.tests.test_io-module.html
-lxml.tests.test_io._str lxml.tests.common_imports-module.html#_str
-lxml.tests.test_io._bytes       lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_io.read_file    lxml.tests.common_imports-module.html#read_file
-lxml.tests.test_io.this_dir     lxml.tests.test_io-module.html#this_dir
-lxml.tests.test_io.__package__  lxml.tests.test_io-module.html#__package__
-lxml.tests.test_io.write_to_file        lxml.tests.common_imports-module.html#write_to_file
-lxml.tests.test_io.fileInTestDir        lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_io.test_suite   lxml.tests.test_io-module.html#test_suite
-lxml.tests.test_isoschematron   lxml.tests.test_isoschematron-module.html
-lxml.tests.test_isoschematron.make_doctest      lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_isoschematron.fileInTestDir     lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_isoschematron.__package__       lxml.tests.test_isoschematron-module.html#__package__
-lxml.tests.test_isoschematron.test_suite        lxml.tests.test_isoschematron-module.html#test_suite
-lxml.tests.test_isoschematron.this_dir  lxml.tests.test_isoschematron-module.html#this_dir
-lxml.tests.test_nsclasses       lxml.tests.test_nsclasses-module.html
-lxml.tests.test_nsclasses.make_doctest  lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_nsclasses.__package__   lxml.tests.test_nsclasses-module.html#__package__
-lxml.tests.test_nsclasses._bytes        lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_nsclasses.test_suite    lxml.tests.test_nsclasses-module.html#test_suite
-lxml.tests.test_nsclasses.this_dir      lxml.tests.test_nsclasses-module.html#this_dir
-lxml.tests.test_objectify       lxml.tests.test_objectify-module.html
-lxml.tests.test_objectify.xsitype2objclass      lxml.tests.test_objectify-module.html#xsitype2objclass
-lxml.tests.test_objectify.make_doctest  lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_objectify._str  lxml.tests.common_imports-module.html#_str
-lxml.tests.test_objectify._bytes        lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_objectify.PYTYPE_NAMESPACE      lxml.tests.test_objectify-module.html#PYTYPE_NAMESPACE
-lxml.tests.test_objectify.canonicalize  lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_objectify.pytype2objclass       lxml.tests.test_objectify-module.html#pytype2objclass
-lxml.tests.test_objectify.xml_str       lxml.tests.test_objectify-module.html#xml_str
-lxml.tests.test_objectify.DEFAULT_NSMAP lxml.tests.test_objectify-module.html#DEFAULT_NSMAP
-lxml.tests.test_objectify.XML_SCHEMA_NS lxml.tests.test_objectify-module.html#XML_SCHEMA_NS
-lxml.tests.test_objectify.TREE_PYTYPE   lxml.tests.test_objectify-module.html#TREE_PYTYPE
-lxml.tests.test_objectify.__package__   lxml.tests.test_objectify-module.html#__package__
-lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_TYPE_ATTR lxml.tests.test_objectify-module.html#XML_SCHEMA_INSTANCE_TYPE_ATTR
-lxml.tests.test_objectify.XML_SCHEMA_NIL_ATTR   lxml.tests.test_objectify-module.html#XML_SCHEMA_NIL_ATTR
-lxml.tests.test_objectify.this_dir      lxml.tests.test_objectify-module.html#this_dir
-lxml.tests.test_objectify.XML_SCHEMA_INSTANCE_NS        lxml.tests.test_objectify-module.html#XML_SCHEMA_INSTANCE_NS
-lxml.tests.test_objectify.objectclass2xsitype   lxml.tests.test_objectify-module.html#objectclass2xsitype
-lxml.tests.test_objectify.v     lxml.tests.test_objectify-module.html#v
-lxml.tests.test_objectify.objectclass2pytype    lxml.tests.test_objectify-module.html#objectclass2pytype
-lxml.tests.test_objectify.fileInTestDir lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_objectify.test_suite    lxml.tests.test_objectify-module.html#test_suite
-lxml.tests.test_pyclasslookup   lxml.tests.test_pyclasslookup-module.html
-lxml.tests.test_pyclasslookup.xml_str   lxml.tests.test_pyclasslookup-module.html#xml_str
-lxml.tests.test_pyclasslookup.this_dir  lxml.tests.test_pyclasslookup-module.html#this_dir
-lxml.tests.test_pyclasslookup.fileInTestDir     lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_pyclasslookup.__package__       lxml.tests.test_pyclasslookup-module.html#__package__
-lxml.tests.test_pyclasslookup._bytes    lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_pyclasslookup.test_suite        lxml.tests.test_pyclasslookup-module.html#test_suite
-lxml.tests.test_pyclasslookup.canonicalize      lxml.tests.common_imports-module.html#canonicalize
-lxml.tests.test_relaxng lxml.tests.test_relaxng-module.html
-lxml.tests.test_relaxng.make_doctest    lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_relaxng.fileInTestDir   lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_relaxng.__package__     lxml.tests.test_relaxng-module.html#__package__
-lxml.tests.test_relaxng._bytes  lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_relaxng.test_suite      lxml.tests.test_relaxng-module.html#test_suite
-lxml.tests.test_relaxng.this_dir        lxml.tests.test_relaxng-module.html#this_dir
-lxml.tests.test_sax     lxml.tests.test_sax-module.html
-lxml.tests.test_sax.make_doctest        lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_sax.__package__ lxml.tests.test_sax-module.html#__package__
-lxml.tests.test_sax._bytes      lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_sax.test_suite  lxml.tests.test_sax-module.html#test_suite
-lxml.tests.test_sax.this_dir    lxml.tests.test_sax-module.html#this_dir
-lxml.tests.test_schematron      lxml.tests.test_schematron-module.html
-lxml.tests.test_schematron.make_doctest lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_schematron.fileInTestDir        lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_schematron.__package__  lxml.tests.test_schematron-module.html#__package__
-lxml.tests.test_schematron.test_suite   lxml.tests.test_schematron-module.html#test_suite
-lxml.tests.test_schematron.this_dir     lxml.tests.test_schematron-module.html#this_dir
-lxml.tests.test_threading       lxml.tests.test_threading-module.html
-lxml.tests.test_threading.__package__   lxml.tests.test_threading-module.html#__package__
-lxml.tests.test_threading._bytes        lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_threading.test_suite    lxml.tests.test_threading-module.html#test_suite
-lxml.tests.test_threading.this_dir      lxml.tests.test_threading-module.html#this_dir
-lxml.tests.test_unicode lxml.tests.test_unicode-module.html
-lxml.tests.test_unicode.uxml    lxml.tests.test_unicode-module.html#uxml
-lxml.tests.test_unicode.klingon lxml.tests.test_unicode-module.html#klingon
-lxml.tests.test_unicode.invalid_tag     lxml.tests.test_unicode-module.html#invalid_tag
-lxml.tests.test_unicode._str    lxml.tests.common_imports-module.html#_str
-lxml.tests.test_unicode.__package__     lxml.tests.test_unicode-module.html#__package__
-lxml.tests.test_unicode._bytes  lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_unicode.test_suite      lxml.tests.test_unicode-module.html#test_suite
-lxml.tests.test_unicode.this_dir        lxml.tests.test_unicode-module.html#this_dir
-lxml.tests.test_unicode.uni     lxml.tests.test_unicode-module.html#uni
-lxml.tests.test_unicode.ascii_uni       lxml.tests.test_unicode-module.html#ascii_uni
-lxml.tests.test_xmlschema       lxml.tests.test_xmlschema-module.html
-lxml.tests.test_xmlschema.make_doctest  lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_xmlschema.fileInTestDir lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_xmlschema.__package__   lxml.tests.test_xmlschema-module.html#__package__
-lxml.tests.test_xmlschema.test_suite    lxml.tests.test_xmlschema-module.html#test_suite
-lxml.tests.test_xmlschema.this_dir      lxml.tests.test_xmlschema-module.html#this_dir
-lxml.tests.test_xpathevaluator  lxml.tests.test_xpathevaluator-module.html
-lxml.tests.test_xpathevaluator.argsTest1        lxml.tests.test_xpathevaluator-module.html#argsTest1
-lxml.tests.test_xpathevaluator.argsTest2        lxml.tests.test_xpathevaluator-module.html#argsTest2
-lxml.tests.test_xpathevaluator.make_doctest     lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_xpathevaluator.tag      lxml.tests.test_xpathevaluator-module.html#tag
-lxml.tests.test_xpathevaluator.stringTest       lxml.tests.test_xpathevaluator-module.html#stringTest
-lxml.tests.test_xpathevaluator._bytes   lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_xpathevaluator.booleanTest      lxml.tests.test_xpathevaluator-module.html#booleanTest
-lxml.tests.test_xpathevaluator.this_dir lxml.tests.test_xpathevaluator-module.html#this_dir
-lxml.tests.test_xpathevaluator.setTest  lxml.tests.test_xpathevaluator-module.html#setTest
-lxml.tests.test_xpathevaluator.resultTypesTest2 lxml.tests.test_xpathevaluator-module.html#resultTypesTest2
-lxml.tests.test_xpathevaluator.SAMPLE_XML       lxml.tests.test_xpathevaluator-module.html#SAMPLE_XML
-lxml.tests.test_xpathevaluator.__package__      lxml.tests.test_xpathevaluator-module.html#__package__
-lxml.tests.test_xpathevaluator.test_suite       lxml.tests.test_xpathevaluator-module.html#test_suite
-lxml.tests.test_xpathevaluator.floatTest        lxml.tests.test_xpathevaluator-module.html#floatTest
-lxml.tests.test_xpathevaluator.stringListTest   lxml.tests.test_xpathevaluator-module.html#stringListTest
-lxml.tests.test_xpathevaluator.xpath    lxml.tests.test_xpathevaluator-module.html#xpath
-lxml.tests.test_xpathevaluator.tag_or_value     lxml.tests.test_xpathevaluator-module.html#tag_or_value
-lxml.tests.test_xpathevaluator.resultTypesTest  lxml.tests.test_xpathevaluator-module.html#resultTypesTest
-lxml.tests.test_xpathevaluator.extension        lxml.tests.test_xpathevaluator-module.html#extension
-lxml.tests.test_xpathevaluator.uri      lxml.tests.test_xpathevaluator-module.html#uri
-lxml.tests.test_xpathevaluator.setTest2 lxml.tests.test_xpathevaluator-module.html#setTest2
-lxml.tests.test_xslt    lxml.tests.test_xslt-module.html
-lxml.tests.test_xslt.make_doctest       lxml.tests.common_imports-module.html#make_doctest
-lxml.tests.test_xslt._str       lxml.tests.common_imports-module.html#_str
-lxml.tests.test_xslt._bytes     lxml.tests.common_imports-module.html#_bytes
-lxml.tests.test_xslt.this_dir   lxml.tests.test_xslt-module.html#this_dir
-lxml.tests.test_xslt.__package__        lxml.tests.test_xslt-module.html#__package__
-lxml.tests.test_xslt.is_python3 lxml.tests.test_xslt-module.html#is_python3
-lxml.tests.test_xslt.fileInTestDir      lxml.tests.common_imports-module.html#fileInTestDir
-lxml.tests.test_xslt.test_suite lxml.tests.test_xslt-module.html#test_suite
-lxml.usedoctest lxml.usedoctest-module.html
-xml.etree.ElementTree   xml.etree.ElementTree-module.html
-xml.etree.ElementTree.XMLID     xml.etree.ElementTree-module.html#XMLID
-xml.etree.ElementTree.fixtag    xml.etree.ElementTree-module.html#fixtag
-xml.etree.ElementTree.dump      xml.etree.ElementTree-module.html#dump
-xml.etree.ElementTree.parse     xml.etree.ElementTree-module.html#parse
-xml.etree.ElementTree._encode   xml.etree.ElementTree-module.html#_encode
-xml.etree.ElementTree._namespace_map    xml.etree.ElementTree-module.html#_namespace_map
-xml.etree.ElementTree._encode_entity    xml.etree.ElementTree-module.html#_encode_entity
-xml.etree.ElementTree.__package__       xml.etree.ElementTree-module.html#__package__
-xml.etree.ElementTree.PI        xml.etree.ElementTree-module.html#PI
-xml.etree.ElementTree.XML       xml.etree.ElementTree-module.html#XML
-xml.etree.ElementTree._raise_serialization_error        xml.etree.ElementTree-module.html#_raise_serialization_error
-xml.etree.ElementTree._escape_cdata     xml.etree.ElementTree-module.html#_escape_cdata
-xml.etree.ElementTree._escape_map       xml.etree.ElementTree-module.html#_escape_map
-xml.etree.ElementTree._escape_attrib    xml.etree.ElementTree-module.html#_escape_attrib
-xml.etree.ElementTree.Element   xml.etree.ElementTree-module.html#Element
-xml.etree.ElementTree.VERSION   xml.etree.ElementTree-module.html#VERSION
-xml.etree.ElementTree.tostring  xml.etree.ElementTree-module.html#tostring
-xml.etree.ElementTree.iselement xml.etree.ElementTree-module.html#iselement
-xml.etree.ElementTree._escape   xml.etree.ElementTree-module.html#_escape
-xml.etree.ElementTree.Comment   xml.etree.ElementTree-module.html#Comment
-xml.etree.ElementTree.ProcessingInstruction     xml.etree.ElementTree-module.html#ProcessingInstruction
-xml.etree.ElementTree.fromstring        xml.etree.ElementTree-module.html#fromstring
-xml.etree.ElementTree.SubElement        xml.etree.ElementTree-module.html#SubElement
-exceptions.AssertionError       exceptions.AssertionError-class.html
-exceptions.AssertionError.__init__      exceptions.AssertionError-class.html#__init__
-exceptions.AssertionError.__new__       exceptions.AssertionError-class.html#__new__
-lxml.ElementInclude.FatalIncludeError   lxml.ElementInclude.FatalIncludeError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.builder.ElementMaker       lxml.builder.ElementMaker-class.html
-lxml.builder.ElementMaker.__getattr__   lxml.builder.ElementMaker-class.html#__getattr__
-lxml.builder.ElementMaker.__call__      lxml.builder.ElementMaker-class.html#__call__
-lxml.builder.ElementMaker.__init__      lxml.builder.ElementMaker-class.html#__init__
-lxml.cssselect.Attrib   lxml.cssselect.Attrib-class.html
-lxml.cssselect.Attrib.xpath     lxml.cssselect.Attrib-class.html#xpath
-lxml.cssselect.Attrib._xpath_attrib     lxml.cssselect.Attrib-class.html#_xpath_attrib
-lxml.cssselect.Attrib.__repr__  lxml.cssselect.Attrib-class.html#__repr__
-lxml.cssselect.Attrib.__init__  lxml.cssselect.Attrib-class.html#__init__
-lxml.cssselect.Attrib._format_attrib    lxml.cssselect.Attrib-class.html#_format_attrib
-lxml.cssselect.CSSSelector      lxml.cssselect.CSSSelector-class.html
-lxml.etree.XPath.__new__        lxml.etree.XPath-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log        lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.cssselect.CSSSelector.__repr__     lxml.cssselect.CSSSelector-class.html#__repr__
-lxml.etree.XPath.__call__       lxml.etree.XPath-class.html#__call__
-lxml.etree.XPath.path   lxml.etree.XPath-class.html#path
-lxml.cssselect.CSSSelector.__init__     lxml.cssselect.CSSSelector-class.html#__init__
-lxml.cssselect.Class    lxml.cssselect.Class-class.html
-lxml.cssselect.Class.xpath      lxml.cssselect.Class-class.html#xpath
-lxml.cssselect.Class.__repr__   lxml.cssselect.Class-class.html#__repr__
-lxml.cssselect.Class.__init__   lxml.cssselect.Class-class.html#__init__
-lxml.cssselect.CombinedSelector lxml.cssselect.CombinedSelector-class.html
-lxml.cssselect.CombinedSelector.xpath   lxml.cssselect.CombinedSelector-class.html#xpath
-lxml.cssselect.CombinedSelector._xpath_descendant       lxml.cssselect.CombinedSelector-class.html#_xpath_descendant
-lxml.cssselect.CombinedSelector._xpath_indirect_adjacent        lxml.cssselect.CombinedSelector-class.html#_xpath_indirect_adjacent
-lxml.cssselect.CombinedSelector._xpath_child    lxml.cssselect.CombinedSelector-class.html#_xpath_child
-lxml.cssselect.CombinedSelector.__repr__        lxml.cssselect.CombinedSelector-class.html#__repr__
-lxml.cssselect.CombinedSelector._xpath_direct_adjacent  lxml.cssselect.CombinedSelector-class.html#_xpath_direct_adjacent
-lxml.cssselect.CombinedSelector._method_mapping lxml.cssselect.CombinedSelector-class.html#_method_mapping
-lxml.cssselect.CombinedSelector.__init__        lxml.cssselect.CombinedSelector-class.html#__init__
-lxml.cssselect.Element  lxml.cssselect.Element-class.html
-lxml.cssselect.Element.xpath    lxml.cssselect.Element-class.html#xpath
-lxml.cssselect.Element._format_element  lxml.cssselect.Element-class.html#_format_element
-lxml.cssselect.Element.__repr__ lxml.cssselect.Element-class.html#__repr__
-lxml.cssselect.Element.__init__ lxml.cssselect.Element-class.html#__init__
-lxml.cssselect.ExpressionError  lxml.cssselect.ExpressionError-class.html
-lxml.cssselect.Function lxml.cssselect.Function-class.html
-lxml.cssselect.Function._xpath_nth_last_child   lxml.cssselect.Function-class.html#_xpath_nth_last_child
-lxml.cssselect.Function.unsupported     lxml.cssselect.Function-class.html#unsupported
-lxml.cssselect.Function._xpath_nth_last_of_type lxml.cssselect.Function-class.html#_xpath_nth_last_of_type
-lxml.cssselect.Function.__init__        lxml.cssselect.Function-class.html#__init__
-lxml.cssselect.Function._xpath_nth_of_type      lxml.cssselect.Function-class.html#_xpath_nth_of_type
-lxml.cssselect.Function.xpath   lxml.cssselect.Function-class.html#xpath
-lxml.cssselect.Function._xpath_not      lxml.cssselect.Function-class.html#_xpath_not
-lxml.cssselect.Function._xpath_nth_child        lxml.cssselect.Function-class.html#_xpath_nth_child
-lxml.cssselect.Function._xpath_contains lxml.cssselect.Function-class.html#_xpath_contains
-lxml.cssselect.Function.__repr__        lxml.cssselect.Function-class.html#__repr__
-lxml.cssselect.Hash     lxml.cssselect.Hash-class.html
-lxml.cssselect.Hash.xpath       lxml.cssselect.Hash-class.html#xpath
-lxml.cssselect.Hash.__repr__    lxml.cssselect.Hash-class.html#__repr__
-lxml.cssselect.Hash.__init__    lxml.cssselect.Hash-class.html#__init__
-lxml.cssselect.Or       lxml.cssselect.Or-class.html
-lxml.cssselect.Or.xpath lxml.cssselect.Or-class.html#xpath
-lxml.cssselect.Or.__repr__      lxml.cssselect.Or-class.html#__repr__
-lxml.cssselect.Or.__init__      lxml.cssselect.Or-class.html#__init__
-lxml.cssselect.Pseudo   lxml.cssselect.Pseudo-class.html
-lxml.cssselect.Pseudo.unsupported       lxml.cssselect.Pseudo-class.html#unsupported
-lxml.cssselect.Pseudo._xpath_first_child        lxml.cssselect.Pseudo-class.html#_xpath_first_child
-lxml.cssselect.Pseudo._xpath_checked    lxml.cssselect.Pseudo-class.html#_xpath_checked
-lxml.cssselect.Pseudo.__init__  lxml.cssselect.Pseudo-class.html#__init__
-lxml.cssselect.Pseudo._xpath_first_of_type      lxml.cssselect.Pseudo-class.html#_xpath_first_of_type
-lxml.cssselect.Pseudo._xpath_only_child lxml.cssselect.Pseudo-class.html#_xpath_only_child
-lxml.cssselect.Pseudo._xpath_empty      lxml.cssselect.Pseudo-class.html#_xpath_empty
-lxml.cssselect.Pseudo._xpath_root       lxml.cssselect.Pseudo-class.html#_xpath_root
-lxml.cssselect.Pseudo.xpath     lxml.cssselect.Pseudo-class.html#xpath
-lxml.cssselect.Pseudo._xpath_only_of_type       lxml.cssselect.Pseudo-class.html#_xpath_only_of_type
-lxml.cssselect.Pseudo.__repr__  lxml.cssselect.Pseudo-class.html#__repr__
-lxml.cssselect.Pseudo._xpath_last_of_type       lxml.cssselect.Pseudo-class.html#_xpath_last_of_type
-lxml.cssselect.Pseudo._xpath_last_child lxml.cssselect.Pseudo-class.html#_xpath_last_child
-lxml.cssselect.SelectorSyntaxError      lxml.cssselect.SelectorSyntaxError-class.html
-lxml.cssselect.String   lxml.cssselect.String-class.html
-lxml.cssselect._UniToken.__new__        lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__       lxml.cssselect._UniToken-class.html#__repr__
-lxml.cssselect.Symbol   lxml.cssselect.Symbol-class.html
-lxml.cssselect._UniToken.__new__        lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__       lxml.cssselect._UniToken-class.html#__repr__
-lxml.cssselect.Token    lxml.cssselect.Token-class.html
-lxml.cssselect._UniToken.__new__        lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__       lxml.cssselect._UniToken-class.html#__repr__
-lxml.cssselect.TokenStream      lxml.cssselect.TokenStream-class.html
-lxml.cssselect.TokenStream.peek lxml.cssselect.TokenStream-class.html#peek
-lxml.cssselect.TokenStream.next lxml.cssselect.TokenStream-class.html#next
-lxml.cssselect.TokenStream.__iter__     lxml.cssselect.TokenStream-class.html#__iter__
-lxml.cssselect.TokenStream.__init__     lxml.cssselect.TokenStream-class.html#__init__
-lxml.cssselect.XPathExpr        lxml.cssselect.XPathExpr-class.html
-lxml.cssselect.XPathExpr.add_star_prefix        lxml.cssselect.XPathExpr-class.html#add_star_prefix
-lxml.cssselect.XPathExpr.join   lxml.cssselect.XPathExpr-class.html#join
-lxml.cssselect.XPathExpr.add_path       lxml.cssselect.XPathExpr-class.html#add_path
-lxml.cssselect.XPathExpr.__str__        lxml.cssselect.XPathExpr-class.html#__str__
-lxml.cssselect.XPathExpr.add_name_test  lxml.cssselect.XPathExpr-class.html#add_name_test
-lxml.cssselect.XPathExpr.__repr__       lxml.cssselect.XPathExpr-class.html#__repr__
-lxml.cssselect.XPathExpr.add_condition  lxml.cssselect.XPathExpr-class.html#add_condition
-lxml.cssselect.XPathExpr.add_prefix     lxml.cssselect.XPathExpr-class.html#add_prefix
-lxml.cssselect.XPathExpr.__init__       lxml.cssselect.XPathExpr-class.html#__init__
-lxml.cssselect.XPathExprOr      lxml.cssselect.XPathExprOr-class.html
-lxml.cssselect.XPathExpr.add_star_prefix        lxml.cssselect.XPathExpr-class.html#add_star_prefix
-lxml.cssselect.XPathExpr.join   lxml.cssselect.XPathExpr-class.html#join
-lxml.cssselect.XPathExpr.add_path       lxml.cssselect.XPathExpr-class.html#add_path
-lxml.cssselect.XPathExprOr.__str__      lxml.cssselect.XPathExprOr-class.html#__str__
-lxml.cssselect.XPathExpr.add_name_test  lxml.cssselect.XPathExpr-class.html#add_name_test
-lxml.cssselect.XPathExpr.__repr__       lxml.cssselect.XPathExpr-class.html#__repr__
-lxml.cssselect.XPathExpr.add_condition  lxml.cssselect.XPathExpr-class.html#add_condition
-lxml.cssselect.XPathExpr.add_prefix     lxml.cssselect.XPathExpr-class.html#add_prefix
-lxml.cssselect.XPathExprOr.__init__     lxml.cssselect.XPathExprOr-class.html#__init__
-lxml.cssselect._UniToken        lxml.cssselect._UniToken-class.html
-lxml.cssselect._UniToken.__new__        lxml.cssselect._UniToken-class.html#__new__
-lxml.cssselect._UniToken.__repr__       lxml.cssselect._UniToken-class.html#__repr__
-lxml.doctestcompare.LHTMLOutputChecker  lxml.doctestcompare.LHTMLOutputChecker-class.html
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_end_tag      lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_end_tag
-lxml.doctestcompare.LXMLOutputChecker.text_compare      lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare
-lxml.doctestcompare.LHTMLOutputChecker.get_default_parser       lxml.doctestcompare.LHTMLOutputChecker-class.html#get_default_parser
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_tag  lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_tag
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_text lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_text
-lxml.doctestcompare.LXMLOutputChecker.get_parser        lxml.doctestcompare.LXMLOutputChecker-class.html#get_parser
-lxml.doctestcompare.LXMLOutputChecker.collect_diff      lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff
-lxml.doctestcompare.LXMLOutputChecker.html_empty_tag    lxml.doctestcompare.LXMLOutputChecker-class.html#html_empty_tag
-lxml.doctestcompare.LXMLOutputChecker._looks_like_markup        lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup
-lxml.doctestcompare.LXMLOutputChecker.format_tag        lxml.doctestcompare.LXMLOutputChecker-class.html#format_tag
-lxml.doctestcompare.LXMLOutputChecker.check_output      lxml.doctestcompare.LXMLOutputChecker-class.html#check_output
-lxml.doctestcompare.LXMLOutputChecker.compare_docs      lxml.doctestcompare.LXMLOutputChecker-class.html#compare_docs
-lxml.doctestcompare.LXMLOutputChecker.format_doc        lxml.doctestcompare.LXMLOutputChecker-class.html#format_doc
-lxml.doctestcompare.LXMLOutputChecker.output_difference lxml.doctestcompare.LXMLOutputChecker-class.html#output_difference
-lxml.doctestcompare.LXMLOutputChecker.format_end_tag    lxml.doctestcompare.LXMLOutputChecker-class.html#format_end_tag
-lxml.doctestcompare.LXMLOutputChecker.format_text       lxml.doctestcompare.LXMLOutputChecker-class.html#format_text
-lxml.doctestcompare.LXMLOutputChecker.empty_tags        lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags
-lxml.doctestcompare.LXMLOutputChecker.tag_compare       lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare
-lxml.doctestcompare.LXMLOutputChecker   lxml.doctestcompare.LXMLOutputChecker-class.html
-lxml.doctestcompare.LXMLOutputChecker.text_compare      lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare
-lxml.doctestcompare.LXMLOutputChecker._looks_like_markup        lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup
-lxml.doctestcompare.LXMLOutputChecker.empty_tags        lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_tag  lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_tag
-lxml.doctestcompare.LXMLOutputChecker.compare_docs      lxml.doctestcompare.LXMLOutputChecker-class.html#compare_docs
-lxml.doctestcompare.LXMLOutputChecker.get_parser        lxml.doctestcompare.LXMLOutputChecker-class.html#get_parser
-lxml.doctestcompare.LXMLOutputChecker.html_empty_tag    lxml.doctestcompare.LXMLOutputChecker-class.html#html_empty_tag
-lxml.doctestcompare.LXMLOutputChecker.get_default_parser        lxml.doctestcompare.LXMLOutputChecker-class.html#get_default_parser
-lxml.doctestcompare.LXMLOutputChecker.format_tag        lxml.doctestcompare.LXMLOutputChecker-class.html#format_tag
-lxml.doctestcompare.LXMLOutputChecker.check_output      lxml.doctestcompare.LXMLOutputChecker-class.html#check_output
-lxml.doctestcompare.LXMLOutputChecker.collect_diff      lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff
-lxml.doctestcompare.LXMLOutputChecker.tag_compare       lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare
-lxml.doctestcompare.LXMLOutputChecker.format_doc        lxml.doctestcompare.LXMLOutputChecker-class.html#format_doc
-lxml.doctestcompare.LXMLOutputChecker.output_difference lxml.doctestcompare.LXMLOutputChecker-class.html#output_difference
-lxml.doctestcompare.LXMLOutputChecker.format_end_tag    lxml.doctestcompare.LXMLOutputChecker-class.html#format_end_tag
-lxml.doctestcompare.LXMLOutputChecker.format_text       lxml.doctestcompare.LXMLOutputChecker-class.html#format_text
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_end_tag      lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_end_tag
-lxml.doctestcompare.LXMLOutputChecker.collect_diff_text lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_text
-lxml.doctestcompare._RestoreChecker     lxml.doctestcompare._RestoreChecker-class.html
-lxml.doctestcompare._RestoreChecker.uninstall_dt_self   lxml.doctestcompare._RestoreChecker-class.html#uninstall_dt_self
-lxml.doctestcompare._RestoreChecker.install_clone       lxml.doctestcompare._RestoreChecker-class.html#install_clone
-lxml.doctestcompare._RestoreChecker.uninstall_module    lxml.doctestcompare._RestoreChecker-class.html#uninstall_module
-lxml.doctestcompare._RestoreChecker.uninstall_clone     lxml.doctestcompare._RestoreChecker-class.html#uninstall_clone
-lxml.doctestcompare._RestoreChecker.install_dt_self     lxml.doctestcompare._RestoreChecker-class.html#install_dt_self
-lxml.doctestcompare._RestoreChecker.__call__    lxml.doctestcompare._RestoreChecker-class.html#__call__
-lxml.doctestcompare._RestoreChecker.call_super  lxml.doctestcompare._RestoreChecker-class.html#call_super
-lxml.doctestcompare._RestoreChecker.__init__    lxml.doctestcompare._RestoreChecker-class.html#__init__
-lxml.etree.AncestorsIterator    lxml.etree.AncestorsIterator-class.html
-lxml.etree.AncestorsIterator.__new__    lxml.etree.AncestorsIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__    lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next        lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__    lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree.AttributeBasedElementClassLookup     lxml.etree.AttributeBasedElementClassLookup-class.html
-lxml.etree.AttributeBasedElementClassLookup.__new__     lxml.etree.AttributeBasedElementClassLookup-class.html#__new__
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.AttributeBasedElementClassLookup.__init__    lxml.etree.AttributeBasedElementClassLookup-class.html#__init__
-lxml.etree.C14NError    lxml.etree.C14NError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.CDATA        lxml.etree.CDATA-class.html
-lxml.etree.CDATA.__new__        lxml.etree.CDATA-class.html#__new__
-lxml.etree.CDATA.__init__       lxml.etree.CDATA-class.html#__init__
-lxml.etree.CommentBase  lxml.etree.CommentBase-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Comment.tag lxml.etree._Comment-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.CommentBase.__new__  lxml.etree.CommentBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.CommentBase.__init__ lxml.etree.CommentBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Comment.__repr__    lxml.etree._Comment-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree.CustomElementClassLookup     lxml.etree.CustomElementClassLookup-class.html
-lxml.etree.CustomElementClassLookup.__new__     lxml.etree.CustomElementClassLookup-class.html#__new__
-lxml.etree.CustomElementClassLookup.lookup      lxml.etree.CustomElementClassLookup-class.html#lookup
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__  lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.DTD  lxml.etree.DTD-class.html
-lxml.etree.DTD.__new__  lxml.etree.DTD-class.html#__new__
-lxml.etree._Validator._clear_error_log  lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid       lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message       lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log lxml.etree._Validator-class.html#error_log
-lxml.etree.DTD.__call__ lxml.etree.DTD-class.html#__call__
-lxml.etree._Validator.assert_   lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate  lxml.etree._Validator-class.html#validate
-lxml.etree.DTD.__init__ lxml.etree.DTD-class.html#__init__
-lxml.etree.DTDError     lxml.etree.DTDError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.DTDParseError        lxml.etree.DTDParseError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.DTDValidateError     lxml.etree.DTDValidateError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.DocInfo      lxml.etree.DocInfo-class.html
-lxml.etree.DocInfo.xml_version  lxml.etree.DocInfo-class.html#xml_version
-lxml.etree.DocInfo.public_id    lxml.etree.DocInfo-class.html#public_id
-lxml.etree.DocInfo.encoding     lxml.etree.DocInfo-class.html#encoding
-lxml.etree.DocInfo.externalDTD  lxml.etree.DocInfo-class.html#externalDTD
-lxml.etree.DocInfo.system_url   lxml.etree.DocInfo-class.html#system_url
-lxml.etree.DocInfo.__new__      lxml.etree.DocInfo-class.html#__new__
-lxml.etree.DocInfo.internalDTD  lxml.etree.DocInfo-class.html#internalDTD
-lxml.etree.DocInfo.URL  lxml.etree.DocInfo-class.html#URL
-lxml.etree.DocInfo.standalone   lxml.etree.DocInfo-class.html#standalone
-lxml.etree.DocInfo.root_name    lxml.etree.DocInfo-class.html#root_name
-lxml.etree.DocInfo.doctype      lxml.etree.DocInfo-class.html#doctype
-lxml.etree.DocumentInvalid      lxml.etree.DocumentInvalid-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.ETCompatXMLParser    lxml.etree.ETCompatXMLParser-class.html
-lxml.etree._FeedParser.feed     lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close    lxml.etree._FeedParser-class.html#close
-lxml.etree.ETCompatXMLParser.__init__   lxml.etree.ETCompatXMLParser-class.html#__init__
-lxml.etree.ETCompatXMLParser.__new__    lxml.etree.ETCompatXMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log   lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree.ETXPath      lxml.etree.ETXPath-class.html
-lxml.etree.ETXPath.__new__      lxml.etree.ETXPath-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log        lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPath.__repr__       lxml.etree.XPath-class.html#__repr__
-lxml.etree.XPath.__call__       lxml.etree.XPath-class.html#__call__
-lxml.etree.XPath.path   lxml.etree.XPath-class.html#path
-lxml.etree.ETXPath.__init__     lxml.etree.ETXPath-class.html#__init__
-lxml.etree.ElementBase  lxml.etree.ElementBase-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree.ElementChildIterator lxml.etree.ElementChildIterator-class.html
-lxml.etree.ElementChildIterator.__new__ lxml.etree.ElementChildIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__    lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next        lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__    lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree.ElementClassLookup   lxml.etree.ElementClassLookup-class.html
-lxml.etree.ElementClassLookup.__new__   lxml.etree.ElementClassLookup-class.html#__new__
-lxml.etree.ElementDefaultClassLookup    lxml.etree.ElementDefaultClassLookup-class.html
-lxml.etree.ElementDefaultClassLookup.entity_class       lxml.etree.ElementDefaultClassLookup-class.html#entity_class
-lxml.etree.ElementDefaultClassLookup.__new__    lxml.etree.ElementDefaultClassLookup-class.html#__new__
-lxml.etree.ElementDefaultClassLookup.element_class      lxml.etree.ElementDefaultClassLookup-class.html#element_class
-lxml.etree.ElementDefaultClassLookup.pi_class   lxml.etree.ElementDefaultClassLookup-class.html#pi_class
-lxml.etree.ElementDefaultClassLookup.comment_class      lxml.etree.ElementDefaultClassLookup-class.html#comment_class
-lxml.etree.ElementDefaultClassLookup.__init__   lxml.etree.ElementDefaultClassLookup-class.html#__init__
-lxml.etree.ElementDepthFirstIterator    lxml.etree.ElementDepthFirstIterator-class.html
-lxml.etree.ElementDepthFirstIterator.__new__    lxml.etree.ElementDepthFirstIterator-class.html#__new__
-lxml.etree.ElementDepthFirstIterator.__next__   lxml.etree.ElementDepthFirstIterator-class.html#__next__
-lxml.etree.ElementDepthFirstIterator.next       lxml.etree.ElementDepthFirstIterator-class.html#next
-lxml.etree.ElementDepthFirstIterator.__iter__   lxml.etree.ElementDepthFirstIterator-class.html#__iter__
-lxml.etree.ElementNamespaceClassLookup  lxml.etree.ElementNamespaceClassLookup-class.html
-lxml.etree.ElementNamespaceClassLookup.__new__  lxml.etree.ElementNamespaceClassLookup-class.html#__new__
-lxml.etree.ElementNamespaceClassLookup.get_namespace    lxml.etree.ElementNamespaceClassLookup-class.html#get_namespace
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.ElementNamespaceClassLookup.__init__ lxml.etree.ElementNamespaceClassLookup-class.html#__init__
-lxml.etree.ElementTextIterator  lxml.etree.ElementTextIterator-class.html
-lxml.etree.ElementTextIterator.__new__  lxml.etree.ElementTextIterator-class.html#__new__
-lxml.etree.ElementTextIterator.__next__ lxml.etree.ElementTextIterator-class.html#__next__
-lxml.etree.ElementTextIterator.next     lxml.etree.ElementTextIterator-class.html#next
-lxml.etree.ElementTextIterator.__iter__ lxml.etree.ElementTextIterator-class.html#__iter__
-lxml.etree.EntityBase   lxml.etree.EntityBase-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Entity.text lxml.etree._Entity-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Entity.tag  lxml.etree._Entity-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.EntityBase.__new__   lxml.etree.EntityBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.EntityBase.__init__  lxml.etree.EntityBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Entity.name lxml.etree._Entity-class.html#name
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Entity.__repr__     lxml.etree._Entity-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree.Error        lxml.etree.Error-class.html
-lxml.etree.ErrorDomains lxml.etree.ErrorDomains-class.html
-lxml.etree.ErrorDomains.HTTP    lxml.etree.ErrorDomains-class.html#HTTP
-lxml.etree.ErrorDomains.SCHEMATRONV     lxml.etree.ErrorDomains-class.html#SCHEMATRONV
-lxml.etree.ErrorDomains.DTD     lxml.etree.ErrorDomains-class.html#DTD
-lxml.etree.ErrorDomains.VALID   lxml.etree.ErrorDomains-class.html#VALID
-lxml.etree.ErrorDomains.I18N    lxml.etree.ErrorDomains-class.html#I18N
-lxml.etree.ErrorDomains._getName        lxml.etree.ErrorDomains-class.html#_getName
-lxml.etree.ErrorDomains.C14N    lxml.etree.ErrorDomains-class.html#C14N
-lxml.etree.ErrorDomains.NONE    lxml.etree.ErrorDomains-class.html#NONE
-lxml.etree.ErrorDomains.DATATYPE        lxml.etree.ErrorDomains-class.html#DATATYPE
-lxml.etree.ErrorDomains.XINCLUDE        lxml.etree.ErrorDomains-class.html#XINCLUDE
-lxml.etree.ErrorDomains.HTML    lxml.etree.ErrorDomains-class.html#HTML
-lxml.etree.ErrorDomains.CHECK   lxml.etree.ErrorDomains-class.html#CHECK
-lxml.etree.ErrorDomains.FTP     lxml.etree.ErrorDomains-class.html#FTP
-lxml.etree.ErrorDomains._names  lxml.etree.ErrorDomains-class.html#_names
-lxml.etree.ErrorDomains.XSLT    lxml.etree.ErrorDomains-class.html#XSLT
-lxml.etree.ErrorDomains.PARSER  lxml.etree.ErrorDomains-class.html#PARSER
-lxml.etree.ErrorDomains.NAMESPACE       lxml.etree.ErrorDomains-class.html#NAMESPACE
-lxml.etree.ErrorDomains.MODULE  lxml.etree.ErrorDomains-class.html#MODULE
-lxml.etree.ErrorDomains.IO      lxml.etree.ErrorDomains-class.html#IO
-lxml.etree.ErrorDomains.REGEXP  lxml.etree.ErrorDomains-class.html#REGEXP
-lxml.etree.ErrorDomains.XPATH   lxml.etree.ErrorDomains-class.html#XPATH
-lxml.etree.ErrorDomains.RELAXNGV        lxml.etree.ErrorDomains-class.html#RELAXNGV
-lxml.etree.ErrorDomains.RELAXNGP        lxml.etree.ErrorDomains-class.html#RELAXNGP
-lxml.etree.ErrorDomains.WRITER  lxml.etree.ErrorDomains-class.html#WRITER
-lxml.etree.ErrorDomains.TREE    lxml.etree.ErrorDomains-class.html#TREE
-lxml.etree.ErrorDomains.SCHEMASP        lxml.etree.ErrorDomains-class.html#SCHEMASP
-lxml.etree.ErrorDomains.CATALOG lxml.etree.ErrorDomains-class.html#CATALOG
-lxml.etree.ErrorDomains.SCHEMASV        lxml.etree.ErrorDomains-class.html#SCHEMASV
-lxml.etree.ErrorDomains.MEMORY  lxml.etree.ErrorDomains-class.html#MEMORY
-lxml.etree.ErrorDomains.OUTPUT  lxml.etree.ErrorDomains-class.html#OUTPUT
-lxml.etree.ErrorDomains.XPOINTER        lxml.etree.ErrorDomains-class.html#XPOINTER
-lxml.etree.ErrorLevels  lxml.etree.ErrorLevels-class.html
-lxml.etree.ErrorLevels.NONE     lxml.etree.ErrorLevels-class.html#NONE
-lxml.etree.ErrorLevels._names   lxml.etree.ErrorLevels-class.html#_names
-lxml.etree.ErrorLevels.WARNING  lxml.etree.ErrorLevels-class.html#WARNING
-lxml.etree.ErrorLevels.ERROR    lxml.etree.ErrorLevels-class.html#ERROR
-lxml.etree.ErrorLevels.FATAL    lxml.etree.ErrorLevels-class.html#FATAL
-lxml.etree.ErrorLevels._getName lxml.etree.ErrorLevels-class.html#_getName
-lxml.etree.ErrorTypes   lxml.etree.ErrorTypes-class.html
-lxml.etree.ErrorTypes.I18N_CONV_FAILED  lxml.etree.ErrorTypes-class.html#I18N_CONV_FAILED
-lxml.etree.ErrorTypes.SCHEMAP_ATTRFORMDEFAULT_VALUE     lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRFORMDEFAULT_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_NOTATION        lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_NOTATION
-lxml.etree.ErrorTypes.RNGP_EXCEPT_MULTIPLE      lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_MULTIPLE
-lxml.etree.ErrorTypes.SCHEMAP_AU_PROPS_CORRECT_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.IO_EINVAL lxml.etree.ErrorTypes-class.html#IO_EINVAL
-lxml.etree.ErrorTypes.ERR_VERSION_MISMATCH      lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISMATCH
-lxml.etree.ErrorTypes.ERR_ELEMCONTENT_NOT_STARTED       lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_TYPE_AND_SUBTYPE  lxml.etree.ErrorTypes-class.html#SCHEMAP_TYPE_AND_SUBTYPE
-lxml.etree.ErrorTypes.FTP_URL_SYNTAX    lxml.etree.ErrorTypes-class.html#FTP_URL_SYNTAX
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP   lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_USE  lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_USE
-lxml.etree.ErrorTypes.CHECK_WRONG_PREV  lxml.etree.ErrorTypes-class.html#CHECK_WRONG_PREV
-lxml.etree.ErrorTypes.CHECK_NS_SCOPE    lxml.etree.ErrorTypes-class.html#CHECK_NS_SCOPE
-lxml.etree.ErrorTypes.CHECK_NOT_NS_DECL lxml.etree.ErrorTypes-class.html#CHECK_NOT_NS_DECL
-lxml.etree.ErrorTypes.XINCLUDE_XPTR_RESULT      lxml.etree.ErrorTypes-class.html#XINCLUDE_XPTR_RESULT
-lxml.etree.ErrorTypes.ERR_PEREF_IN_EPILOG       lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_EPILOG
-lxml.etree.ErrorTypes.IO_EMLINK lxml.etree.ErrorTypes-class.html#IO_EMLINK
-lxml.etree.ErrorTypes.RNGP_PARAM_NAME_MISSING   lxml.etree.ErrorTypes-class.html#RNGP_PARAM_NAME_MISSING
-lxml.etree.ErrorTypes.WAR_NS_URI_RELATIVE       lxml.etree.ErrorTypes-class.html#WAR_NS_URI_RELATIVE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_2_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_2
-lxml.etree.ErrorTypes.IO_ENFILE lxml.etree.ErrorTypes-class.html#IO_ENFILE
-lxml.etree.ErrorTypes.SCHEMATRONV_ASSERT        lxml.etree.ErrorTypes-class.html#SCHEMATRONV_ASSERT
-lxml.etree.ErrorTypes.FTP_ACCNT lxml.etree.ErrorTypes-class.html#FTP_ACCNT
-lxml.etree.ErrorTypes.RNGP_PAT_START_GROUP      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_GROUP
-lxml.etree.ErrorTypes.SCHEMAV_MISSING   lxml.etree.ErrorTypes-class.html#SCHEMAV_MISSING
-lxml.etree.ErrorTypes.MODULE_OPEN       lxml.etree.ErrorTypes-class.html#MODULE_OPEN
-lxml.etree.ErrorTypes.XPATH_INVALID_OPERAND     lxml.etree.ErrorTypes-class.html#XPATH_INVALID_OPERAND
-lxml.etree.ErrorTypes.CHECK_FOUND_NOTATION      lxml.etree.ErrorTypes-class.html#CHECK_FOUND_NOTATION
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_1_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_1
-lxml.etree.ErrorTypes.ERR_UNPARSED_ENTITY       lxml.etree.ErrorTypes-class.html#ERR_UNPARSED_ENTITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_NOTATION_CHILD    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_NOTATION_CHILD
-lxml.etree.ErrorTypes.CHECK_OUTSIDE_DICT        lxml.etree.ErrorTypes-class.html#CHECK_OUTSIDE_DICT
-lxml.etree.ErrorTypes.SCHEMAV_NOTEMPTY  lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTEMPTY
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_GROUP        lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_GROUP
-lxml.etree.ErrorTypes.ERR_PEREF_SEMICOL_MISSING lxml.etree.ErrorTypes-class.html#ERR_PEREF_SEMICOL_MISSING
-lxml.etree.ErrorTypes.DTD_LOAD_ERROR    lxml.etree.ErrorTypes-class.html#DTD_LOAD_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_BOOLEAN   lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_BOOLEAN
-lxml.etree.ErrorTypes.DTD_NOT_STANDALONE        lxml.etree.ErrorTypes-class.html#DTD_NOT_STANDALONE
-lxml.etree.ErrorTypes.SCHEMAP_ST_PROPS_CORRECT_3        lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_1   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_3   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_2   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ATTRIBUTE_4   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_4
-lxml.etree.ErrorTypes.C14N_INVALID_NODE lxml.etree.ErrorTypes-class.html#C14N_INVALID_NODE
-lxml.etree.ErrorTypes.XPATH_START_LITERAL_ERROR lxml.etree.ErrorTypes-class.html#XPATH_START_LITERAL_ERROR
-lxml.etree.ErrorTypes.RNGP_TEXT_HAS_CHILD       lxml.etree.ErrorTypes-class.html#RNGP_TEXT_HAS_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_WILDCARD      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_WILDCARD
-lxml.etree.ErrorTypes.XPATH_UNDEF_VARIABLE_ERROR        lxml.etree.ErrorTypes-class.html#XPATH_UNDEF_VARIABLE_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ATTR_MISSING  lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_MISSING
-lxml.etree.ErrorTypes.SCHEMAP_INTERNAL  lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERNAL
-lxml.etree.ErrorTypes.RNGP_EXCEPT_MISSING       lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_MISSING
-lxml.etree.ErrorTypes.TREE_INVALID_HEX  lxml.etree.ErrorTypes-class.html#TREE_INVALID_HEX
-lxml.etree.ErrorTypes.RNGP_DEFINE_CREATE_FAILED lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_CREATE_FAILED
-lxml.etree.ErrorTypes.XPATH_ENCODING_ERROR      lxml.etree.ErrorTypes-class.html#XPATH_ENCODING_ERROR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_IDC   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_IDC
-lxml.etree.ErrorTypes.CHECK_NO_ELEM     lxml.etree.ErrorTypes-class.html#CHECK_NO_ELEM
-lxml.etree.ErrorTypes.IO_EXDEV  lxml.etree.ErrorTypes-class.html#IO_EXDEV
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_TYPE      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_TYPE
-lxml.etree.ErrorTypes.ERR_LT_IN_ATTRIBUTE       lxml.etree.ErrorTypes-class.html#ERR_LT_IN_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE      lxml.etree.ErrorTypes-class.html#SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE
-lxml.etree.ErrorTypes.IO_EMFILE lxml.etree.ErrorTypes-class.html#IO_EMFILE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_2_2     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_2_1     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_1
-lxml.etree.ErrorTypes.XINCLUDE_XPTR_FAILED      lxml.etree.ErrorTypes-class.html#XINCLUDE_XPTR_FAILED
-lxml.etree.ErrorTypes.ERR_MISPLACED_CDATA_END   lxml.etree.ErrorTypes-class.html#ERR_MISPLACED_CDATA_END
-lxml.etree.ErrorTypes.RNGP_ELEMENT_NO_CONTENT   lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_NO_CONTENT
-lxml.etree.ErrorTypes.IO_ENOENT lxml.etree.ErrorTypes-class.html#IO_ENOENT
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_NOOP       lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_NOOP
-lxml.etree.ErrorTypes.SCHEMAP_SRC_REDEFINE      lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_REDEFINE
-lxml.etree.ErrorTypes.ERR_CHARREF_IN_PROLOG     lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_PROLOG
-lxml.etree.ErrorTypes.RNGP_REF_NAME_INVALID     lxml.etree.ErrorTypes-class.html#RNGP_REF_NAME_INVALID
-lxml.etree.ErrorTypes.ERR_NOTATION_PROCESSING   lxml.etree.ErrorTypes-class.html#ERR_NOTATION_PROCESSING
-lxml.etree.ErrorTypes.RNGP_INCLUDE_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_INCLUDE_EMPTY
-lxml.etree.ErrorTypes.RNGP_INCLUDE_RECURSE      lxml.etree.ErrorTypes-class.html#RNGP_INCLUDE_RECURSE
-lxml.etree.ErrorTypes.SCHEMAP_ELEM_NONAME_NOREF lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_NONAME_NOREF
-lxml.etree.ErrorTypes.RNGP_EMPTY_CONTENT        lxml.etree.ErrorTypes-class.html#RNGP_EMPTY_CONTENT
-lxml.etree.ErrorTypes.XPTR_EVAL_FAILED  lxml.etree.ErrorTypes-class.html#XPTR_EVAL_FAILED
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_1      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_1
-lxml.etree.ErrorTypes.XPATH_INVALID_CTXT_POSITION       lxml.etree.ErrorTypes-class.html#XPATH_INVALID_CTXT_POSITION
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_3      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_4      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_4
-lxml.etree.ErrorTypes.ERR_INTERNAL_ERROR        lxml.etree.ErrorTypes-class.html#ERR_INTERNAL_ERROR
-lxml.etree.ErrorTypes.ERR_DOCTYPE_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_DOCTYPE_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_PAT_NSNAME_EXCEPT_ANYNAME    lxml.etree.ErrorTypes-class.html#RNGP_PAT_NSNAME_EXCEPT_ANYNAME
-lxml.etree.ErrorTypes.RNGP_EMPTY_NOT_EMPTY      lxml.etree.ErrorTypes-class.html#RNGP_EMPTY_NOT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_NO_XMLNS  lxml.etree.ErrorTypes-class.html#SCHEMAP_NO_XMLNS
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_ATTR        lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_ATTR
-lxml.etree.ErrorTypes.ERR_NO_DTD        lxml.etree.ErrorTypes-class.html#ERR_NO_DTD
-lxml.etree.ErrorTypes.ERR_ENTITY_LOOP   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_LOOP
-lxml.etree.ErrorTypes.IO_EINTR  lxml.etree.ErrorTypes-class.html#IO_EINTR
-lxml.etree.ErrorTypes.ERR_MISSING_ENCODING      lxml.etree.ErrorTypes-class.html#ERR_MISSING_ENCODING
-lxml.etree.ErrorTypes.DTD_STANDALONE_WHITE_SPACE        lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_WHITE_SPACE
-lxml.etree.ErrorTypes.DTD_ENTITY_TYPE   lxml.etree.ErrorTypes-class.html#DTD_ENTITY_TYPE
-lxml.etree.ErrorTypes.IO_ENOTEMPTY      lxml.etree.ErrorTypes-class.html#IO_ENOTEMPTY
-lxml.etree.ErrorTypes.RNGP_REF_NO_NAME  lxml.etree.ErrorTypes-class.html#RNGP_REF_NO_NAME
-lxml.etree.ErrorTypes.XINCLUDE_MULTIPLE_ROOT    lxml.etree.ErrorTypes-class.html#XINCLUDE_MULTIPLE_ROOT
-lxml.etree.ErrorTypes.SCHEMAV_NOTYPE    lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTYPE
-lxml.etree.ErrorTypes.RNGP_ELEMENT_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_EMPTY
-lxml.etree.ErrorTypes.IO_ECANCELED      lxml.etree.ErrorTypes-class.html#IO_ECANCELED
-lxml.etree.ErrorTypes.RNGP_EXCEPT_NO_CONTENT    lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_NO_CONTENT
-lxml.etree.ErrorTypes.WAR_NS_COLUMN     lxml.etree.ErrorTypes-class.html#WAR_NS_COLUMN
-lxml.etree.ErrorTypes.IO_ENOTSOCK       lxml.etree.ErrorTypes-class.html#IO_ENOTSOCK
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_DERIVED_OK_2_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_1
-lxml.etree.ErrorTypes.ERR_URI_FRAGMENT  lxml.etree.ErrorTypes-class.html#ERR_URI_FRAGMENT
-lxml.etree.ErrorTypes.SCHEMAV_NOTNILLABLE       lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTNILLABLE
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_TEXT        lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_TEXT
-lxml.etree.ErrorTypes.SCHEMAV_UNDECLAREDELEM    lxml.etree.ErrorTypes-class.html#SCHEMAV_UNDECLAREDELEM
-lxml.etree.ErrorTypes.SCHEMAP_AG_PROPS_CORRECT  lxml.etree.ErrorTypes-class.html#SCHEMAP_AG_PROPS_CORRECT
-lxml.etree.ErrorTypes.IO_ENOMEM lxml.etree.ErrorTypes-class.html#IO_ENOMEM
-lxml.etree.ErrorTypes.ERR_NOTATION_NOT_STARTED  lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ELEM_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ELEM_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_1       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_3       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_3
-lxml.etree.ErrorTypes.DTD_NO_DOC        lxml.etree.ErrorTypes-class.html#DTD_NO_DOC
-lxml.etree.ErrorTypes.RNGP_TYPE_NOT_FOUND       lxml.etree.ErrorTypes-class.html#RNGP_TYPE_NOT_FOUND
-lxml.etree.ErrorTypes.DTD_NO_ROOT       lxml.etree.ErrorTypes-class.html#DTD_NO_ROOT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTRGRP_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRGRP_CHILD
-lxml.etree.ErrorTypes.IO_EACCES lxml.etree.ErrorTypes-class.html#IO_EACCES
-lxml.etree.ErrorTypes._names    lxml.etree.ErrorTypes-class.html#_names
-lxml.etree.ErrorTypes.SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES      lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES
-lxml.etree.ErrorTypes.ERR_RESERVED_XML_NAME     lxml.etree.ErrorTypes-class.html#ERR_RESERVED_XML_NAME
-lxml.etree.ErrorTypes.RNGP_TEXT_EXPECTED        lxml.etree.ErrorTypes-class.html#RNGP_TEXT_EXPECTED
-lxml.etree.ErrorTypes.RNGP_CHOICE_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_CHOICE_EMPTY
-lxml.etree.ErrorTypes.ERR_TAG_NOT_FINISHED      lxml.etree.ErrorTypes-class.html#ERR_TAG_NOT_FINISHED
-lxml.etree.ErrorTypes.CHECK_FOUND_TEXT  lxml.etree.ErrorTypes-class.html#CHECK_FOUND_TEXT
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NO_NAME    lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NO_NAME
-lxml.etree.ErrorTypes.RNGP_PAT_ONEMORE_GROUP_ATTR       lxml.etree.ErrorTypes-class.html#RNGP_PAT_ONEMORE_GROUP_ATTR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ENUMERATION_VALID     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ENUMERATION_VALID
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_RESTRICTION_CHILD lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_RESTRICTION_CHILD
-lxml.etree.ErrorTypes.DTD_ELEM_REDEFINED        lxml.etree.ErrorTypes-class.html#DTD_ELEM_REDEFINED
-lxml.etree.ErrorTypes.RNGP_MISSING_HREF lxml.etree.ErrorTypes-class.html#RNGP_MISSING_HREF
-lxml.etree.ErrorTypes.IO_ERANGE lxml.etree.ErrorTypes-class.html#IO_ERANGE
-lxml.etree.ErrorTypes.HTTP_UNKNOWN_HOST lxml.etree.ErrorTypes-class.html#HTTP_UNKNOWN_HOST
-lxml.etree.ErrorTypes.RNGP_PAT_START_ATTR       lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_ATTR
-lxml.etree.ErrorTypes.SCHEMAP_NOTATION_NO_NAME  lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTATION_NO_NAME
-lxml.etree.ErrorTypes.NS_ERR_COLON      lxml.etree.ErrorTypes-class.html#NS_ERR_COLON
-lxml.etree.ErrorTypes.ERR_PEREF_IN_INT_SUBSET   lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_INT_SUBSET
-lxml.etree.ErrorTypes.RNGP_VALUE_EMPTY  lxml.etree.ErrorTypes-class.html#RNGP_VALUE_EMPTY
-lxml.etree.ErrorTypes.WAR_UNKNOWN_VERSION       lxml.etree.ErrorTypes-class.html#WAR_UNKNOWN_VERSION
-lxml.etree.ErrorTypes.SCHEMAV_ISABSTRACT        lxml.etree.ErrorTypes-class.html#SCHEMAV_ISABSTRACT
-lxml.etree.ErrorTypes.IO_EMSGSIZE       lxml.etree.ErrorTypes-class.html#IO_EMSGSIZE
-lxml.etree.ErrorTypes.CATALOG_ENTRY_BROKEN      lxml.etree.ErrorTypes-class.html#CATALOG_ENTRY_BROKEN
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_1_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_2
-lxml.etree.ErrorTypes.RNGP_CREATE_FAILURE       lxml.etree.ErrorTypes-class.html#RNGP_CREATE_FAILURE
-lxml.etree.ErrorTypes.ERR_NAME_REQUIRED lxml.etree.ErrorTypes-class.html#ERR_NAME_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ATTR_NOT_ALLOWED      lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_NOT_ALLOWED
-lxml.etree.ErrorTypes.ERR_ATTLIST_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_FINISHED
-lxml.etree.ErrorTypes._getName  lxml.etree.ErrorTypes-class.html#_getName
-lxml.etree.ErrorTypes.XPTR_EXTRA_OBJECTS        lxml.etree.ErrorTypes-class.html#XPTR_EXTRA_OBJECTS
-lxml.etree.ErrorTypes.IO_EISCONN        lxml.etree.ErrorTypes-class.html#IO_EISCONN
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_CHOICE_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_CHOICE_CHILD
-lxml.etree.ErrorTypes.ERR_PUBID_REQUIRED        lxml.etree.ErrorTypes-class.html#ERR_PUBID_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_NOTHING_TO_PARSE  lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTHING_TO_PARSE
-lxml.etree.ErrorTypes.RNGP_NOTALLOWED_NOT_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_NOTALLOWED_NOT_EMPTY
-lxml.etree.ErrorTypes.RNGP_REF_NOT_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_REF_NOT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_DEF_AND_PREFIX    lxml.etree.ErrorTypes-class.html#SCHEMAP_DEF_AND_PREFIX
-lxml.etree.ErrorTypes.ERR_NOTATION_NOT_FINISHED lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_CHILDREN   lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_CHILDREN
-lxml.etree.ErrorTypes.RNGP_PAT_START_DATA       lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_DATA
-lxml.etree.ErrorTypes.RNGP_ELEMENT_NAME lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_NAME
-lxml.etree.ErrorTypes.XPATH_UNKNOWN_FUNC_ERROR  lxml.etree.ErrorTypes-class.html#XPATH_UNKNOWN_FUNC_ERROR
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_INTERLEAVE   lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_INTERLEAVE
-lxml.etree.ErrorTypes.ERR_VERSION_MISSING       lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISSING
-lxml.etree.ErrorTypes.RNGP_DEFINE_MISSING       lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_MISSING
-lxml.etree.ErrorTypes.CATALOG_NOT_CATALOG       lxml.etree.ErrorTypes-class.html#CATALOG_NOT_CATALOG
-lxml.etree.ErrorTypes.XINCLUDE_TEXT_DOCUMENT    lxml.etree.ErrorTypes-class.html#XINCLUDE_TEXT_DOCUMENT
-lxml.etree.ErrorTypes.DTD_NO_ELEM_NAME  lxml.etree.ErrorTypes-class.html#DTD_NO_ELEM_NAME
-lxml.etree.ErrorTypes.ERR_UNSUPPORTED_ENCODING  lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING
-lxml.etree.ErrorTypes.ERR_ENTITY_NOT_STARTED    lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAV_ATTRUNKNOWN       lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRUNKNOWN
-lxml.etree.ErrorTypes.DTD_ELEM_DEFAULT_NAMESPACE        lxml.etree.ErrorTypes-class.html#DTD_ELEM_DEFAULT_NAMESPACE
-lxml.etree.ErrorTypes.IO_EDOM   lxml.etree.ErrorTypes-class.html#IO_EDOM
-lxml.etree.ErrorTypes.ERR_NO_MEMORY     lxml.etree.ErrorTypes-class.html#ERR_NO_MEMORY
-lxml.etree.ErrorTypes.RNGP_GROUP_ATTR_CONFLICT  lxml.etree.ErrorTypes-class.html#RNGP_GROUP_ATTR_CONFLICT
-lxml.etree.ErrorTypes.FTP_EPSV_ANSWER   lxml.etree.ErrorTypes-class.html#FTP_EPSV_ANSWER
-lxml.etree.ErrorTypes.IO_ENOTTY lxml.etree.ErrorTypes-class.html#IO_ENOTTY
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_1_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_1
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_1_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_2
-lxml.etree.ErrorTypes.IO_EFAULT lxml.etree.ErrorTypes-class.html#IO_EFAULT
-lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_1
-lxml.etree.ErrorTypes.SCHEMAV_ELEMCONT  lxml.etree.ErrorTypes-class.html#SCHEMAV_ELEMCONT
-lxml.etree.ErrorTypes.IO_ECHILD lxml.etree.ErrorTypes-class.html#IO_ECHILD
-lxml.etree.ErrorTypes.ERR_VALUE_REQUIRED        lxml.etree.ErrorTypes-class.html#ERR_VALUE_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_2_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_1
-lxml.etree.ErrorTypes.ERR_PCDATA_REQUIRED       lxml.etree.ErrorTypes-class.html#ERR_PCDATA_REQUIRED
-lxml.etree.ErrorTypes.RNGP_PAT_START_TEXT       lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_TEXT
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_3_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_1
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_3_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_2
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_CREATE_FAILED     lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_CREATE_FAILED
-lxml.etree.ErrorTypes.CHECK_WRONG_NAME  lxml.etree.ErrorTypes-class.html#CHECK_WRONG_NAME
-lxml.etree.ErrorTypes.XPATH_INVALID_CHAR_ERROR  lxml.etree.ErrorTypes-class.html#XPATH_INVALID_CHAR_ERROR
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ID    lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ID
-lxml.etree.ErrorTypes.ERR_INVALID_HEX_CHARREF   lxml.etree.ErrorTypes-class.html#ERR_INVALID_HEX_CHARREF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MAXLENGTH_VALID       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXLENGTH_VALID
-lxml.etree.ErrorTypes.ERR_ENTITY_CHAR_ERROR     lxml.etree.ErrorTypes-class.html#ERR_ENTITY_CHAR_ERROR
-lxml.etree.ErrorTypes.DTD_ID_SUBSET     lxml.etree.ErrorTypes-class.html#DTD_ID_SUBSET
-lxml.etree.ErrorTypes.IO_LOAD_ERROR     lxml.etree.ErrorTypes-class.html#IO_LOAD_ERROR
-lxml.etree.ErrorTypes.ERR_INVALID_ENCODING      lxml.etree.ErrorTypes-class.html#ERR_INVALID_ENCODING
-lxml.etree.ErrorTypes.SCHEMAP_COS_ALL_LIMITED   lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ALL_LIMITED
-lxml.etree.ErrorTypes.IO_EIO    lxml.etree.ErrorTypes-class.html#IO_EIO
-lxml.etree.ErrorTypes.RNGP_DEFINE_NAME_MISSING  lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_NAME_MISSING
-lxml.etree.ErrorTypes.IO_ENOTDIR        lxml.etree.ErrorTypes-class.html#IO_ENOTDIR
-lxml.etree.ErrorTypes.XINCLUDE_TEXT_FRAGMENT    lxml.etree.ErrorTypes-class.html#XINCLUDE_TEXT_FRAGMENT
-lxml.etree.ErrorTypes.SCHEMAP_MISSING_SIMPLETYPE_CHILD  lxml.etree.ErrorTypes-class.html#SCHEMAP_MISSING_SIMPLETYPE_CHILD
-lxml.etree.ErrorTypes.DTD_NOT_PCDATA    lxml.etree.ErrorTypes-class.html#DTD_NOT_PCDATA
-lxml.etree.ErrorTypes.ERR_INVALID_URI   lxml.etree.ErrorTypes-class.html#ERR_INVALID_URI
-lxml.etree.ErrorTypes.SCHEMAV_VALUE     lxml.etree.ErrorTypes-class.html#SCHEMAV_VALUE
-lxml.etree.ErrorTypes.XPATH_INVALID_PREDICATE_ERROR     lxml.etree.ErrorTypes-class.html#XPATH_INVALID_PREDICATE_ERROR
-lxml.etree.ErrorTypes.IO_ENOEXEC        lxml.etree.ErrorTypes-class.html#IO_ENOEXEC
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_NO_START     lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_NO_START
-lxml.etree.ErrorTypes.ERR_XMLDECL_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_REF_NO_DEF   lxml.etree.ErrorTypes-class.html#RNGP_REF_NO_DEF
-lxml.etree.ErrorTypes.RNGP_NEED_COMBINE lxml.etree.ErrorTypes-class.html#RNGP_NEED_COMBINE
-lxml.etree.ErrorTypes.ERR_STANDALONE_VALUE      lxml.etree.ErrorTypes-class.html#ERR_STANDALONE_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_NAME lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_NAME
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_4        lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_4
-lxml.etree.ErrorTypes.IO_ENOSYS lxml.etree.ErrorTypes-class.html#IO_ENOSYS
-lxml.etree.ErrorTypes.SCHEMAP_ELEMFORMDEFAULT_VALUE     lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEMFORMDEFAULT_VALUE
-lxml.etree.ErrorTypes.ERR_STRING_NOT_CLOSED     lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_CLOSED
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_3        lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_AU    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_AU
-lxml.etree.ErrorTypes.RNGP_FORBIDDEN_ATTRIBUTE  lxml.etree.ErrorTypes-class.html#RNGP_FORBIDDEN_ATTRIBUTE
-lxml.etree.ErrorTypes.ERR_PI_NOT_FINISHED       lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_FINISHED
-lxml.etree.ErrorTypes.XPATH_EXPR_ERROR  lxml.etree.ErrorTypes-class.html#XPATH_EXPR_ERROR
-lxml.etree.ErrorTypes.RNGP_NSNAME_NO_NS lxml.etree.ErrorTypes-class.html#RNGP_NSNAME_NO_NS
-lxml.etree.ErrorTypes.NS_ERR_EMPTY      lxml.etree.ErrorTypes-class.html#NS_ERR_EMPTY
-lxml.etree.ErrorTypes.ERR_HYPHEN_IN_COMMENT     lxml.etree.ErrorTypes-class.html#ERR_HYPHEN_IN_COMMENT
-lxml.etree.ErrorTypes.XPATH_NUMBER_ERROR        lxml.etree.ErrorTypes-class.html#XPATH_NUMBER_ERROR
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NOT_EMPTY  lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NOT_EMPTY
-lxml.etree.ErrorTypes.ERR_PI_NOT_STARTED        lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_STARTED
-lxml.etree.ErrorTypes.RNGP_TYPE_MISSING lxml.etree.ErrorTypes-class.html#RNGP_TYPE_MISSING
-lxml.etree.ErrorTypes.IO_EPERM  lxml.etree.ErrorTypes-class.html#IO_EPERM
-lxml.etree.ErrorTypes.ERR_COMMENT_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_COMMENT_NOT_FINISHED
-lxml.etree.ErrorTypes.DTD_CONTENT_ERROR lxml.etree.ErrorTypes-class.html#DTD_CONTENT_ERROR
-lxml.etree.ErrorTypes.DTD_NOTATION_VALUE        lxml.etree.ErrorTypes-class.html#DTD_NOTATION_VALUE
-lxml.etree.ErrorTypes.RNGP_URI_NOT_ABSOLUTE     lxml.etree.ErrorTypes-class.html#RNGP_URI_NOT_ABSOLUTE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_3_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_1
-lxml.etree.ErrorTypes.XPATH_VARIABLE_REF_ERROR  lxml.etree.ErrorTypes-class.html#XPATH_VARIABLE_REF_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_3_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_2
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_EMPTY     lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_EMPTY
-lxml.etree.ErrorTypes.C14N_UNKNOW_NODE  lxml.etree.ErrorTypes-class.html#C14N_UNKNOW_NODE
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_MAXOCCURS lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MAXOCCURS
-lxml.etree.ErrorTypes.SCHEMAV_NOTTOPLEVEL       lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTTOPLEVEL
-lxml.etree.ErrorTypes.SCHEMAP_WILDCARD_INVALID_NS_MEMBER        lxml.etree.ErrorTypes-class.html#SCHEMAP_WILDCARD_INVALID_NS_MEMBER
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_LIST_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_LIST_CHILD
-lxml.etree.ErrorTypes.WAR_LANG_VALUE    lxml.etree.ErrorTypes-class.html#WAR_LANG_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_4_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_1
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_4_2     lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_2
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_4_3     lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_3
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_PREFIX    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PREFIX
-lxml.etree.ErrorTypes.ERR_STRING_NOT_STARTED    lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_RECURSIVE lxml.etree.ErrorTypes-class.html#SCHEMAP_RECURSIVE
-lxml.etree.ErrorTypes.CHECK_ENTITY_TYPE lxml.etree.ErrorTypes-class.html#CHECK_ENTITY_TYPE
-lxml.etree.ErrorTypes.RNGP_EMPTY_CONSTRUCT      lxml.etree.ErrorTypes-class.html#RNGP_EMPTY_CONSTRUCT
-lxml.etree.ErrorTypes.RNGP_CHOICE_CONTENT       lxml.etree.ErrorTypes-class.html#RNGP_CHOICE_CONTENT
-lxml.etree.ErrorTypes.XINCLUDE_RECURSION        lxml.etree.ErrorTypes-class.html#XINCLUDE_RECURSION
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_INCLUDE_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_INCLUDE_CHILD
-lxml.etree.ErrorTypes.ERR_ENTITY_NOT_FINISHED   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_FINISHED
-lxml.etree.ErrorTypes.IO_ENAMETOOLONG   lxml.etree.ErrorTypes-class.html#IO_ENAMETOOLONG
-lxml.etree.ErrorTypes.DTD_EMPTY_NOTATION        lxml.etree.ErrorTypes-class.html#DTD_EMPTY_NOTATION
-lxml.etree.ErrorTypes.ERR_EXT_SUBSET_NOT_FINISHED       lxml.etree.ErrorTypes-class.html#ERR_EXT_SUBSET_NOT_FINISHED
-lxml.etree.ErrorTypes.SCHEMAP_REGEXP_INVALID    lxml.etree.ErrorTypes-class.html#SCHEMAP_REGEXP_INVALID
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MINEXCLUSIVE_VALID    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINEXCLUSIVE_VALID
-lxml.etree.ErrorTypes.RNGP_PREFIX_UNDEFINED     lxml.etree.ErrorTypes-class.html#RNGP_PREFIX_UNDEFINED
-lxml.etree.ErrorTypes.DTD_CONTENT_MODEL lxml.etree.ErrorTypes-class.html#DTD_CONTENT_MODEL
-lxml.etree.ErrorTypes.ERR_ENTITY_PROCESSING     lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PROCESSING
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_TEXT lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_TEXT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_4   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_4
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_2
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_1
-lxml.etree.ErrorTypes.SCHEMAP_INCLUDE_SCHEMA_NO_URI     lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NO_URI
-lxml.etree.ErrorTypes.CHECK_X   lxml.etree.ErrorTypes-class.html#CHECK_X
-lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_2
-lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_3        lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_1       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_1
-lxml.etree.ErrorTypes.DTD_CONTENT_NOT_DETERMINIST       lxml.etree.ErrorTypes-class.html#DTD_CONTENT_NOT_DETERMINIST
-lxml.etree.ErrorTypes.SCHEMAV_NOROLLBACK        lxml.etree.ErrorTypes-class.html#SCHEMAV_NOROLLBACK
-lxml.etree.ErrorTypes.ERR_DOCUMENT_END  lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_END
-lxml.etree.ErrorTypes.ERR_ENTITYREF_IN_EPILOG   lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_EPILOG
-lxml.etree.ErrorTypes.XINCLUDE_INVALID_CHAR     lxml.etree.ErrorTypes-class.html#XINCLUDE_INVALID_CHAR
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_FACET_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_CHILD
-lxml.etree.ErrorTypes.RNGP_DEFINE_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_EMPTY
-lxml.etree.ErrorTypes.RNGP_PAT_ATTR_ELEM        lxml.etree.ErrorTypes-class.html#RNGP_PAT_ATTR_ELEM
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_INLINE_COMBINATION   lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_INLINE_COMBINATION
-lxml.etree.ErrorTypes.RNGP_PAT_START_INTERLEAVE lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_INTERLEAVE
-lxml.etree.ErrorTypes.I18N_EXCESS_HANDLER       lxml.etree.ErrorTypes-class.html#I18N_EXCESS_HANDLER
-lxml.etree.ErrorTypes.IO_ENETUNREACH    lxml.etree.ErrorTypes-class.html#IO_ENETUNREACH
-lxml.etree.ErrorTypes.RNGP_INVALID_VALUE        lxml.etree.ErrorTypes-class.html#RNGP_INVALID_VALUE
-lxml.etree.ErrorTypes.IO_NO_INPUT       lxml.etree.ErrorTypes-class.html#IO_NO_INPUT
-lxml.etree.ErrorTypes.RNGP_PAT_START_LIST       lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_LIST
-lxml.etree.ErrorTypes.SCHEMAP_P_PROPS_CORRECT_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_NOT_STARTED lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_STARTED
-lxml.etree.ErrorTypes.CHECK_NOT_ATTR    lxml.etree.ErrorTypes-class.html#CHECK_NOT_ATTR
-lxml.etree.ErrorTypes.CHECK_NOT_ENTITY_DECL     lxml.etree.ErrorTypes-class.html#CHECK_NOT_ENTITY_DECL
-lxml.etree.ErrorTypes.ERR_ENTITYREF_IN_PROLOG   lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_PROLOG
-lxml.etree.ErrorTypes.ERR_PEREF_NO_NAME lxml.etree.ErrorTypes-class.html#ERR_PEREF_NO_NAME
-lxml.etree.ErrorTypes.RNGP_FOREIGN_ELEMENT      lxml.etree.ErrorTypes-class.html#RNGP_FOREIGN_ELEMENT
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_2     lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_2
-lxml.etree.ErrorTypes.CHECK_NOT_ATTR_DECL       lxml.etree.ErrorTypes-class.html#CHECK_NOT_ATTR_DECL
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_FACET_TYPE        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_TYPE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_2      lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_2
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_3  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_3
-lxml.etree.ErrorTypes.XINCLUDE_HREF_URI lxml.etree.ErrorTypes-class.html#XINCLUDE_HREF_URI
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_1
-lxml.etree.ErrorTypes.ERR_SEPARATOR_REQUIRED    lxml.etree.ErrorTypes-class.html#ERR_SEPARATOR_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_4  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_4
-lxml.etree.ErrorTypes.FTP_PASV_ANSWER   lxml.etree.ErrorTypes-class.html#FTP_PASV_ANSWER
-lxml.etree.ErrorTypes.SAVE_NO_DOCTYPE   lxml.etree.ErrorTypes-class.html#SAVE_NO_DOCTYPE
-lxml.etree.ErrorTypes.DTD_NO_PREFIX     lxml.etree.ErrorTypes-class.html#DTD_NO_PREFIX
-lxml.etree.ErrorTypes.ERR_MIXED_NOT_STARTED     lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_STARTED
-lxml.etree.ErrorTypes.ERR_ENTITYREF_SEMICOL_MISSING     lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_SEMICOL_MISSING
-lxml.etree.ErrorTypes.ERR_CONDSEC_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_FINISHED
-lxml.etree.ErrorTypes.RNGP_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_EMPTY
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NO_PARENT  lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NO_PARENT
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_ELEM lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_ELEM
-lxml.etree.ErrorTypes.WAR_SPACE_VALUE   lxml.etree.ErrorTypes-class.html#WAR_SPACE_VALUE
-lxml.etree.ErrorTypes.ERR_MIXED_NOT_FINISHED    lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_FINISHED
-lxml.etree.ErrorTypes.SCHEMAP_WARN_ATTR_POINTLESS_PROH  lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_POINTLESS_PROH
-lxml.etree.ErrorTypes.RNGP_START_CONTENT        lxml.etree.ErrorTypes-class.html#RNGP_START_CONTENT
-lxml.etree.ErrorTypes.RNGP_DEF_CHOICE_AND_INTERLEAVE    lxml.etree.ErrorTypes-class.html#RNGP_DEF_CHOICE_AND_INTERLEAVE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MAXINCLUSIVE_VALID    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXINCLUSIVE_VALID
-lxml.etree.ErrorTypes.CATALOG_MISSING_ATTR      lxml.etree.ErrorTypes-class.html#CATALOG_MISSING_ATTR
-lxml.etree.ErrorTypes.SCHEMAV_CONSTRUCT lxml.etree.ErrorTypes-class.html#SCHEMAV_CONSTRUCT
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_REDEFINED   lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_REDEFINED
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_REF       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_REF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MAXEXCLUSIVE_VALID    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXEXCLUSIVE_VALID
-lxml.etree.ErrorTypes.RNGP_ANYNAME_ATTR_ANCESTOR        lxml.etree.ErrorTypes-class.html#RNGP_ANYNAME_ATTR_ANCESTOR
-lxml.etree.ErrorTypes.DTD_DIFFERENT_PREFIX      lxml.etree.ErrorTypes-class.html#DTD_DIFFERENT_PREFIX
-lxml.etree.ErrorTypes.RNGP_EXTERNAL_REF_FAILURE lxml.etree.ErrorTypes-class.html#RNGP_EXTERNAL_REF_FAILURE
-lxml.etree.ErrorTypes.CATALOG_PREFER_VALUE      lxml.etree.ErrorTypes-class.html#CATALOG_PREFER_VALUE
-lxml.etree.ErrorTypes.XPTR_RESOURCE_ERROR       lxml.etree.ErrorTypes-class.html#XPTR_RESOURCE_ERROR
-lxml.etree.ErrorTypes.DTD_ATTRIBUTE_REDEFINED   lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_REDEFINED
-lxml.etree.ErrorTypes.XPATH_MEMORY_ERROR        lxml.etree.ErrorTypes-class.html#XPATH_MEMORY_ERROR
-lxml.etree.ErrorTypes.IO_EBADMSG        lxml.etree.ErrorTypes-class.html#IO_EBADMSG
-lxml.etree.ErrorTypes.IO_ENCODER        lxml.etree.ErrorTypes-class.html#IO_ENCODER
-lxml.etree.ErrorTypes.RNGP_ELEM_TEXT_CONFLICT   lxml.etree.ErrorTypes-class.html#RNGP_ELEM_TEXT_CONFLICT
-lxml.etree.ErrorTypes.ERR_INVALID_CHARREF       lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHARREF
-lxml.etree.ErrorTypes.SCHEMAP_ST_PROPS_CORRECT_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.SCHEMAP_ST_PROPS_CORRECT_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.ERR_ENTITYREF_IN_DTD      lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_DTD
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ATTR_INVALID_VALUE    lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_INVALID_VALUE
-lxml.etree.ErrorTypes.RNGP_INVALID_URI  lxml.etree.ErrorTypes-class.html#RNGP_INVALID_URI
-lxml.etree.ErrorTypes.RNGP_XMLNS_NAME   lxml.etree.ErrorTypes-class.html#RNGP_XMLNS_NAME
-lxml.etree.ErrorTypes.IO_ESPIPE lxml.etree.ErrorTypes-class.html#IO_ESPIPE
-lxml.etree.ErrorTypes.CHECK_FOUND_ENTITY        lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ENTITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_EMPTY
-lxml.etree.ErrorTypes.RNGP_REF_CREATE_FAILED    lxml.etree.ErrorTypes-class.html#RNGP_REF_CREATE_FAILED
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3   lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3
-lxml.etree.ErrorTypes.ERR_CDATA_NOT_FINISHED    lxml.etree.ErrorTypes-class.html#ERR_CDATA_NOT_FINISHED
-lxml.etree.ErrorTypes.ERR_LTSLASH_REQUIRED      lxml.etree.ErrorTypes-class.html#ERR_LTSLASH_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAV_NOTDETERMINIST    lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTDETERMINIST
-lxml.etree.ErrorTypes.IO_FLUSH  lxml.etree.ErrorTypes-class.html#IO_FLUSH
-lxml.etree.ErrorTypes.ERR_CHARREF_AT_EOF        lxml.etree.ErrorTypes-class.html#ERR_CHARREF_AT_EOF
-lxml.etree.ErrorTypes.HTML_STRUCURE_ERROR       lxml.etree.ErrorTypes-class.html#HTML_STRUCURE_ERROR
-lxml.etree.ErrorTypes.IO_EBADF  lxml.etree.ErrorTypes-class.html#IO_EBADF
-lxml.etree.ErrorTypes.SCHEMAP_ATTR_NONAME_NOREF lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTR_NONAME_NOREF
-lxml.etree.ErrorTypes.SCHEMAP_FAILED_BUILD_IMPORT       lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_BUILD_IMPORT
-lxml.etree.ErrorTypes.CHECK_WRONG_PARENT        lxml.etree.ErrorTypes-class.html#CHECK_WRONG_PARENT
-lxml.etree.ErrorTypes.DTD_NOTATION_REDEFINED    lxml.etree.ErrorTypes-class.html#DTD_NOTATION_REDEFINED
-lxml.etree.ErrorTypes.ERR_ATTLIST_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_STARTED
-lxml.etree.ErrorTypes.XPATH_UNCLOSED_ERROR      lxml.etree.ErrorTypes-class.html#XPATH_UNCLOSED_ERROR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_2 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_2
-lxml.etree.ErrorTypes.RNGP_PAT_NSNAME_EXCEPT_NSNAME     lxml.etree.ErrorTypes-class.html#RNGP_PAT_NSNAME_EXCEPT_NSNAME
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_1 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_6 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_6
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_7 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_7
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_2_2_1 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_2_2    lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_2_2_2 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_2
-lxml.etree.ErrorTypes.RNGP_ELEMENT_CONTENT      lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_CONTENT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTR_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTR_CHILD
-lxml.etree.ErrorTypes.ERR_CONDSEC_INVALID_KEYWORD       lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID_KEYWORD
-lxml.etree.ErrorTypes.RNGP_START_EMPTY  lxml.etree.ErrorTypes-class.html#RNGP_START_EMPTY
-lxml.etree.ErrorTypes.IO_EAGAIN lxml.etree.ErrorTypes-class.html#IO_EAGAIN
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MININCLUSIVE_VALID    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MININCLUSIVE_VALID
-lxml.etree.ErrorTypes.SCHEMAV_ELEMENT_CONTENT   lxml.etree.ErrorTypes-class.html#SCHEMAV_ELEMENT_CONTENT
-lxml.etree.ErrorTypes.XINCLUDE_FRAGMENT_ID      lxml.etree.ErrorTypes-class.html#XINCLUDE_FRAGMENT_ID
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_3_2_5  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_5
-lxml.etree.ErrorTypes.I18N_NO_NAME      lxml.etree.ErrorTypes-class.html#I18N_NO_NAME
-lxml.etree.ErrorTypes.SCHEMAP_IMPORT_SCHEMA_NOT_URI     lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_SCHEMA_NOT_URI
-lxml.etree.ErrorTypes.NS_ERR_QNAME      lxml.etree.ErrorTypes-class.html#NS_ERR_QNAME
-lxml.etree.ErrorTypes.SCHEMAP_UNION_NOT_EXPRESSIBLE     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNION_NOT_EXPRESSIBLE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_CT_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_CT_1
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_REF lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_REF
-lxml.etree.ErrorTypes.SCHEMAP_IMPORT_REDEFINE_NSNAME    lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_REDEFINE_NSNAME
-lxml.etree.ErrorTypes.SCHEMAV_ATTRINVALID       lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRINVALID
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_ATTR lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_ATTR
-lxml.etree.ErrorTypes.IO_ESRCH  lxml.etree.ErrorTypes-class.html#IO_ESRCH
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ELEM  lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ELEM
-lxml.etree.ErrorTypes.XINCLUDE_DEPRECATED_NS    lxml.etree.ErrorTypes-class.html#XINCLUDE_DEPRECATED_NS
-lxml.etree.ErrorTypes.ERR_CHARREF_IN_EPILOG     lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_EPILOG
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_TYPE_LIB     lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_TYPE_LIB
-lxml.etree.ErrorTypes.ERR_NMTOKEN_REQUIRED      lxml.etree.ErrorTypes-class.html#ERR_NMTOKEN_REQUIRED
-lxml.etree.ErrorTypes.DTD_NOT_EMPTY     lxml.etree.ErrorTypes-class.html#DTD_NOT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_2_1      lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_1
-lxml.etree.ErrorTypes.ERR_PEREF_IN_PROLOG       lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_PROLOG
-lxml.etree.ErrorTypes.SCHEMAP_NOT_DETERMINISTIC lxml.etree.ErrorTypes-class.html#SCHEMAP_NOT_DETERMINISTIC
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_6 lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_6
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_5 lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_5
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_4 lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_4
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_3 lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.SCHEMAP_E_PROPS_CORRECT_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.IO_EROFS  lxml.etree.ErrorTypes-class.html#IO_EROFS
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_ONEMORE      lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_ONEMORE
-lxml.etree.ErrorTypes.SCHEMAP_IMPORT_NAMESPACE_NOT_URI  lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_NAMESPACE_NOT_URI
-lxml.etree.ErrorTypes.SCHEMAP_FAILED_PARSE      lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_PARSE
-lxml.etree.ErrorTypes.XPTR_SYNTAX_ERROR lxml.etree.ErrorTypes-class.html#XPTR_SYNTAX_ERROR
-lxml.etree.ErrorTypes.MODULE_CLOSE      lxml.etree.ErrorTypes-class.html#MODULE_CLOSE
-lxml.etree.ErrorTypes.CHECK_NO_PARENT   lxml.etree.ErrorTypes-class.html#CHECK_NO_PARENT
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_GROUP   lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_GROUP
-lxml.etree.ErrorTypes.IO_EEXIST lxml.etree.ErrorTypes-class.html#IO_EEXIST
-lxml.etree.ErrorTypes.REGEXP_COMPILE_ERROR      lxml.etree.ErrorTypes-class.html#REGEXP_COMPILE_ERROR
-lxml.etree.ErrorTypes.CATALOG_RECURSION lxml.etree.ErrorTypes-class.html#CATALOG_RECURSION
-lxml.etree.ErrorTypes.WAR_CATALOG_PI    lxml.etree.ErrorTypes-class.html#WAR_CATALOG_PI
-lxml.etree.ErrorTypes.ERR_ELEMCONTENT_NOT_FINISHED      lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_FINISHED
-lxml.etree.ErrorTypes.ERR_LT_REQUIRED   lxml.etree.ErrorTypes-class.html#ERR_LT_REQUIRED
-lxml.etree.ErrorTypes.RNGP_PARSE_ERROR  lxml.etree.ErrorTypes-class.html#RNGP_PARSE_ERROR
-lxml.etree.ErrorTypes.RNGP_HREF_ERROR   lxml.etree.ErrorTypes-class.html#RNGP_HREF_ERROR
-lxml.etree.ErrorTypes.RNGP_START_MISSING        lxml.etree.ErrorTypes-class.html#RNGP_START_MISSING
-lxml.etree.ErrorTypes.ERR_EXT_ENTITY_STANDALONE lxml.etree.ErrorTypes-class.html#ERR_EXT_ENTITY_STANDALONE
-lxml.etree.ErrorTypes.ERR_ENTITY_IS_PARAMETER   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_PARAMETER
-lxml.etree.ErrorTypes.RNGP_URI_FRAGMENT lxml.etree.ErrorTypes-class.html#RNGP_URI_FRAGMENT
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_1_2     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_2
-lxml.etree.ErrorTypes.ERR_XMLDECL_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_STARTED
-lxml.etree.ErrorTypes.XINCLUDE_NO_HREF  lxml.etree.ErrorTypes-class.html#XINCLUDE_NO_HREF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_1_1     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_1
-lxml.etree.ErrorTypes.CHECK_FOUND_ATTRIBUTE     lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAP_SIMPLETYPE_NONAME lxml.etree.ErrorTypes-class.html#SCHEMAP_SIMPLETYPE_NONAME
-lxml.etree.ErrorTypes.SCHEMAP_SRC_INCLUDE       lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_INCLUDE
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_ADD       lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_ADD
-lxml.etree.ErrorTypes.CHECK_NO_HREF     lxml.etree.ErrorTypes-class.html#CHECK_NO_HREF
-lxml.etree.ErrorTypes.RNGP_TYPE_VALUE   lxml.etree.ErrorTypes-class.html#RNGP_TYPE_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_EXTENSION_NO_BASE lxml.etree.ErrorTypes-class.html#SCHEMAP_EXTENSION_NO_BASE
-lxml.etree.ErrorTypes.RNGP_PAT_ANYNAME_EXCEPT_ANYNAME   lxml.etree.ErrorTypes-class.html#RNGP_PAT_ANYNAME_EXCEPT_ANYNAME
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_TYPE    lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_TYPE
-lxml.etree.ErrorTypes.ERR_ENTITYREF_AT_EOF      lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_AT_EOF
-lxml.etree.ErrorTypes.C14N_CREATE_CTXT  lxml.etree.ErrorTypes-class.html#C14N_CREATE_CTXT
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_3  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_3
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_2
-lxml.etree.ErrorTypes.RNGP_PAT_START_ONEMORE    lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_ONEMORE
-lxml.etree.ErrorTypes.ERR_ENTITY_BOUNDARY       lxml.etree.ErrorTypes-class.html#ERR_ENTITY_BOUNDARY
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_5  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_5
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_4  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_4
-lxml.etree.ErrorTypes.ERR_UNKNOWN_ENCODING      lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING
-lxml.etree.ErrorTypes.HTML_UNKNOWN_TAG  lxml.etree.ErrorTypes-class.html#HTML_UNKNOWN_TAG
-<a href="#id1"><span class="problematic" id="id2">lxml.etree.ErrorTypes.CHECK_</span></a>    lxml.etree.ErrorTypes-class.html#CHECK_
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_REF_AND_SUBTYPE   lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_REF_AND_SUBTYPE
-lxml.etree.ErrorTypes.DTD_INVALID_DEFAULT       lxml.etree.ErrorTypes-class.html#DTD_INVALID_DEFAULT
-lxml.etree.ErrorTypes.C14N_RELATIVE_NAMESPACE   lxml.etree.ErrorTypes-class.html#C14N_RELATIVE_NAMESPACE
-lxml.etree.ErrorTypes.SCHEMAP_FACET_NO_VALUE    lxml.etree.ErrorTypes-class.html#SCHEMAP_FACET_NO_VALUE
-lxml.etree.ErrorTypes.CHECK_NO_DOC      lxml.etree.ErrorTypes-class.html#CHECK_NO_DOC
-lxml.etree.ErrorTypes.IO_EFBIG  lxml.etree.ErrorTypes-class.html#IO_EFBIG
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_WHITE_SPACE       lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_WHITE_SPACE
-lxml.etree.ErrorTypes.RNGP_NSNAME_ATTR_ANCESTOR lxml.etree.ErrorTypes-class.html#RNGP_NSNAME_ATTR_ANCESTOR
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ELEM_NOT_ALLOWED      lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_NOT_ALLOWED
-lxml.etree.ErrorTypes.RNGP_START_CHOICE_AND_INTERLEAVE  lxml.etree.ErrorTypes-class.html#RNGP_START_CHOICE_AND_INTERLEAVE
-lxml.etree.ErrorTypes.DTD_UNKNOWN_NOTATION      lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_NOTATION
-lxml.etree.ErrorTypes.ERR_NS_DECL_ERROR lxml.etree.ErrorTypes-class.html#ERR_NS_DECL_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_GROUP_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_GROUP_CHILD
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_LIST        lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_LIST
-lxml.etree.ErrorTypes.CHECK_WRONG_DOC   lxml.etree.ErrorTypes-class.html#CHECK_WRONG_DOC
-lxml.etree.ErrorTypes.ERR_LITERAL_NOT_FINISHED  lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_FINISHED
-lxml.etree.ErrorTypes.CHECK_FOUND_CDATA lxml.etree.ErrorTypes-class.html#CHECK_FOUND_CDATA
-lxml.etree.ErrorTypes.SAVE_UNKNOWN_ENCODING     lxml.etree.ErrorTypes-class.html#SAVE_UNKNOWN_ENCODING
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_MISSING      lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_MISSING
-lxml.etree.ErrorTypes.SCHEMAV_NOTSIMPLE lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTSIMPLE
-lxml.etree.ErrorTypes.DTD_ID_REDEFINED  lxml.etree.ErrorTypes-class.html#DTD_ID_REDEFINED
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ATTR    lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTR
-lxml.etree.ErrorTypes.RNGP_ERROR_TYPE_LIB       lxml.etree.ErrorTypes-class.html#RNGP_ERROR_TYPE_LIB
-lxml.etree.ErrorTypes.CHECK_NAME_NOT_NULL       lxml.etree.ErrorTypes-class.html#CHECK_NAME_NOT_NULL
-lxml.etree.ErrorTypes.IO_UNKNOWN        lxml.etree.ErrorTypes-class.html#IO_UNKNOWN
-lxml.etree.ErrorTypes.HTTP_URL_SYNTAX   lxml.etree.ErrorTypes-class.html#HTTP_URL_SYNTAX
-lxml.etree.ErrorTypes.RNGP_NAME_MISSING lxml.etree.ErrorTypes-class.html#RNGP_NAME_MISSING
-lxml.etree.ErrorTypes.CHECK_WRONG_NEXT  lxml.etree.ErrorTypes-class.html#CHECK_WRONG_NEXT
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD        lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD
-lxml.etree.ErrorTypes.SCHEMAP_NOATTR_NOREF      lxml.etree.ErrorTypes-class.html#SCHEMAP_NOATTR_NOREF
-lxml.etree.ErrorTypes.SAVE_NOT_UTF8     lxml.etree.ErrorTypes-class.html#SAVE_NOT_UTF8
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_1
-lxml.etree.ErrorTypes.CHECK_NOT_UTF8    lxml.etree.ErrorTypes-class.html#CHECK_NOT_UTF8
-lxml.etree.ErrorTypes.DTD_NO_DTD        lxml.etree.ErrorTypes-class.html#DTD_NO_DTD
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_INTERLEAVE  lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_INTERLEAVE
-lxml.etree.ErrorTypes.ERR_ENTITY_PE_INTERNAL    lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PE_INTERNAL
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_NO_CONTENT        lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_NO_CONTENT
-lxml.etree.ErrorTypes.ERR_CONDSEC_INVALID       lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID
-lxml.etree.ErrorTypes.RNGP_ELEM_CONTENT_EMPTY   lxml.etree.ErrorTypes-class.html#RNGP_ELEM_CONTENT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAP_NOROOT    lxml.etree.ErrorTypes-class.html#SCHEMAP_NOROOT
-lxml.etree.ErrorTypes.CHECK_UNKNOWN_NODE        lxml.etree.ErrorTypes-class.html#CHECK_UNKNOWN_NODE
-lxml.etree.ErrorTypes.XINCLUDE_UNKNOWN_ENCODING lxml.etree.ErrorTypes-class.html#XINCLUDE_UNKNOWN_ENCODING
-lxml.etree.ErrorTypes.XPATH_INVALID_TYPE        lxml.etree.ErrorTypes-class.html#XPATH_INVALID_TYPE
-lxml.etree.ErrorTypes.RNGP_PARENTREF_CREATE_FAILED      lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_CREATE_FAILED
-lxml.etree.ErrorTypes.CHECK_NO_PREV     lxml.etree.ErrorTypes-class.html#CHECK_NO_PREV
-lxml.etree.ErrorTypes.XPATH_INVALID_CTXT_SIZE   lxml.etree.ErrorTypes-class.html#XPATH_INVALID_CTXT_SIZE
-lxml.etree.ErrorTypes.RNGP_DATA_CONTENT lxml.etree.ErrorTypes-class.html#RNGP_DATA_CONTENT
-lxml.etree.ErrorTypes.SCHEMAP_S4S_ELEM_MISSING  lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_MISSING
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_BASE_TYPE lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_BASE_TYPE
-lxml.etree.ErrorTypes.XINCLUDE_NO_FALLBACK      lxml.etree.ErrorTypes-class.html#XINCLUDE_NO_FALLBACK
-lxml.etree.ErrorTypes.IO_WRITE  lxml.etree.ErrorTypes-class.html#IO_WRITE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_RESOLVE       lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESOLVE
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_1      lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_1
-lxml.etree.ErrorTypes.SCHEMAV_DOCUMENT_ELEMENT_MISSING  lxml.etree.ErrorTypes-class.html#SCHEMAV_DOCUMENT_ELEMENT_MISSING
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_REF  lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_REF
-lxml.etree.ErrorTypes.CHECK_NO_NAME     lxml.etree.ErrorTypes-class.html#CHECK_NO_NAME
-lxml.etree.ErrorTypes.IO_ENOSPC lxml.etree.ErrorTypes-class.html#IO_ENOSPC
-lxml.etree.ErrorTypes.SCHEMAP_AU_PROPS_CORRECT  lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT
-lxml.etree.ErrorTypes.TREE_NOT_UTF8     lxml.etree.ErrorTypes-class.html#TREE_NOT_UTF8
-lxml.etree.ErrorTypes.RNGP_PAT_LIST_ELEM        lxml.etree.ErrorTypes-class.html#RNGP_PAT_LIST_ELEM
-lxml.etree.ErrorTypes.XPATH_EXPRESSION_OK       lxml.etree.ErrorTypes-class.html#XPATH_EXPRESSION_OK
-lxml.etree.ErrorTypes.XPTR_SUB_RESOURCE_ERROR   lxml.etree.ErrorTypes-class.html#XPTR_SUB_RESOURCE_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_ELEM_DEFAULT_FIXED        lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_DEFAULT_FIXED
-lxml.etree.ErrorTypes.WAR_ENTITY_REDEFINED      lxml.etree.ErrorTypes-class.html#WAR_ENTITY_REDEFINED
-lxml.etree.ErrorTypes.DTD_XMLID_VALUE   lxml.etree.ErrorTypes-class.html#DTD_XMLID_VALUE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_2_2      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_2
-lxml.etree.ErrorTypes.RNGP_GRAMMAR_CONTENT      lxml.etree.ErrorTypes-class.html#RNGP_GRAMMAR_CONTENT
-lxml.etree.ErrorTypes.ERR_CHARREF_IN_DTD        lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_DTD
-lxml.etree.ErrorTypes.I18N_NO_HANDLER   lxml.etree.ErrorTypes-class.html#I18N_NO_HANDLER
-lxml.etree.ErrorTypes.SCHEMAV_CVC_FACET_VALID   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FACET_VALID
-lxml.etree.ErrorTypes.DTD_MIXED_CORRUPT lxml.etree.ErrorTypes-class.html#DTD_MIXED_CORRUPT
-lxml.etree.ErrorTypes.ERR_INVALID_DEC_CHARREF   lxml.etree.ErrorTypes-class.html#ERR_INVALID_DEC_CHARREF
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TOTALDIGITS_VALID     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TOTALDIGITS_VALID
-lxml.etree.ErrorTypes.CHECK_NOT_NCNAME  lxml.etree.ErrorTypes-class.html#CHECK_NOT_NCNAME
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ENUM      lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ENUM
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_MEMBER_TYPE       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_MEMBER_TYPE
-lxml.etree.ErrorTypes.ERR_SPACE_REQUIRED        lxml.etree.ErrorTypes-class.html#ERR_SPACE_REQUIRED
-lxml.etree.ErrorTypes.SCHEMAP_COMPLEXTYPE_NONAME_NOREF  lxml.etree.ErrorTypes-class.html#SCHEMAP_COMPLEXTYPE_NONAME_NOREF
-lxml.etree.ErrorTypes.RNGP_PAT_START_EMPTY      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_EMPTY
-lxml.etree.ErrorTypes.ERR_DOCUMENT_EMPTY        lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAV_EXTRACONTENT      lxml.etree.ErrorTypes-class.html#SCHEMAV_EXTRACONTENT
-lxml.etree.ErrorTypes.SAVE_CHAR_INVALID lxml.etree.ErrorTypes-class.html#SAVE_CHAR_INVALID
-lxml.etree.ErrorTypes.RNGP_XML_NS       lxml.etree.ErrorTypes-class.html#RNGP_XML_NS
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD
-lxml.etree.ErrorTypes.DTD_ATTRIBUTE_DEFAULT     lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_DEFAULT
-lxml.etree.ErrorTypes.IO_ENOTSUP        lxml.etree.ErrorTypes-class.html#IO_ENOTSUP
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ATTRIBUTE     lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ATTRIBUTE
-lxml.etree.ErrorTypes.XINCLUDE_INCLUDE_IN_INCLUDE       lxml.etree.ErrorTypes-class.html#XINCLUDE_INCLUDE_IN_INCLUDE
-lxml.etree.ErrorTypes.XPATH_UNFINISHED_LITERAL_ERROR    lxml.etree.ErrorTypes-class.html#XPATH_UNFINISHED_LITERAL_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_ATTRGRP_NONAME_NOREF      lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRGRP_NONAME_NOREF
-lxml.etree.ErrorTypes.SCHEMAV_WRONGELEM lxml.etree.ErrorTypes-class.html#SCHEMAV_WRONGELEM
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_MINOCCURS lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MINOCCURS
-lxml.etree.ErrorTypes.RNGP_PARENTREF_NAME_INVALID       lxml.etree.ErrorTypes-class.html#RNGP_PARENTREF_NAME_INVALID
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_1      lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_1
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_1_2      lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_2
-lxml.etree.ErrorTypes.IO_ENODEV lxml.etree.ErrorTypes-class.html#IO_ENODEV
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_2_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_2
-lxml.etree.ErrorTypes.IO_EBUSY  lxml.etree.ErrorTypes-class.html#IO_EBUSY
-lxml.etree.ErrorTypes.C14N_REQUIRES_UTF8        lxml.etree.ErrorTypes-class.html#C14N_REQUIRES_UTF8
-lxml.etree.ErrorTypes.SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE
-lxml.etree.ErrorTypes.ERR_URI_REQUIRED  lxml.etree.ErrorTypes-class.html#ERR_URI_REQUIRED
-lxml.etree.ErrorTypes.IO_EADDRINUSE     lxml.etree.ErrorTypes-class.html#IO_EADDRINUSE
-lxml.etree.ErrorTypes.SCHEMAV_INTERNAL  lxml.etree.ErrorTypes-class.html#SCHEMAV_INTERNAL
-lxml.etree.ErrorTypes.RNGP_VALUE_NO_CONTENT     lxml.etree.ErrorTypes-class.html#RNGP_VALUE_NO_CONTENT
-lxml.etree.ErrorTypes.NS_ERR_UNDEFINED_NAMESPACE        lxml.etree.ErrorTypes-class.html#NS_ERR_UNDEFINED_NAMESPACE
-lxml.etree.ErrorTypes.SCHEMAP_A_PROPS_CORRECT_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.CHECK_FOUND_ELEMENT       lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ELEMENT
-lxml.etree.ErrorTypes.RNGP_ELEM_CONTENT_ERROR   lxml.etree.ErrorTypes-class.html#RNGP_ELEM_CONTENT_ERROR
-lxml.etree.ErrorTypes.SCHEMAP_RESTRICTION_NONAME_NOREF  lxml.etree.ErrorTypes-class.html#SCHEMAP_RESTRICTION_NONAME_NOREF
-lxml.etree.ErrorTypes.HTTP_USE_IP       lxml.etree.ErrorTypes-class.html#HTTP_USE_IP
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_3     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_3
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_NOT_FINISHED        lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_FINISHED
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_3_1_1    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_3_1_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_3_1_2    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_3_1_2
-lxml.etree.ErrorTypes.SCHEMATRONV_REPORT        lxml.etree.ErrorTypes-class.html#SCHEMATRONV_REPORT
-lxml.etree.ErrorTypes.SCHEMAV_MISC      lxml.etree.ErrorTypes-class.html#SCHEMAV_MISC
-lxml.etree.ErrorTypes.IO_EPIPE  lxml.etree.ErrorTypes-class.html#IO_EPIPE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_GROUP_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_GROUP_3     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_3
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_GROUP_2     lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_2
-lxml.etree.ErrorTypes.IO_EAFNOSUPPORT   lxml.etree.ErrorTypes-class.html#IO_EAFNOSUPPORT
-lxml.etree.ErrorTypes.SCHEMAP_WARN_SKIP_SCHEMA  lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_SKIP_SCHEMA
-lxml.etree.ErrorTypes.SCHEMAP_A_PROPS_CORRECT_3 lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_3
-lxml.etree.ErrorTypes.CHECK_FOUND_DOCTYPE       lxml.etree.ErrorTypes-class.html#CHECK_FOUND_DOCTYPE
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD  lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD
-lxml.etree.ErrorTypes.TREE_UNTERMINATED_ENTITY  lxml.etree.ErrorTypes-class.html#TREE_UNTERMINATED_ENTITY
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_1        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_1
-lxml.etree.ErrorTypes.WAR_UNDECLARED_ENTITY     lxml.etree.ErrorTypes-class.html#WAR_UNDECLARED_ENTITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_4        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_4
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_CONSTRUCT    lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_CONSTRUCT
-lxml.etree.ErrorTypes.SCHEMAP_WARN_ATTR_REDECL_PROH     lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_REDECL_PROH
-lxml.etree.ErrorTypes.ERR_ENTITY_IS_EXTERNAL    lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_EXTERNAL
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_1_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1_2
-lxml.etree.ErrorTypes.RNGP_INVALID_DEFINE_NAME  lxml.etree.ErrorTypes-class.html#RNGP_INVALID_DEFINE_NAME
-lxml.etree.ErrorTypes.SCHEMAP_PREFIX_UNDEFINED  lxml.etree.ErrorTypes-class.html#SCHEMAP_PREFIX_UNDEFINED
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_EMPTY        lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_EMPTY
-lxml.etree.ErrorTypes.SCHEMAV_INVALIDELEM       lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDELEM
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_IMPORT_CHILD      lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_IMPORT_CHILD
-lxml.etree.ErrorTypes.RNGP_EXTERNALREF_EMTPY    lxml.etree.ErrorTypes-class.html#RNGP_EXTERNALREF_EMTPY
-lxml.etree.ErrorTypes.SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE      lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE
-lxml.etree.ErrorTypes.IO_EALREADY       lxml.etree.ErrorTypes-class.html#IO_EALREADY
-lxml.etree.ErrorTypes.WAR_NS_URI        lxml.etree.ErrorTypes-class.html#WAR_NS_URI
-lxml.etree.ErrorTypes.SCHEMAP_REF_AND_CONTENT   lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_CONTENT
-lxml.etree.ErrorTypes.ERR_UNDECLARED_ENTITY     lxml.etree.ErrorTypes-class.html#ERR_UNDECLARED_ENTITY
-lxml.etree.ErrorTypes.IO_NETWORK_ATTEMPT        lxml.etree.ErrorTypes-class.html#IO_NETWORK_ATTEMPT
-lxml.etree.ErrorTypes.ERR_INVALID_CHAR  lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHAR
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_1     lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_1
-lxml.etree.ErrorTypes.SCHEMAP_GROUP_NONAME_NOREF        lxml.etree.ErrorTypes-class.html#SCHEMAP_GROUP_NONAME_NOREF
-lxml.etree.ErrorTypes.ERR_LITERAL_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_5        lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_5
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ELEMENT lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ELEMENT
-lxml.etree.ErrorTypes.SCHEMAP_CVC_SIMPLE_TYPE   lxml.etree.ErrorTypes-class.html#SCHEMAP_CVC_SIMPLE_TYPE
-lxml.etree.ErrorTypes.ERR_UNKNOWN_VERSION       lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_VERSION
-lxml.etree.ErrorTypes.SCHEMAP_NOT_SCHEMA        lxml.etree.ErrorTypes-class.html#SCHEMAP_NOT_SCHEMA
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_COMBINE      lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_COMBINE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ELEMENT_2_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_1
-lxml.etree.ErrorTypes.CHECK_NOT_DTD     lxml.etree.ErrorTypes-class.html#CHECK_NOT_DTD
-lxml.etree.ErrorTypes.CHECK_NO_NEXT     lxml.etree.ErrorTypes-class.html#CHECK_NO_NEXT
-lxml.etree.ErrorTypes.ERR_NOT_WELL_BALANCED     lxml.etree.ErrorTypes-class.html#ERR_NOT_WELL_BALANCED
-lxml.etree.ErrorTypes.RNGP_REF_CYCLE    lxml.etree.ErrorTypes-class.html#RNGP_REF_CYCLE
-lxml.etree.ErrorTypes.SCHEMAP_CT_PROPS_CORRECT_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.SCHEMAV_FACET     lxml.etree.ErrorTypes-class.html#SCHEMAV_FACET
-lxml.etree.ErrorTypes.ERR_ENCODING_NAME lxml.etree.ErrorTypes-class.html#ERR_ENCODING_NAME
-lxml.etree.ErrorTypes.SCHEMAV_NOROOT    lxml.etree.ErrorTypes-class.html#SCHEMAV_NOROOT
-lxml.etree.ErrorTypes.DTD_XMLID_TYPE    lxml.etree.ErrorTypes-class.html#DTD_XMLID_TYPE
-lxml.etree.ErrorTypes.C14N_CREATE_STACK lxml.etree.ErrorTypes-class.html#C14N_CREATE_STACK
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_2        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_2
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SEQUENCE_CHILD    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SEQUENCE_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_1        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_1
-lxml.etree.ErrorTypes.IO_ENXIO  lxml.etree.ErrorTypes-class.html#IO_ENXIO
-lxml.etree.ErrorTypes.SCHEMAV_CVC_PATTERN_VALID lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_PATTERN_VALID
-lxml.etree.ErrorTypes.ERR_ATTRIBUTE_WITHOUT_VALUE       lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_WITHOUT_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_INCLUDE_SCHEMA_NOT_URI    lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NOT_URI
-lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ATTRGROUP       lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTRGROUP
-lxml.etree.ErrorTypes.SCHEMAV_INVALIDATTR       lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDATTR
-lxml.etree.ErrorTypes.ERR_OK    lxml.etree.ErrorTypes-class.html#ERR_OK
-lxml.etree.ErrorTypes.ERR_EQUAL_REQUIRED        lxml.etree.ErrorTypes-class.html#ERR_EQUAL_REQUIRED
-lxml.etree.ErrorTypes.NS_ERR_XML_NAMESPACE      lxml.etree.ErrorTypes-class.html#NS_ERR_XML_NAMESPACE
-lxml.etree.ErrorTypes.ERR_EXTRA_CONTENT lxml.etree.ErrorTypes-class.html#ERR_EXTRA_CONTENT
-lxml.etree.ErrorTypes.DTD_MULTIPLE_ID   lxml.etree.ErrorTypes-class.html#DTD_MULTIPLE_ID
-lxml.etree.ErrorTypes.IO_ECONNREFUSED   lxml.etree.ErrorTypes-class.html#IO_ECONNREFUSED
-lxml.etree.ErrorTypes.XPTR_UNKNOWN_SCHEME       lxml.etree.ErrorTypes-class.html#XPTR_UNKNOWN_SCHEME
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_5_2      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_5_1      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_1
-lxml.etree.ErrorTypes.RNGP_PAT_ONEMORE_INTERLEAVE_ATTR  lxml.etree.ErrorTypes-class.html#RNGP_PAT_ONEMORE_INTERLEAVE_ATTR
-lxml.etree.ErrorTypes.XINCLUDE_ENTITY_DEF_MISMATCH      lxml.etree.ErrorTypes-class.html#XINCLUDE_ENTITY_DEF_MISMATCH
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1
-lxml.etree.ErrorTypes.SCHEMAP_MG_PROPS_CORRECT_1        lxml.etree.ErrorTypes-class.html#SCHEMAP_MG_PROPS_CORRECT_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_3_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_2
-lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_3_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_1
-lxml.etree.ErrorTypes.SCHEMAP_MG_PROPS_CORRECT_2        lxml.etree.ErrorTypes-class.html#SCHEMAP_MG_PROPS_CORRECT_2
-lxml.etree.ErrorTypes.RNGP_PAT_START_VALUE      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_VALUE
-lxml.etree.ErrorTypes.DTD_ROOT_NAME     lxml.etree.ErrorTypes-class.html#DTD_ROOT_NAME
-lxml.etree.ErrorTypes.IO_EISDIR lxml.etree.ErrorTypes-class.html#IO_EISDIR
-lxml.etree.ErrorTypes.IO_EINPROGRESS    lxml.etree.ErrorTypes-class.html#IO_EINPROGRESS
-lxml.etree.ErrorTypes.IO_EDEADLK        lxml.etree.ErrorTypes-class.html#IO_EDEADLK
-lxml.etree.ErrorTypes.SCHEMAP_COS_ST_DERIVED_OK_2_2     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_2_2_1   lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_1
-lxml.etree.ErrorTypes.SCHEMAP_P_PROPS_CORRECT_2_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_2_2
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_FACET     lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_FACET
-lxml.etree.ErrorTypes.SCHEMAP_P_PROPS_CORRECT_2_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_2_1
-lxml.etree.ErrorTypes.XINCLUDE_BUILD_FAILED     lxml.etree.ErrorTypes-class.html#XINCLUDE_BUILD_FAILED
-lxml.etree.ErrorTypes.ERR_PEREF_AT_EOF  lxml.etree.ErrorTypes-class.html#ERR_PEREF_AT_EOF
-lxml.etree.ErrorTypes.IO_ENOLCK lxml.etree.ErrorTypes-class.html#IO_ENOLCK
-lxml.etree.ErrorTypes.DTD_MISSING_ATTRIBUTE     lxml.etree.ErrorTypes-class.html#DTD_MISSING_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_3_1      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_1
-lxml.etree.ErrorTypes.CHECK_FOUND_ENTITYREF     lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ENTITYREF
-lxml.etree.ErrorTypes.RNGP_PARAM_FORBIDDEN      lxml.etree.ErrorTypes-class.html#RNGP_PARAM_FORBIDDEN
-lxml.etree.ErrorTypes.DTD_ELEM_NAMESPACE        lxml.etree.ErrorTypes-class.html#DTD_ELEM_NAMESPACE
-lxml.etree.ErrorTypes.SCHEMAP_FAILED_LOAD       lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_LOAD
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_4 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_4
-lxml.etree.ErrorTypes.DTD_ID_FIXED      lxml.etree.ErrorTypes-class.html#DTD_ID_FIXED
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_1 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_1
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_2 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_2
-lxml.etree.ErrorTypes.SCHEMAP_SRC_SIMPLE_TYPE_3 lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_3_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_1
-lxml.etree.ErrorTypes.XINCLUDE_PARSE_VALUE      lxml.etree.ErrorTypes-class.html#XINCLUDE_PARSE_VALUE
-lxml.etree.ErrorTypes.RNGP_INCLUDE_FAILURE      lxml.etree.ErrorTypes-class.html#RNGP_INCLUDE_FAILURE
-lxml.etree.ErrorTypes.CHECK_NO_DICT     lxml.etree.ErrorTypes-class.html#CHECK_NO_DICT
-lxml.etree.ErrorTypes.CHECK_NOT_ELEM_DECL       lxml.etree.ErrorTypes-class.html#CHECK_NOT_ELEM_DECL
-lxml.etree.ErrorTypes.XPTR_CHILDSEQ_START       lxml.etree.ErrorTypes-class.html#XPTR_CHILDSEQ_START
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_EMPTY      lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_EMPTY
-lxml.etree.ErrorTypes.ERR_ENTITYREF_NO_NAME     lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_NO_NAME
-lxml.etree.ErrorTypes.RNGP_UNKNOWN_ATTRIBUTE    lxml.etree.ErrorTypes-class.html#RNGP_UNKNOWN_ATTRIBUTE
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_1
-lxml.etree.ErrorTypes.DTD_INVALID_CHILD lxml.etree.ErrorTypes-class.html#DTD_INVALID_CHILD
-lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_2       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_2
-lxml.etree.ErrorTypes.RNGP_EXCEPT_EMPTY lxml.etree.ErrorTypes-class.html#RNGP_EXCEPT_EMPTY
-lxml.etree.ErrorTypes.RNGP_PAT_ATTR_ATTR        lxml.etree.ErrorTypes-class.html#RNGP_PAT_ATTR_ATTR
-lxml.etree.ErrorTypes.ERR_GT_REQUIRED   lxml.etree.ErrorTypes-class.html#ERR_GT_REQUIRED
-lxml.etree.ErrorTypes.RNGP_ATTR_CONFLICT        lxml.etree.ErrorTypes-class.html#RNGP_ATTR_CONFLICT
-lxml.etree.ErrorTypes.SCHEMAV_CVC_FRACTIONDIGITS_VALID  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FRACTIONDIGITS_VALID
-lxml.etree.ErrorTypes.IO_ETIMEDOUT      lxml.etree.ErrorTypes-class.html#IO_ETIMEDOUT
-lxml.etree.ErrorTypes.SCHEMAP_C_PROPS_CORRECT   lxml.etree.ErrorTypes-class.html#SCHEMAP_C_PROPS_CORRECT
-lxml.etree.ErrorTypes.I18N_NO_OUTPUT    lxml.etree.ErrorTypes-class.html#I18N_NO_OUTPUT
-lxml.etree.ErrorTypes.CHECK_NS_ANCESTOR lxml.etree.ErrorTypes-class.html#CHECK_NS_ANCESTOR
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_FACET_VALUE       lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_FACET_VALUE
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ALL_CHILD lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ALL_CHILD
-lxml.etree.ErrorTypes.CHECK_FOUND_FRAGMENT      lxml.etree.ErrorTypes-class.html#CHECK_FOUND_FRAGMENT
-lxml.etree.ErrorTypes.ERR_DOCUMENT_START        lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_START
-lxml.etree.ErrorTypes.SCHEMAV_CVC_LENGTH_VALID  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_LENGTH_VALID
-lxml.etree.ErrorTypes.SCHEMAV_CVC_MINLENGTH_VALID       lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINLENGTH_VALID
-lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_1     lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_1
-lxml.etree.ErrorTypes.XINCLUDE_FALLBACK_NOT_IN_INCLUDE  lxml.etree.ErrorTypes-class.html#XINCLUDE_FALLBACK_NOT_IN_INCLUDE
-lxml.etree.ErrorTypes.RNGP_EXTERNALREF_RECURSE  lxml.etree.ErrorTypes-class.html#RNGP_EXTERNALREF_RECURSE
-lxml.etree.ErrorTypes.ERR_TAG_NAME_MISMATCH     lxml.etree.ErrorTypes-class.html#ERR_TAG_NAME_MISMATCH
-lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_1  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_1
-lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_2  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_2
-lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_3  lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_3
-lxml.etree.ErrorTypes.SCHEMAV_CVC_COMPLEX_TYPE_3_2_2    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_2
-lxml.etree.ErrorTypes.CHECK_FOUND_COMMENT       lxml.etree.ErrorTypes-class.html#CHECK_FOUND_COMMENT
-lxml.etree.ErrorTypes.SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE
-lxml.etree.ErrorTypes.SCHEMAP_NOTYPE_NOREF      lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTYPE_NOREF
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_SCHEMAS_CHILD     lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SCHEMAS_CHILD
-lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_CONTENT    lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_CONTENT
-lxml.etree.ErrorTypes.DTD_UNKNOWN_ENTITY        lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_ENTITY
-lxml.etree.ErrorTypes.XPATH_UNDEF_PREFIX_ERROR  lxml.etree.ErrorTypes-class.html#XPATH_UNDEF_PREFIX_ERROR
-lxml.etree.ErrorTypes.NS_ERR_ATTRIBUTE_REDEFINED        lxml.etree.ErrorTypes-class.html#NS_ERR_ATTRIBUTE_REDEFINED
-lxml.etree.ErrorTypes.ERR_CONDSEC_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_STARTED
-lxml.etree.ErrorTypes.CHECK_FOUND_PI    lxml.etree.ErrorTypes-class.html#CHECK_FOUND_PI
-lxml.etree.ErrorTypes.DTD_DUP_TOKEN     lxml.etree.ErrorTypes-class.html#DTD_DUP_TOKEN
-lxml.etree.ErrorTypes.DTD_ATTRIBUTE_VALUE       lxml.etree.ErrorTypes-class.html#DTD_ATTRIBUTE_VALUE
-lxml.etree.ErrorTypes.XPATH_INVALID_ARITY       lxml.etree.ErrorTypes-class.html#XPATH_INVALID_ARITY
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_EXTENSION_CHILD   lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_EXTENSION_CHILD
-lxml.etree.ErrorTypes.SCHEMAP_REF_AND_SUBTYPE   lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_SUBTYPE
-lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT        lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT
-lxml.etree.ErrorTypes.SCHEMAP_NO_XSI    lxml.etree.ErrorTypes-class.html#SCHEMAP_NO_XSI
-lxml.etree.ErrorTypes.SCHEMAV_HAVEDEFAULT       lxml.etree.ErrorTypes-class.html#SCHEMAV_HAVEDEFAULT
-lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_LIST lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_LIST
-lxml.etree.ErrorTypes.SCHEMAP_WARN_UNLOCATED_SCHEMA     lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_UNLOCATED_SCHEMA
-lxml.etree.ErrorTypes.ERR_NOT_STANDALONE        lxml.etree.ErrorTypes-class.html#ERR_NOT_STANDALONE
-lxml.etree.ErrorTypes.SCHEMAP_INVALID_ATTR_COMBINATION  lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_COMBINATION
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_3       lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_3
-lxml.etree.ErrorTypes.SCHEMAP_DERIVATION_OK_RESTRICTION_1       lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_1
-lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_UNION_CHILD       lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_UNION_CHILD
-lxml.etree.ErrorTypes.XINCLUDE_FALLBACKS_IN_INCLUDE     lxml.etree.ErrorTypes-class.html#XINCLUDE_FALLBACKS_IN_INCLUDE
-lxml.etree.ErrorTypes.IO_BUFFER_FULL    lxml.etree.ErrorTypes-class.html#IO_BUFFER_FULL
-lxml.etree.ErrorTypes.TREE_INVALID_DEC  lxml.etree.ErrorTypes-class.html#TREE_INVALID_DEC
-lxml.etree.ErrorTypes.DTD_STANDALONE_DEFAULTED  lxml.etree.ErrorTypes-class.html#DTD_STANDALONE_DEFAULTED
-lxml.etree.FallbackElementClassLookup   lxml.etree.FallbackElementClassLookup-class.html
-lxml.etree.FallbackElementClassLookup.__new__   lxml.etree.FallbackElementClassLookup-class.html#__new__
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__  lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.HTMLParser   lxml.etree.HTMLParser-class.html
-lxml.etree._FeedParser.feed     lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close    lxml.etree._FeedParser-class.html#close
-lxml.etree.HTMLParser.__init__  lxml.etree.HTMLParser-class.html#__init__
-lxml.etree.HTMLParser.__new__   lxml.etree.HTMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log   lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree.LxmlError    lxml.etree.LxmlError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.LxmlRegistryError    lxml.etree.LxmlRegistryError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.LxmlSyntaxError      lxml.etree.LxmlSyntaxError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.NamespaceRegistryError       lxml.etree.NamespaceRegistryError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.PIBase       lxml.etree.PIBase-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag   lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.PIBase.__new__       lxml.etree.PIBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.PIBase.__init__      lxml.etree.PIBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target        lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__      lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree.ParseError   lxml.etree.ParseError-class.html
-lxml.etree.ParseError.__init__  lxml.etree.ParseError-class.html#__init__
-lxml.etree.ParserBasedElementClassLookup        lxml.etree.ParserBasedElementClassLookup-class.html
-lxml.etree.ParserBasedElementClassLookup.__new__        lxml.etree.ParserBasedElementClassLookup-class.html#__new__
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__  lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.ParserError  lxml.etree.ParserError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.PyErrorLog   lxml.etree.PyErrorLog-class.html
-lxml.etree.PyErrorLog.level_map lxml.etree.PyErrorLog-class.html#level_map
-lxml.etree.PyErrorLog.__new__   lxml.etree.PyErrorLog-class.html#__new__
-lxml.etree.PyErrorLog.receive   lxml.etree.PyErrorLog-class.html#receive
-lxml.etree._BaseErrorLog.last_error     lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._BaseErrorLog.__repr__       lxml.etree._BaseErrorLog-class.html#__repr__
-lxml.etree.PyErrorLog.copy      lxml.etree.PyErrorLog-class.html#copy
-lxml.etree.PyErrorLog.__init__  lxml.etree.PyErrorLog-class.html#__init__
-lxml.etree.PyErrorLog.log       lxml.etree.PyErrorLog-class.html#log
-lxml.etree.PythonElementClassLookup     lxml.etree.PythonElementClassLookup-class.html
-lxml.etree.PythonElementClassLookup.__new__     lxml.etree.PythonElementClassLookup-class.html#__new__
-lxml.etree.PythonElementClassLookup.lookup      lxml.etree.PythonElementClassLookup-class.html#lookup
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.etree.FallbackElementClassLookup.__init__  lxml.etree.FallbackElementClassLookup-class.html#__init__
-lxml.etree.QName        lxml.etree.QName-class.html
-lxml.etree.QName.text   lxml.etree.QName-class.html#text
-lxml.etree.QName.__str__        lxml.etree.QName-class.html#__str__
-lxml.etree.QName.localname      lxml.etree.QName-class.html#localname
-lxml.etree.QName.__lt__ lxml.etree.QName-class.html#__lt__
-lxml.etree.QName.__init__       lxml.etree.QName-class.html#__init__
-lxml.etree.QName.__new__        lxml.etree.QName-class.html#__new__
-lxml.etree.QName.namespace      lxml.etree.QName-class.html#namespace
-lxml.etree.QName.__ne__ lxml.etree.QName-class.html#__ne__
-lxml.etree.QName.__gt__ lxml.etree.QName-class.html#__gt__
-lxml.etree.QName.__eq__ lxml.etree.QName-class.html#__eq__
-lxml.etree.QName.__le__ lxml.etree.QName-class.html#__le__
-lxml.etree.QName.__hash__       lxml.etree.QName-class.html#__hash__
-lxml.etree.QName.__ge__ lxml.etree.QName-class.html#__ge__
-lxml.etree.RelaxNG      lxml.etree.RelaxNG-class.html
-lxml.etree.RelaxNG.__new__      lxml.etree.RelaxNG-class.html#__new__
-lxml.etree._Validator._clear_error_log  lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid       lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message       lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log lxml.etree._Validator-class.html#error_log
-lxml.etree.RelaxNG.__call__     lxml.etree.RelaxNG-class.html#__call__
-lxml.etree._Validator.assert_   lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate  lxml.etree._Validator-class.html#validate
-lxml.etree.RelaxNG.__init__     lxml.etree.RelaxNG-class.html#__init__
-lxml.etree.RelaxNGError lxml.etree.RelaxNGError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.RelaxNGErrorTypes    lxml.etree.RelaxNGErrorTypes-class.html
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TEXTWRONG      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TEXTWRONG
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_EXTRACONTENT   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_EXTRACONTENT
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TYPEVAL        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TYPEVAL
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NODEFINE       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NODEFINE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOTELEM        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOTELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_VALUE  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_VALUE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TYPECMP        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TYPECMP
-lxml.etree.RelaxNGErrorTypes._getName   lxml.etree.RelaxNGErrorTypes-class.html#_getName
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LISTELEM       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LISTELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTERNAL       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTERNAL
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_DATATYPE       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_DATATYPE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_DATAELEM       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_DATAELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INVALIDATTR    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INVALIDATTR
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMNAME       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMNAME
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_DUPID  lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_DUPID
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMNOTEMPTY   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMNOTEMPTY
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOELEM lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_TYPE   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_TYPE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_OK lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_OK
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMNONS       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMNONS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_CONTENTVALID   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_CONTENTVALID
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LIST   lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LIST
-lxml.etree.RelaxNGErrorTypes._names     lxml.etree.RelaxNGErrorTypes-class.html#_names
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_EXTRADATA      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_EXTRADATA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_MEMORY lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_MEMORY
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOSTATE        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOSTATE
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMWRONG      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMWRONG
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LISTEXTRA      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LISTEXTRA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRNONS       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRNONS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMWRONGNS    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMWRONGNS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRNAME       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRNAME
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_VALELEM        lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_VALELEM
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTERNODATA    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTERNODATA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_NOGRAMMAR      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_NOGRAMMAR
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ELEMEXTRANS    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ELEMEXTRANS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRWRONGNS    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRWRONGNS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTEREXTRA     lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTEREXTRA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTREXTRANS    lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTREXTRANS
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LACKDATA       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LACKDATA
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_LISTEMPTY      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_LISTEMPTY
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_INTERSEQ       lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_INTERSEQ
-lxml.etree.RelaxNGErrorTypes.RELAXNG_ERR_ATTRVALID      lxml.etree.RelaxNGErrorTypes-class.html#RELAXNG_ERR_ATTRVALID
-lxml.etree.RelaxNGParseError    lxml.etree.RelaxNGParseError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.RelaxNGValidateError lxml.etree.RelaxNGValidateError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.Resolver     lxml.etree.Resolver-class.html
-lxml.etree.Resolver.resolve     lxml.etree.Resolver-class.html#resolve
-lxml.etree.Resolver.resolve_filename    lxml.etree.Resolver-class.html#resolve_filename
-lxml.etree.Resolver.__new__     lxml.etree.Resolver-class.html#__new__
-lxml.etree.Resolver.resolve_string      lxml.etree.Resolver-class.html#resolve_string
-lxml.etree.Resolver.resolve_file        lxml.etree.Resolver-class.html#resolve_file
-lxml.etree.Resolver.resolve_empty       lxml.etree.Resolver-class.html#resolve_empty
-lxml.etree.Schematron   lxml.etree.Schematron-class.html
-lxml.etree.Schematron.__new__   lxml.etree.Schematron-class.html#__new__
-lxml.etree._Validator._clear_error_log  lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid       lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message       lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log lxml.etree._Validator-class.html#error_log
-lxml.etree.Schematron.__call__  lxml.etree.Schematron-class.html#__call__
-lxml.etree._Validator.assert_   lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate  lxml.etree._Validator-class.html#validate
-lxml.etree.Schematron.__init__  lxml.etree.Schematron-class.html#__init__
-lxml.etree.SchematronError      lxml.etree.SchematronError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SchematronParseError lxml.etree.SchematronParseError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SchematronValidateError      lxml.etree.SchematronValidateError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SerialisationError   lxml.etree.SerialisationError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.SiblingsIterator     lxml.etree.SiblingsIterator-class.html
-lxml.etree.SiblingsIterator.__new__     lxml.etree.SiblingsIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__    lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next        lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__    lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree.TreeBuilder  lxml.etree.TreeBuilder-class.html
-lxml.etree.TreeBuilder.comment  lxml.etree.TreeBuilder-class.html#comment
-lxml.etree.TreeBuilder.end      lxml.etree.TreeBuilder-class.html#end
-lxml.etree.TreeBuilder.__new__  lxml.etree.TreeBuilder-class.html#__new__
-lxml.etree.TreeBuilder.start    lxml.etree.TreeBuilder-class.html#start
-lxml.etree.TreeBuilder.close    lxml.etree.TreeBuilder-class.html#close
-lxml.etree.TreeBuilder.pi       lxml.etree.TreeBuilder-class.html#pi
-lxml.etree.TreeBuilder.data     lxml.etree.TreeBuilder-class.html#data
-lxml.etree.TreeBuilder.__init__ lxml.etree.TreeBuilder-class.html#__init__
-lxml.etree.XInclude     lxml.etree.XInclude-class.html
-lxml.etree.XInclude.__new__     lxml.etree.XInclude-class.html#__new__
-lxml.etree.XInclude.error_log   lxml.etree.XInclude-class.html#error_log
-lxml.etree.XInclude.__call__    lxml.etree.XInclude-class.html#__call__
-lxml.etree.XInclude.__init__    lxml.etree.XInclude-class.html#__init__
-lxml.etree.XIncludeError        lxml.etree.XIncludeError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLParser    lxml.etree.XMLParser-class.html
-lxml.etree._FeedParser.feed     lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close    lxml.etree._FeedParser-class.html#close
-lxml.etree.XMLParser.__init__   lxml.etree.XMLParser-class.html#__init__
-lxml.etree.XMLParser.__new__    lxml.etree.XMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log   lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree.XMLSchema    lxml.etree.XMLSchema-class.html
-lxml.etree.XMLSchema.__new__    lxml.etree.XMLSchema-class.html#__new__
-lxml.etree._Validator._clear_error_log  lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid       lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message       lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log lxml.etree._Validator-class.html#error_log
-lxml.etree.XMLSchema.__call__   lxml.etree.XMLSchema-class.html#__call__
-lxml.etree._Validator.assert_   lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate  lxml.etree._Validator-class.html#validate
-lxml.etree.XMLSchema.__init__   lxml.etree.XMLSchema-class.html#__init__
-lxml.etree.XMLSchemaError       lxml.etree.XMLSchemaError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLSchemaParseError  lxml.etree.XMLSchemaParseError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLSchemaValidateError       lxml.etree.XMLSchemaValidateError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XMLSyntaxError       lxml.etree.XMLSyntaxError-class.html
-lxml.etree.ParseError.__init__  lxml.etree.ParseError-class.html#__init__
-lxml.etree.XPath        lxml.etree.XPath-class.html
-lxml.etree.XPath.__new__        lxml.etree.XPath-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log        lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPath.__repr__       lxml.etree.XPath-class.html#__repr__
-lxml.etree.XPath.__call__       lxml.etree.XPath-class.html#__call__
-lxml.etree.XPath.path   lxml.etree.XPath-class.html#path
-lxml.etree.XPath.__init__       lxml.etree.XPath-class.html#__init__
-lxml.etree.XPathDocumentEvaluator       lxml.etree.XPathDocumentEvaluator-class.html
-lxml.etree.XPathElementEvaluator.register_namespace     lxml.etree.XPathElementEvaluator-class.html#register_namespace
-lxml.etree.XPathDocumentEvaluator.__new__       lxml.etree.XPathDocumentEvaluator-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log        lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPathDocumentEvaluator.__call__      lxml.etree.XPathDocumentEvaluator-class.html#__call__
-lxml.etree.XPathElementEvaluator.register_namespaces    lxml.etree.XPathElementEvaluator-class.html#register_namespaces
-lxml.etree.XPathDocumentEvaluator.__init__      lxml.etree.XPathDocumentEvaluator-class.html#__init__
-lxml.etree.XPathElementEvaluator        lxml.etree.XPathElementEvaluator-class.html
-lxml.etree.XPathElementEvaluator.register_namespace     lxml.etree.XPathElementEvaluator-class.html#register_namespace
-lxml.etree.XPathElementEvaluator.__new__        lxml.etree.XPathElementEvaluator-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log        lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree.XPathElementEvaluator.__call__       lxml.etree.XPathElementEvaluator-class.html#__call__
-lxml.etree.XPathElementEvaluator.register_namespaces    lxml.etree.XPathElementEvaluator-class.html#register_namespaces
-lxml.etree.XPathElementEvaluator.__init__       lxml.etree.XPathElementEvaluator-class.html#__init__
-lxml.etree.XPathError   lxml.etree.XPathError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathEvalError       lxml.etree.XPathEvalError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathFunctionError   lxml.etree.XPathFunctionError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathResultError     lxml.etree.XPathResultError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XPathSyntaxError     lxml.etree.XPathSyntaxError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLT lxml.etree.XSLT-class.html
-lxml.etree.XSLT.__new__ lxml.etree.XSLT-class.html#__new__
-lxml.etree.XSLT.__deepcopy__    lxml.etree.XSLT-class.html#__deepcopy__
-lxml.etree.XSLT.strparam        lxml.etree.XSLT-class.html#strparam
-lxml.etree.XSLT.error_log       lxml.etree.XSLT-class.html#error_log
-lxml.etree.XSLT.tostring        lxml.etree.XSLT-class.html#tostring
-lxml.etree.XSLT.__call__        lxml.etree.XSLT-class.html#__call__
-lxml.etree.XSLT.apply   lxml.etree.XSLT-class.html#apply
-lxml.etree.XSLT.__copy__        lxml.etree.XSLT-class.html#__copy__
-lxml.etree.XSLT.__init__        lxml.etree.XSLT-class.html#__init__
-lxml.etree.XSLTAccessControl    lxml.etree.XSLTAccessControl-class.html
-lxml.etree.XSLTAccessControl.DENY_WRITE lxml.etree.XSLTAccessControl-class.html#DENY_WRITE
-lxml.etree.XSLTAccessControl.__new__    lxml.etree.XSLTAccessControl-class.html#__new__
-lxml.etree.XSLTAccessControl.__repr__   lxml.etree.XSLTAccessControl-class.html#__repr__
-lxml.etree.XSLTAccessControl.options    lxml.etree.XSLTAccessControl-class.html#options
-lxml.etree.XSLTAccessControl.DENY_ALL   lxml.etree.XSLTAccessControl-class.html#DENY_ALL
-lxml.etree.XSLTApplyError       lxml.etree.XSLTApplyError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTError    lxml.etree.XSLTError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTExtension        lxml.etree.XSLTExtension-class.html
-lxml.etree.XSLTExtension.execute        lxml.etree.XSLTExtension-class.html#execute
-lxml.etree.XSLTExtension.__new__        lxml.etree.XSLTExtension-class.html#__new__
-lxml.etree.XSLTExtension.apply_templates        lxml.etree.XSLTExtension-class.html#apply_templates
-lxml.etree.XSLTExtension.process_children       lxml.etree.XSLTExtension-class.html#process_children
-lxml.etree.XSLTExtensionError   lxml.etree.XSLTExtensionError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTParseError       lxml.etree.XSLTParseError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree.XSLTSaveError        lxml.etree.XSLTSaveError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.etree._AppendOnlyElementProxy      lxml.etree._AppendOnlyElementProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._AppendOnlyElementProxy.text lxml.etree._AppendOnlyElementProxy-class.html#text
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyElementProxy.prefix lxml.etree._ReadOnlyElementProxy-class.html#prefix
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._AppendOnlyElementProxy.append       lxml.etree._AppendOnlyElementProxy-class.html#append
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._AppendOnlyElementProxy.__new__      lxml.etree._AppendOnlyElementProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._AppendOnlyElementProxy.extend       lxml.etree._AppendOnlyElementProxy-class.html#extend
-lxml.etree._ReadOnlyElementProxy.get    lxml.etree._ReadOnlyElementProxy-class.html#get
-lxml.etree._ReadOnlyElementProxy.keys   lxml.etree._ReadOnlyElementProxy-class.html#keys
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyElementProxy.items  lxml.etree._ReadOnlyElementProxy-class.html#items
-lxml.etree._ReadOnlyElementProxy.values lxml.etree._ReadOnlyElementProxy-class.html#values
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyElementProxy.attrib lxml.etree._ReadOnlyElementProxy-class.html#attrib
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._Attrib      lxml.etree._Attrib-class.html
-lxml.etree._Attrib.iteritems    lxml.etree._Attrib-class.html#iteritems
-lxml.etree._Attrib.pop  lxml.etree._Attrib-class.html#pop
-lxml.etree._Attrib.has_key      lxml.etree._Attrib-class.html#has_key
-lxml.etree._Attrib.__lt__       lxml.etree._Attrib-class.html#__lt__
-lxml.etree._Attrib.__new__      lxml.etree._Attrib-class.html#__new__
-lxml.etree._Attrib.__contains__ lxml.etree._Attrib-class.html#__contains__
-lxml.etree._Attrib.itervalues   lxml.etree._Attrib-class.html#itervalues
-lxml.etree._Attrib.__len__      lxml.etree._Attrib-class.html#__len__
-lxml.etree._Attrib.__ne__       lxml.etree._Attrib-class.html#__ne__
-lxml.etree._Attrib.__getitem__  lxml.etree._Attrib-class.html#__getitem__
-lxml.etree._Attrib.get  lxml.etree._Attrib-class.html#get
-lxml.etree._Attrib.keys lxml.etree._Attrib-class.html#keys
-lxml.etree._Attrib.update       lxml.etree._Attrib-class.html#update
-lxml.etree._Attrib.__iter__     lxml.etree._Attrib-class.html#__iter__
-lxml.etree._Attrib.__gt__       lxml.etree._Attrib-class.html#__gt__
-lxml.etree._Attrib.__eq__       lxml.etree._Attrib-class.html#__eq__
-lxml.etree._Attrib.iterkeys     lxml.etree._Attrib-class.html#iterkeys
-lxml.etree._Attrib.__delitem__  lxml.etree._Attrib-class.html#__delitem__
-lxml.etree._Attrib.__nonzero__  lxml.etree._Attrib-class.html#__nonzero__
-lxml.etree._Attrib.items        lxml.etree._Attrib-class.html#items
-lxml.etree._Attrib.clear        lxml.etree._Attrib-class.html#clear
-lxml.etree._Attrib.__setitem__  lxml.etree._Attrib-class.html#__setitem__
-lxml.etree._Attrib.__le__       lxml.etree._Attrib-class.html#__le__
-lxml.etree._Attrib.values       lxml.etree._Attrib-class.html#values
-lxml.etree._Attrib.__repr__     lxml.etree._Attrib-class.html#__repr__
-lxml.etree._Attrib.__ge__       lxml.etree._Attrib-class.html#__ge__
-lxml.etree._AttribIterator      lxml.etree._AttribIterator-class.html
-lxml.etree._AttribIterator.__new__      lxml.etree._AttribIterator-class.html#__new__
-lxml.etree._AttribIterator.__next__     lxml.etree._AttribIterator-class.html#__next__
-lxml.etree._AttribIterator.next lxml.etree._AttribIterator-class.html#next
-lxml.etree._AttribIterator.__iter__     lxml.etree._AttribIterator-class.html#__iter__
-lxml.etree._BaseContext lxml.etree._BaseContext-class.html
-lxml.etree._BaseContext.__new__ lxml.etree._BaseContext-class.html#__new__
-lxml.etree._BaseContext.eval_context    lxml.etree._BaseContext-class.html#eval_context
-lxml.etree._BaseContext.context_node    lxml.etree._BaseContext-class.html#context_node
-lxml.etree._BaseContext.__init__        lxml.etree._BaseContext-class.html#__init__
-lxml.etree._BaseErrorLog        lxml.etree._BaseErrorLog-class.html
-lxml.etree._BaseErrorLog.__new__        lxml.etree._BaseErrorLog-class.html#__new__
-lxml.etree._BaseErrorLog.last_error     lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._BaseErrorLog.__repr__       lxml.etree._BaseErrorLog-class.html#__repr__
-lxml.etree._BaseErrorLog.copy   lxml.etree._BaseErrorLog-class.html#copy
-lxml.etree._BaseErrorLog.__init__       lxml.etree._BaseErrorLog-class.html#__init__
-lxml.etree._BaseParser  lxml.etree._BaseParser-class.html
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._BaseParser.__init__ lxml.etree._BaseParser-class.html#__init__
-lxml.etree._BaseParser.__new__  lxml.etree._BaseParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._ClassNamespaceRegistry      lxml.etree._ClassNamespaceRegistry-class.html
-lxml.etree._ClassNamespaceRegistry.__new__      lxml.etree._ClassNamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__       lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update    lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__  lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._ClassNamespaceRegistry.__delitem__  lxml.etree._ClassNamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items     lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear     lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._ClassNamespaceRegistry.__setitem__  lxml.etree._ClassNamespaceRegistry-class.html#__setitem__
-lxml.etree._ClassNamespaceRegistry.__repr__     lxml.etree._ClassNamespaceRegistry-class.html#__repr__
-lxml.etree._Comment     lxml.etree._Comment-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Comment.tag lxml.etree._Comment-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Comment.__new__     lxml.etree._Comment-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Comment.__repr__    lxml.etree._Comment-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Document    lxml.etree._Document-class.html
-lxml.etree._Document.__new__    lxml.etree._Document-class.html#__new__
-lxml.etree._DomainErrorLog      lxml.etree._DomainErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error     lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings   lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._DomainErrorLog.__init__     lxml.etree._DomainErrorLog-class.html#__init__
-lxml.etree._DomainErrorLog.__new__      lxml.etree._DomainErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__   lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level      lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__        lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__    lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels  lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ErrorLog.__iter__   lxml.etree._ErrorLog-class.html#__iter__
-lxml.etree._ErrorLog.copy       lxml.etree._ErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__    lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals     lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._DomainErrorLog.receive      lxml.etree._DomainErrorLog-class.html#receive
-lxml.etree._ErrorLog.clear      lxml.etree._ErrorLog-class.html#clear
-lxml.etree._ListErrorLog.filter_from_errors     lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types   lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__       lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._Element     lxml.etree._Element-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.__new__     lxml.etree._Element-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._ElementIterator     lxml.etree._ElementIterator-class.html
-lxml.etree._ElementIterator.__new__     lxml.etree._ElementIterator-class.html#__new__
-lxml.etree._ElementIterator.__next__    lxml.etree._ElementIterator-class.html#__next__
-lxml.etree._ElementIterator.next        lxml.etree._ElementIterator-class.html#next
-lxml.etree._ElementIterator.__iter__    lxml.etree._ElementIterator-class.html#__iter__
-lxml.etree._ElementStringResult lxml.etree._ElementStringResult-class.html
-lxml.etree._ElementStringResult.getparent       lxml.etree._ElementStringResult-class.html#getparent
-lxml.etree._ElementTagMatcher   lxml.etree._ElementTagMatcher-class.html
-lxml.etree._ElementTagMatcher.__new__   lxml.etree._ElementTagMatcher-class.html#__new__
-lxml.etree._ElementTree lxml.etree._ElementTree-class.html
-lxml.etree._ElementTree.getroot lxml.etree._ElementTree-class.html#getroot
-lxml.etree._ElementTree.iterfind        lxml.etree._ElementTree-class.html#iterfind
-lxml.etree._ElementTree.parse   lxml.etree._ElementTree-class.html#parse
-lxml.etree._ElementTree.relaxng lxml.etree._ElementTree-class.html#relaxng
-lxml.etree._ElementTree.find    lxml.etree._ElementTree-class.html#find
-lxml.etree._ElementTree.__new__ lxml.etree._ElementTree-class.html#__new__
-lxml.etree._ElementTree.findtext        lxml.etree._ElementTree-class.html#findtext
-lxml.etree._ElementTree.findall lxml.etree._ElementTree-class.html#findall
-lxml.etree._ElementTree.write   lxml.etree._ElementTree-class.html#write
-lxml.etree._ElementTree._setroot        lxml.etree._ElementTree-class.html#_setroot
-lxml.etree._ElementTree.xpath   lxml.etree._ElementTree-class.html#xpath
-lxml.etree._ElementTree.parser  lxml.etree._ElementTree-class.html#parser
-lxml.etree._ElementTree.xslt    lxml.etree._ElementTree-class.html#xslt
-lxml.etree._ElementTree.__deepcopy__    lxml.etree._ElementTree-class.html#__deepcopy__
-lxml.etree._ElementTree.getpath lxml.etree._ElementTree-class.html#getpath
-lxml.etree._ElementTree.write_c14n      lxml.etree._ElementTree-class.html#write_c14n
-lxml.etree._ElementTree.xmlschema       lxml.etree._ElementTree-class.html#xmlschema
-lxml.etree._ElementTree.xinclude        lxml.etree._ElementTree-class.html#xinclude
-lxml.etree._ElementTree.docinfo lxml.etree._ElementTree-class.html#docinfo
-lxml.etree._ElementTree.getiterator     lxml.etree._ElementTree-class.html#getiterator
-lxml.etree._ElementTree.iter    lxml.etree._ElementTree-class.html#iter
-lxml.etree._ElementTree.__copy__        lxml.etree._ElementTree-class.html#__copy__
-lxml.etree._ElementUnicodeResult        lxml.etree._ElementUnicodeResult-class.html
-lxml.etree._ElementUnicodeResult.getparent      lxml.etree._ElementUnicodeResult-class.html#getparent
-lxml.etree._ElementUnicodeResult.is_attribute   lxml.etree._ElementUnicodeResult-class.html#is_attribute
-lxml.etree._ElementUnicodeResult.__new__        lxml.etree._ElementUnicodeResult-class.html#__new__
-lxml.etree._ElementUnicodeResult.is_text        lxml.etree._ElementUnicodeResult-class.html#is_text
-lxml.etree._ElementUnicodeResult.attrname       lxml.etree._ElementUnicodeResult-class.html#attrname
-lxml.etree._ElementUnicodeResult.is_tail        lxml.etree._ElementUnicodeResult-class.html#is_tail
-lxml.etree._Entity      lxml.etree._Entity-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Entity.text lxml.etree._Entity-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Entity.tag  lxml.etree._Entity-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Entity.__new__      lxml.etree._Entity-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Entity.name lxml.etree._Entity-class.html#name
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Entity.__repr__     lxml.etree._Entity-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._ErrorLog    lxml.etree._ErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error     lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings   lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._ErrorLog.__init__   lxml.etree._ErrorLog-class.html#__init__
-lxml.etree._ErrorLog.__new__    lxml.etree._ErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__   lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level      lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__        lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__    lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels  lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ErrorLog.__iter__   lxml.etree._ErrorLog-class.html#__iter__
-lxml.etree._ErrorLog.copy       lxml.etree._ErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__    lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals     lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._ErrorLog.receive    lxml.etree._ErrorLog-class.html#receive
-lxml.etree._ErrorLog.clear      lxml.etree._ErrorLog-class.html#clear
-lxml.etree._ListErrorLog.filter_from_errors     lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types   lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__       lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._ExceptionContext    lxml.etree._ExceptionContext-class.html
-lxml.etree._ExceptionContext.__new__    lxml.etree._ExceptionContext-class.html#__new__
-lxml.etree._ExsltRegExp lxml.etree._ExsltRegExp-class.html
-lxml.etree._ExsltRegExp.__new__ lxml.etree._ExsltRegExp-class.html#__new__
-lxml.etree._ExsltRegExp.replace lxml.etree._ExsltRegExp-class.html#replace
-lxml.etree._ExsltRegExp.test    lxml.etree._ExsltRegExp-class.html#test
-lxml.etree._ExsltRegExp.match   lxml.etree._ExsltRegExp-class.html#match
-lxml.etree._FeedParser  lxml.etree._FeedParser-class.html
-lxml.etree._FeedParser.feed     lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close    lxml.etree._FeedParser-class.html#close
-lxml.etree._BaseParser.__init__ lxml.etree._BaseParser-class.html#__init__
-lxml.etree._FeedParser.__new__  lxml.etree._FeedParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log   lxml.etree._FeedParser-class.html#feed_error_log
-lxml.etree._FileReaderContext   lxml.etree._FileReaderContext-class.html
-lxml.etree._FileReaderContext.__new__   lxml.etree._FileReaderContext-class.html#__new__
-lxml.etree._FilelikeWriter      lxml.etree._FilelikeWriter-class.html
-lxml.etree._FilelikeWriter.__new__      lxml.etree._FilelikeWriter-class.html#__new__
-lxml.etree._FunctionNamespaceRegistry   lxml.etree._FunctionNamespaceRegistry-class.html
-lxml.etree._FunctionNamespaceRegistry.__new__   lxml.etree._FunctionNamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__       lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update    lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__  lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._FunctionNamespaceRegistry.__delitem__       lxml.etree._FunctionNamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items     lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear     lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._FunctionNamespaceRegistry.__setitem__       lxml.etree._FunctionNamespaceRegistry-class.html#__setitem__
-lxml.etree._FunctionNamespaceRegistry.__repr__  lxml.etree._FunctionNamespaceRegistry-class.html#__repr__
-lxml.etree._IDDict      lxml.etree._IDDict-class.html
-lxml.etree._IDDict.has_key      lxml.etree._IDDict-class.html#has_key
-lxml.etree._IDDict.__new__      lxml.etree._IDDict-class.html#__new__
-lxml.etree._IDDict.__contains__ lxml.etree._IDDict-class.html#__contains__
-lxml.etree._IDDict.itervalues   lxml.etree._IDDict-class.html#itervalues
-lxml.etree._IDDict.__len__      lxml.etree._IDDict-class.html#__len__
-lxml.etree._IDDict.__getitem__  lxml.etree._IDDict-class.html#__getitem__
-lxml.etree._IDDict.get  lxml.etree._IDDict-class.html#get
-lxml.etree._IDDict.keys lxml.etree._IDDict-class.html#keys
-lxml.etree._IDDict.__iter__     lxml.etree._IDDict-class.html#__iter__
-lxml.etree._IDDict.iteritems    lxml.etree._IDDict-class.html#iteritems
-lxml.etree._IDDict.copy lxml.etree._IDDict-class.html#copy
-lxml.etree._IDDict.iterkeys     lxml.etree._IDDict-class.html#iterkeys
-lxml.etree._IDDict.items        lxml.etree._IDDict-class.html#items
-lxml.etree._IDDict.values       lxml.etree._IDDict-class.html#values
-lxml.etree._IDDict.__repr__     lxml.etree._IDDict-class.html#__repr__
-lxml.etree._InputDocument       lxml.etree._InputDocument-class.html
-lxml.etree._InputDocument.__new__       lxml.etree._InputDocument-class.html#__new__
-lxml.etree._IterparseContext    lxml.etree._IterparseContext-class.html
-lxml.etree._IterparseContext.__new__    lxml.etree._IterparseContext-class.html#__new__
-lxml.etree._ListErrorLog        lxml.etree._ListErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error     lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings   lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._ListErrorLog.__init__       lxml.etree._ListErrorLog-class.html#__init__
-lxml.etree._ListErrorLog.__new__        lxml.etree._ListErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__   lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level      lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__        lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__    lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels  lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ListErrorLog.__iter__       lxml.etree._ListErrorLog-class.html#__iter__
-lxml.etree._ListErrorLog.copy   lxml.etree._ListErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__    lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals     lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._ListErrorLog.filter_from_errors     lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types   lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__       lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._LogEntry    lxml.etree._LogEntry-class.html
-lxml.etree._LogEntry.domain     lxml.etree._LogEntry-class.html#domain
-lxml.etree._LogEntry.message    lxml.etree._LogEntry-class.html#message
-lxml.etree._LogEntry.level_name lxml.etree._LogEntry-class.html#level_name
-lxml.etree._LogEntry.__new__    lxml.etree._LogEntry-class.html#__new__
-lxml.etree._LogEntry.type_name  lxml.etree._LogEntry-class.html#type_name
-lxml.etree._LogEntry.domain_name        lxml.etree._LogEntry-class.html#domain_name
-lxml.etree._LogEntry.filename   lxml.etree._LogEntry-class.html#filename
-lxml.etree._LogEntry.type       lxml.etree._LogEntry-class.html#type
-lxml.etree._LogEntry.line       lxml.etree._LogEntry-class.html#line
-lxml.etree._LogEntry.level      lxml.etree._LogEntry-class.html#level
-lxml.etree._LogEntry.column     lxml.etree._LogEntry-class.html#column
-lxml.etree._LogEntry.__repr__   lxml.etree._LogEntry-class.html#__repr__
-lxml.etree._ModifyContentOnlyEntityProxy        lxml.etree._ModifyContentOnlyEntityProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ModifyContentOnlyProxy.text lxml.etree._ModifyContentOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ModifyContentOnlyEntityProxy.__new__        lxml.etree._ModifyContentOnlyEntityProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ModifyContentOnlyEntityProxy.name   lxml.etree._ModifyContentOnlyEntityProxy-class.html#name
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ModifyContentOnlyPIProxy    lxml.etree._ModifyContentOnlyPIProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ModifyContentOnlyProxy.text lxml.etree._ModifyContentOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ModifyContentOnlyPIProxy.__new__    lxml.etree._ModifyContentOnlyPIProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ModifyContentOnlyPIProxy.target     lxml.etree._ModifyContentOnlyPIProxy-class.html#target
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ModifyContentOnlyProxy      lxml.etree._ModifyContentOnlyProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ModifyContentOnlyProxy.text lxml.etree._ModifyContentOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ModifyContentOnlyProxy.__new__      lxml.etree._ModifyContentOnlyProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._NamespaceRegistry   lxml.etree._NamespaceRegistry-class.html
-lxml.etree._NamespaceRegistry.__new__   lxml.etree._NamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__       lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update    lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__  lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._NamespaceRegistry.__delitem__       lxml.etree._NamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items     lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear     lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._NamespaceRegistry.__setitem__       lxml.etree._NamespaceRegistry-class.html#__setitem__
-lxml.etree._OpaqueDocumentWrapper       lxml.etree._OpaqueDocumentWrapper-class.html
-lxml.etree._OpaqueDocumentWrapper.__new__       lxml.etree._OpaqueDocumentWrapper-class.html#__new__
-lxml.etree._OpaqueDocumentWrapper.extend        lxml.etree._OpaqueDocumentWrapper-class.html#extend
-lxml.etree._OpaqueDocumentWrapper.append        lxml.etree._OpaqueDocumentWrapper-class.html#append
-lxml.etree._OpaqueNodeWrapper.__init__  lxml.etree._OpaqueNodeWrapper-class.html#__init__
-lxml.etree._OpaqueNodeWrapper   lxml.etree._OpaqueNodeWrapper-class.html
-lxml.etree._OpaqueNodeWrapper.__new__   lxml.etree._OpaqueNodeWrapper-class.html#__new__
-lxml.etree._OpaqueNodeWrapper.__init__  lxml.etree._OpaqueNodeWrapper-class.html#__init__
-lxml.etree._ParserContext       lxml.etree._ParserContext-class.html
-lxml.etree._ParserContext.__new__       lxml.etree._ParserContext-class.html#__new__
-lxml.etree._ParserDictionaryContext     lxml.etree._ParserDictionaryContext-class.html
-lxml.etree._ParserDictionaryContext.__new__     lxml.etree._ParserDictionaryContext-class.html#__new__
-lxml.etree._ParserSchemaValidationContext       lxml.etree._ParserSchemaValidationContext-class.html
-lxml.etree._ParserSchemaValidationContext.__new__       lxml.etree._ParserSchemaValidationContext-class.html#__new__
-lxml.etree._ProcessingInstruction       lxml.etree._ProcessingInstruction-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag   lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._ProcessingInstruction.__new__       lxml.etree._ProcessingInstruction-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target        lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__      lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._PythonSaxParserTarget       lxml.etree._PythonSaxParserTarget-class.html
-lxml.etree._PythonSaxParserTarget.__new__       lxml.etree._PythonSaxParserTarget-class.html#__new__
-lxml.etree._ReadOnlyElementProxy        lxml.etree._ReadOnlyElementProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyProxy.text  lxml.etree._ReadOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyElementProxy.prefix lxml.etree._ReadOnlyElementProxy-class.html#prefix
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyElementProxy.__new__        lxml.etree._ReadOnlyElementProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyElementProxy.get    lxml.etree._ReadOnlyElementProxy-class.html#get
-lxml.etree._ReadOnlyElementProxy.keys   lxml.etree._ReadOnlyElementProxy-class.html#keys
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyElementProxy.items  lxml.etree._ReadOnlyElementProxy-class.html#items
-lxml.etree._ReadOnlyElementProxy.values lxml.etree._ReadOnlyElementProxy-class.html#values
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyElementProxy.attrib lxml.etree._ReadOnlyElementProxy-class.html#attrib
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ReadOnlyEntityProxy lxml.etree._ReadOnlyEntityProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyEntityProxy.text    lxml.etree._ReadOnlyEntityProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyEntityProxy.__new__ lxml.etree._ReadOnlyEntityProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyEntityProxy.name    lxml.etree._ReadOnlyEntityProxy-class.html#name
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ReadOnlyPIProxy     lxml.etree._ReadOnlyPIProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyProxy.text  lxml.etree._ReadOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyPIProxy.__new__     lxml.etree._ReadOnlyPIProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyPIProxy.target      lxml.etree._ReadOnlyPIProxy-class.html#target
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ReadOnlyProxy       lxml.etree._ReadOnlyProxy-class.html
-lxml.etree._ReadOnlyProxy.getprevious   lxml.etree._ReadOnlyProxy-class.html#getprevious
-lxml.etree._ReadOnlyProxy.getparent     lxml.etree._ReadOnlyProxy-class.html#getparent
-lxml.etree._ReadOnlyProxy.sourceline    lxml.etree._ReadOnlyProxy-class.html#sourceline
-lxml.etree._ReadOnlyProxy.text  lxml.etree._ReadOnlyProxy-class.html#text
-lxml.etree._ReadOnlyProxy.iterchildren  lxml.etree._ReadOnlyProxy-class.html#iterchildren
-lxml.etree._ReadOnlyProxy.tag   lxml.etree._ReadOnlyProxy-class.html#tag
-lxml.etree._ReadOnlyProxy.getnext       lxml.etree._ReadOnlyProxy-class.html#getnext
-lxml.etree._ReadOnlyProxy.__new__       lxml.etree._ReadOnlyProxy-class.html#__new__
-lxml.etree._ReadOnlyProxy.tail  lxml.etree._ReadOnlyProxy-class.html#tail
-lxml.etree._ReadOnlyProxy.getchildren   lxml.etree._ReadOnlyProxy-class.html#getchildren
-lxml.etree._ReadOnlyProxy.__len__       lxml.etree._ReadOnlyProxy-class.html#__len__
-lxml.etree._ReadOnlyProxy.__getitem__   lxml.etree._ReadOnlyProxy-class.html#__getitem__
-lxml.etree._ReadOnlyProxy.__deepcopy__  lxml.etree._ReadOnlyProxy-class.html#__deepcopy__
-lxml.etree._ReadOnlyProxy.__iter__      lxml.etree._ReadOnlyProxy-class.html#__iter__
-lxml.etree._ReadOnlyProxy.__nonzero__   lxml.etree._ReadOnlyProxy-class.html#__nonzero__
-lxml.etree._ReadOnlyProxy.__repr__      lxml.etree._ReadOnlyProxy-class.html#__repr__
-lxml.etree._ReadOnlyProxy.__copy__      lxml.etree._ReadOnlyProxy-class.html#__copy__
-lxml.etree._ResolverContext     lxml.etree._ResolverContext-class.html
-lxml.etree._ResolverContext.__new__     lxml.etree._ResolverContext-class.html#__new__
-lxml.etree._ResolverRegistry    lxml.etree._ResolverRegistry-class.html
-lxml.etree._ResolverRegistry.resolve    lxml.etree._ResolverRegistry-class.html#resolve
-lxml.etree._ResolverRegistry.__new__    lxml.etree._ResolverRegistry-class.html#__new__
-lxml.etree._ResolverRegistry.remove     lxml.etree._ResolverRegistry-class.html#remove
-lxml.etree._ResolverRegistry.add        lxml.etree._ResolverRegistry-class.html#add
-lxml.etree._ResolverRegistry.__repr__   lxml.etree._ResolverRegistry-class.html#__repr__
-lxml.etree._ResolverRegistry.copy       lxml.etree._ResolverRegistry-class.html#copy
-lxml.etree._RotatingErrorLog    lxml.etree._RotatingErrorLog-class.html
-lxml.etree._ListErrorLog.filter_domains lxml.etree._ListErrorLog-class.html#filter_domains
-lxml.etree._BaseErrorLog.last_error     lxml.etree._BaseErrorLog-class.html#last_error
-lxml.etree._ListErrorLog.filter_from_warnings   lxml.etree._ListErrorLog-class.html#filter_from_warnings
-lxml.etree._RotatingErrorLog.__init__   lxml.etree._RotatingErrorLog-class.html#__init__
-lxml.etree._RotatingErrorLog.__new__    lxml.etree._RotatingErrorLog-class.html#__new__
-lxml.etree._ListErrorLog.__contains__   lxml.etree._ListErrorLog-class.html#__contains__
-lxml.etree._ListErrorLog.filter_from_level      lxml.etree._ListErrorLog-class.html#filter_from_level
-lxml.etree._ListErrorLog.__len__        lxml.etree._ListErrorLog-class.html#__len__
-lxml.etree._ListErrorLog.__getitem__    lxml.etree._ListErrorLog-class.html#__getitem__
-lxml.etree._ListErrorLog.filter_levels  lxml.etree._ListErrorLog-class.html#filter_levels
-lxml.etree._ErrorLog.__iter__   lxml.etree._ErrorLog-class.html#__iter__
-lxml.etree._ErrorLog.copy       lxml.etree._ErrorLog-class.html#copy
-lxml.etree._ListErrorLog.__nonzero__    lxml.etree._ListErrorLog-class.html#__nonzero__
-lxml.etree._ListErrorLog.filter_from_fatals     lxml.etree._ListErrorLog-class.html#filter_from_fatals
-lxml.etree._RotatingErrorLog.receive    lxml.etree._RotatingErrorLog-class.html#receive
-lxml.etree._ErrorLog.clear      lxml.etree._ErrorLog-class.html#clear
-lxml.etree._ListErrorLog.filter_from_errors     lxml.etree._ListErrorLog-class.html#filter_from_errors
-lxml.etree._ListErrorLog.filter_types   lxml.etree._ListErrorLog-class.html#filter_types
-lxml.etree._ListErrorLog.__repr__       lxml.etree._ListErrorLog-class.html#__repr__
-lxml.etree._SaxParserContext    lxml.etree._SaxParserContext-class.html
-lxml.etree._SaxParserContext.__new__    lxml.etree._SaxParserContext-class.html#__new__
-lxml.etree._SaxParserTarget     lxml.etree._SaxParserTarget-class.html
-lxml.etree._SaxParserTarget.__new__     lxml.etree._SaxParserTarget-class.html#__new__
-lxml.etree._TargetParserContext lxml.etree._TargetParserContext-class.html
-lxml.etree._TargetParserContext.__new__ lxml.etree._TargetParserContext-class.html#__new__
-lxml.etree._TargetParserResult  lxml.etree._TargetParserResult-class.html
-lxml.etree._TargetParserResult.__init__ lxml.etree._TargetParserResult-class.html#__init__
-lxml.etree._TempStore   lxml.etree._TempStore-class.html
-lxml.etree._TempStore.__new__   lxml.etree._TempStore-class.html#__new__
-lxml.etree._TempStore.__init__  lxml.etree._TempStore-class.html#__init__
-lxml.etree._Validator   lxml.etree._Validator-class.html
-lxml.etree._Validator.__new__   lxml.etree._Validator-class.html#__new__
-lxml.etree._Validator._clear_error_log  lxml.etree._Validator-class.html#_clear_error_log
-lxml.etree._Validator.assertValid       lxml.etree._Validator-class.html#assertValid
-lxml.etree._Validator._append_log_message       lxml.etree._Validator-class.html#_append_log_message
-lxml.etree._Validator.error_log lxml.etree._Validator-class.html#error_log
-lxml.etree._Validator.assert_   lxml.etree._Validator-class.html#assert_
-lxml.etree._Validator.validate  lxml.etree._Validator-class.html#validate
-lxml.etree._XPathContext        lxml.etree._XPathContext-class.html
-lxml.etree._XPathContext.__new__        lxml.etree._XPathContext-class.html#__new__
-lxml.etree._BaseContext.eval_context    lxml.etree._BaseContext-class.html#eval_context
-lxml.etree._BaseContext.context_node    lxml.etree._BaseContext-class.html#context_node
-lxml.etree._XPathContext.__init__       lxml.etree._XPathContext-class.html#__init__
-lxml.etree._XPathEvaluatorBase  lxml.etree._XPathEvaluatorBase-class.html
-lxml.etree._XPathEvaluatorBase.__new__  lxml.etree._XPathEvaluatorBase-class.html#__new__
-lxml.etree._XPathEvaluatorBase.evaluate lxml.etree._XPathEvaluatorBase-class.html#evaluate
-lxml.etree._XPathEvaluatorBase.error_log        lxml.etree._XPathEvaluatorBase-class.html#error_log
-lxml.etree._XPathEvaluatorBase.__init__ lxml.etree._XPathEvaluatorBase-class.html#__init__
-lxml.etree._XPathFunctionNamespaceRegistry      lxml.etree._XPathFunctionNamespaceRegistry-class.html
-lxml.etree._XPathFunctionNamespaceRegistry.prefix       lxml.etree._XPathFunctionNamespaceRegistry-class.html#prefix
-lxml.etree._XPathFunctionNamespaceRegistry.__new__      lxml.etree._XPathFunctionNamespaceRegistry-class.html#__new__
-lxml.etree._NamespaceRegistry.__getitem__       lxml.etree._NamespaceRegistry-class.html#__getitem__
-lxml.etree._NamespaceRegistry.update    lxml.etree._NamespaceRegistry-class.html#update
-lxml.etree._NamespaceRegistry.__iter__  lxml.etree._NamespaceRegistry-class.html#__iter__
-lxml.etree._NamespaceRegistry.iteritems lxml.etree._NamespaceRegistry-class.html#iteritems
-lxml.etree._FunctionNamespaceRegistry.__delitem__       lxml.etree._FunctionNamespaceRegistry-class.html#__delitem__
-lxml.etree._NamespaceRegistry.items     lxml.etree._NamespaceRegistry-class.html#items
-lxml.etree._NamespaceRegistry.clear     lxml.etree._NamespaceRegistry-class.html#clear
-lxml.etree._FunctionNamespaceRegistry.__setitem__       lxml.etree._FunctionNamespaceRegistry-class.html#__setitem__
-lxml.etree._FunctionNamespaceRegistry.__repr__  lxml.etree._FunctionNamespaceRegistry-class.html#__repr__
-lxml.etree._XSLTContext lxml.etree._XSLTContext-class.html
-lxml.etree._XSLTContext.__new__ lxml.etree._XSLTContext-class.html#__new__
-lxml.etree._BaseContext.eval_context    lxml.etree._BaseContext-class.html#eval_context
-lxml.etree._BaseContext.context_node    lxml.etree._BaseContext-class.html#context_node
-lxml.etree._XSLTContext.__init__        lxml.etree._XSLTContext-class.html#__init__
-lxml.etree._XSLTProcessingInstruction   lxml.etree._XSLTProcessingInstruction-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._XSLTProcessingInstruction.set       lxml.etree._XSLTProcessingInstruction-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag   lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._XSLTProcessingInstruction.__new__   lxml.etree._XSLTProcessingInstruction-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.PIBase.__init__      lxml.etree.PIBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree._XSLTProcessingInstruction.get       lxml.etree._XSLTProcessingInstruction-class.html#get
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target        lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__      lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._XSLTProcessingInstruction.parseXSL  lxml.etree._XSLTProcessingInstruction-class.html#parseXSL
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._XSLTQuotedStringParam       lxml.etree._XSLTQuotedStringParam-class.html
-lxml.etree._XSLTQuotedStringParam.__new__       lxml.etree._XSLTQuotedStringParam-class.html#__new__
-lxml.etree._XSLTResolverContext lxml.etree._XSLTResolverContext-class.html
-lxml.etree._XSLTResolverContext.__new__ lxml.etree._XSLTResolverContext-class.html#__new__
-lxml.etree._XSLTResultTree      lxml.etree._XSLTResultTree-class.html
-lxml.etree._ElementTree.getroot lxml.etree._ElementTree-class.html#getroot
-lxml.etree._XSLTResultTree.__str__      lxml.etree._XSLTResultTree-class.html#__str__
-lxml.etree._ElementTree.parser  lxml.etree._ElementTree-class.html#parser
-lxml.etree._ElementTree.parse   lxml.etree._ElementTree-class.html#parse
-lxml.etree._ElementTree.relaxng lxml.etree._ElementTree-class.html#relaxng
-lxml.etree._ElementTree.findall lxml.etree._ElementTree-class.html#findall
-lxml.etree._XSLTResultTree.__new__      lxml.etree._XSLTResultTree-class.html#__new__
-lxml.etree._ElementTree.findtext        lxml.etree._ElementTree-class.html#findtext
-lxml.etree._ElementTree.find    lxml.etree._ElementTree-class.html#find
-lxml.etree._ElementTree.write   lxml.etree._ElementTree-class.html#write
-lxml.etree._ElementTree._setroot        lxml.etree._ElementTree-class.html#_setroot
-lxml.etree._ElementTree.xpath   lxml.etree._ElementTree-class.html#xpath
-lxml.etree._ElementTree.iterfind        lxml.etree._ElementTree-class.html#iterfind
-lxml.etree._ElementTree.xslt    lxml.etree._ElementTree-class.html#xslt
-lxml.etree._ElementTree.__deepcopy__    lxml.etree._ElementTree-class.html#__deepcopy__
-lxml.etree._ElementTree.getpath lxml.etree._ElementTree-class.html#getpath
-lxml.etree._ElementTree.write_c14n      lxml.etree._ElementTree-class.html#write_c14n
-lxml.etree._ElementTree.xmlschema       lxml.etree._ElementTree-class.html#xmlschema
-lxml.etree._ElementTree.xinclude        lxml.etree._ElementTree-class.html#xinclude
-lxml.etree._ElementTree.docinfo lxml.etree._ElementTree-class.html#docinfo
-lxml.etree._XSLTResultTree.__unicode__  lxml.etree._XSLTResultTree-class.html#__unicode__
-lxml.etree._XSLTResultTree.xslt_profile lxml.etree._XSLTResultTree-class.html#xslt_profile
-lxml.etree._ElementTree.iter    lxml.etree._ElementTree-class.html#iter
-lxml.etree._ElementTree.getiterator     lxml.etree._ElementTree-class.html#getiterator
-lxml.etree._ElementTree.__copy__        lxml.etree._ElementTree-class.html#__copy__
-lxml.etree.__ContentOnlyElement lxml.etree.__ContentOnlyElement-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.__ContentOnlyElement.__new__ lxml.etree.__ContentOnlyElement-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree.iterparse    lxml.etree.iterparse-class.html
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree.iterparse.__init__   lxml.etree.iterparse-class.html#__init__
-lxml.etree.iterparse.__new__    lxml.etree.iterparse-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree.iterparse.next       lxml.etree.iterparse-class.html#next
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree.iterparse.__next__   lxml.etree.iterparse-class.html#__next__
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree.iterparse.__iter__   lxml.etree.iterparse-class.html#__iter__
-lxml.etree.iterparse.copy       lxml.etree.iterparse-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree.iterparse.error_log  lxml.etree.iterparse-class.html#error_log
-lxml.etree.iterparse.root       lxml.etree.iterparse-class.html#root
-lxml.etree.iterwalk     lxml.etree.iterwalk-class.html
-lxml.etree.iterwalk.__new__     lxml.etree.iterwalk-class.html#__new__
-lxml.etree.iterwalk.__next__    lxml.etree.iterwalk-class.html#__next__
-lxml.etree.iterwalk.next        lxml.etree.iterwalk-class.html#next
-lxml.etree.iterwalk.__iter__    lxml.etree.iterwalk-class.html#__iter__
-lxml.etree.iterwalk.__init__    lxml.etree.iterwalk-class.html#__init__
-lxml.html.CheckboxGroup lxml.html.CheckboxGroup-class.html
-lxml.html.CheckboxGroup._value__del     lxml.html.CheckboxGroup-class.html#_value__del
-lxml.html.CheckboxGroup.value   lxml.html.CheckboxGroup-class.html#value
-lxml.html.CheckboxGroup._value__set     lxml.html.CheckboxGroup-class.html#_value__set
-lxml.html.CheckboxGroup.__repr__        lxml.html.CheckboxGroup-class.html#__repr__
-lxml.html.CheckboxGroup._value__get     lxml.html.CheckboxGroup-class.html#_value__get
-lxml.html.CheckboxValues        lxml.html.CheckboxValues-class.html
-lxml.html.CheckboxValues.__init__       lxml.html.CheckboxValues-class.html#__init__
-lxml.html.CheckboxValues.add    lxml.html.CheckboxValues-class.html#add
-lxml.html.CheckboxValues.__iter__       lxml.html.CheckboxValues-class.html#__iter__
-lxml.html.CheckboxValues.remove lxml.html.CheckboxValues-class.html#remove
-lxml.html.CheckboxValues.__repr__       lxml.html.CheckboxValues-class.html#__repr__
-lxml.html.FieldsDict    lxml.html.FieldsDict-class.html
-lxml.html.FieldsDict.__init__   lxml.html.FieldsDict-class.html#__init__
-lxml.html.FieldsDict.__contains__       lxml.html.FieldsDict-class.html#__contains__
-lxml.html.FieldsDict.__getitem__        lxml.html.FieldsDict-class.html#__getitem__
-lxml.html.FieldsDict.keys       lxml.html.FieldsDict-class.html#keys
-lxml.html.FieldsDict.__delitem__        lxml.html.FieldsDict-class.html#__delitem__
-lxml.html.FieldsDict.__setitem__        lxml.html.FieldsDict-class.html#__setitem__
-lxml.html.FieldsDict.__repr__   lxml.html.FieldsDict-class.html#__repr__
-lxml.html.FormElement   lxml.html.FormElement-class.html
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.FormElement._fields__get      lxml.html.FormElement-class.html#_fields__get
-lxml.html.FormElement.form_values       lxml.html.FormElement-class.html#form_values
-lxml.html.FormElement._action__del      lxml.html.FormElement-class.html#_action__del
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.html.FormElement._fields__set      lxml.html.FormElement-class.html#_fields__set
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.html.FormElement._method__set      lxml.html.FormElement-class.html#_method__set
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.FormElement.fields    lxml.html.FormElement-class.html#fields
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.html.FormElement.method    lxml.html.FormElement-class.html#method
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.html.FormElement._action__get      lxml.html.FormElement-class.html#_action__get
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.html.FormElement._name     lxml.html.FormElement-class.html#_name
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.html.FormElement.action    lxml.html.FormElement-class.html#action
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.html.FormElement._method__get      lxml.html.FormElement-class.html#_method__get
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.html.FormElement._action__set      lxml.html.FormElement-class.html#_action__set
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.html.FormElement.inputs    lxml.html.FormElement-class.html#inputs
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.html.HTMLParser    lxml.html.HTMLParser-class.html
-lxml.etree._FeedParser.feed     lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close    lxml.etree._FeedParser-class.html#close
-lxml.html.HTMLParser.__init__   lxml.html.HTMLParser-class.html#__init__
-lxml.etree.HTMLParser.__new__   lxml.etree.HTMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log   lxml.etree._FeedParser-class.html#feed_error_log
-lxml.html.HtmlComment   lxml.html.HtmlComment-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Comment.tag lxml.etree._Comment-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.CommentBase.__new__  lxml.etree.CommentBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.CommentBase.__init__ lxml.etree.CommentBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Comment.__repr__    lxml.etree._Comment-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.html.HtmlElement   lxml.html.HtmlElement-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.html.HtmlElementClassLookup        lxml.html.HtmlElementClassLookup-class.html
-lxml.html.HtmlElementClassLookup._default_element_classes       lxml.html.HtmlElementClassLookup-class.html#_default_element_classes
-lxml.etree.CustomElementClassLookup.__new__     lxml.etree.CustomElementClassLookup-class.html#__new__
-lxml.html.HtmlElementClassLookup.lookup lxml.html.HtmlElementClassLookup-class.html#lookup
-lxml.etree.FallbackElementClassLookup.fallback  lxml.etree.FallbackElementClassLookup-class.html#fallback
-lxml.etree.FallbackElementClassLookup.set_fallback      lxml.etree.FallbackElementClassLookup-class.html#set_fallback
-lxml.html.HtmlElementClassLookup.__init__       lxml.html.HtmlElementClassLookup-class.html#__init__
-lxml.html.HtmlEntity    lxml.html.HtmlEntity-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Entity.text lxml.etree._Entity-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Entity.tag  lxml.etree._Entity-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.EntityBase.__new__   lxml.etree.EntityBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.EntityBase.__init__  lxml.etree.EntityBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Entity.name lxml.etree._Entity-class.html#name
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._Entity.__repr__     lxml.etree._Entity-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.html.HtmlMixin     lxml.html.HtmlMixin-class.html
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.html.HtmlProcessingInstruction     lxml.html.HtmlProcessingInstruction-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree.__ContentOnlyElement.set     lxml.etree.__ContentOnlyElement-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree.__ContentOnlyElement.text    lxml.etree.__ContentOnlyElement-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._ProcessingInstruction.tag   lxml.etree._ProcessingInstruction-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree.__ContentOnlyElement.append  lxml.etree.__ContentOnlyElement-class.html#append
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.PIBase.__new__       lxml.etree.PIBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.PIBase.__init__      lxml.etree.PIBase-class.html#__init__
-lxml.etree.__ContentOnlyElement.__delitem__     lxml.etree.__ContentOnlyElement-class.html#__delitem__
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.etree.__ContentOnlyElement.__len__ lxml.etree.__ContentOnlyElement-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree.__ContentOnlyElement.__getitem__     lxml.etree.__ContentOnlyElement-class.html#__getitem__
-lxml.etree.__ContentOnlyElement.get     lxml.etree.__ContentOnlyElement-class.html#get
-lxml.etree.__ContentOnlyElement.keys    lxml.etree.__ContentOnlyElement-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree.__ContentOnlyElement.__setitem__     lxml.etree.__ContentOnlyElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree.__ContentOnlyElement.insert  lxml.etree.__ContentOnlyElement-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._ProcessingInstruction.target        lxml.etree._ProcessingInstruction-class.html#target
-lxml.etree.__ContentOnlyElement.items   lxml.etree.__ContentOnlyElement-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree.__ContentOnlyElement.values  lxml.etree.__ContentOnlyElement-class.html#values
-lxml.etree._ProcessingInstruction.__repr__      lxml.etree._ProcessingInstruction-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree.__ContentOnlyElement.attrib  lxml.etree.__ContentOnlyElement-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.html.InputElement  lxml.html.InputElement-class.html
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.html.InputMixin._name__del lxml.html.InputMixin-class.html#_name__del
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.InputMixin._name__set lxml.html.InputMixin-class.html#_name__set
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.InputMixin.name       lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get lxml.html.InputMixin-class.html#_name__get
-lxml.html.InputElement._type__set       lxml.html.InputElement-class.html#_type__set
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.InputMixin.__repr__   lxml.html.InputMixin-class.html#__repr__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.html.InputElement.checked  lxml.html.InputElement-class.html#checked
-lxml.html.InputElement._type__get       lxml.html.InputElement-class.html#_type__get
-lxml.html.InputElement.type     lxml.html.InputElement-class.html#type
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.html.InputElement.checkable        lxml.html.InputElement-class.html#checkable
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.html.InputElement.value    lxml.html.InputElement-class.html#value
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.html.InputElement._value__del      lxml.html.InputElement-class.html#_value__del
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.html.InputElement._value__set      lxml.html.InputElement-class.html#_value__set
-lxml.html.InputElement._checked__set    lxml.html.InputElement-class.html#_checked__set
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.html.InputElement._value__get      lxml.html.InputElement-class.html#_value__get
-lxml.html.InputElement._checked__get    lxml.html.InputElement-class.html#_checked__get
-lxml.html.InputGetter   lxml.html.InputGetter-class.html
-lxml.html.InputGetter.__getitem__       lxml.html.InputGetter-class.html#__getitem__
-lxml.html.InputGetter.__contains__      lxml.html.InputGetter-class.html#__contains__
-lxml.html.InputGetter.keys      lxml.html.InputGetter-class.html#keys
-lxml.html.InputGetter.__iter__  lxml.html.InputGetter-class.html#__iter__
-lxml.html.InputGetter.__repr__  lxml.html.InputGetter-class.html#__repr__
-lxml.html.InputGetter._all_xpath        lxml.html.InputGetter-class.html#_all_xpath
-lxml.html.InputGetter.__init__  lxml.html.InputGetter-class.html#__init__
-lxml.html.InputGetter._name_xpath       lxml.html.InputGetter-class.html#_name_xpath
-lxml.html.InputMixin    lxml.html.InputMixin-class.html
-lxml.html.InputMixin.name       lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get lxml.html.InputMixin-class.html#_name__get
-lxml.html.InputMixin._name__set lxml.html.InputMixin-class.html#_name__set
-lxml.html.InputMixin.__repr__   lxml.html.InputMixin-class.html#__repr__
-lxml.html.InputMixin._name__del lxml.html.InputMixin-class.html#_name__del
-lxml.html.LabelElement  lxml.html.LabelElement-class.html
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.html.LabelElement._for_element__get        lxml.html.LabelElement-class.html#_for_element__get
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.html.LabelElement.for_element      lxml.html.LabelElement-class.html#for_element
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.html.LabelElement._for_element__del        lxml.html.LabelElement-class.html#_for_element__del
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.html.LabelElement._for_element__set        lxml.html.LabelElement-class.html#_for_element__set
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.html.MultipleSelectOptions lxml.html.MultipleSelectOptions-class.html
-lxml.html.MultipleSelectOptions.__init__        lxml.html.MultipleSelectOptions-class.html#__init__
-lxml.html.MultipleSelectOptions.add     lxml.html.MultipleSelectOptions-class.html#add
-lxml.html.MultipleSelectOptions.__iter__        lxml.html.MultipleSelectOptions-class.html#__iter__
-lxml.html.MultipleSelectOptions.remove  lxml.html.MultipleSelectOptions-class.html#remove
-lxml.html.MultipleSelectOptions.__repr__        lxml.html.MultipleSelectOptions-class.html#__repr__
-lxml.html.MultipleSelectOptions.options lxml.html.MultipleSelectOptions-class.html#options
-lxml.html.RadioGroup    lxml.html.RadioGroup-class.html
-lxml.html.RadioGroup._value__del        lxml.html.RadioGroup-class.html#_value__del
-lxml.html.RadioGroup.value_options      lxml.html.RadioGroup-class.html#value_options
-lxml.html.RadioGroup._value__set        lxml.html.RadioGroup-class.html#_value__set
-lxml.html.RadioGroup.value      lxml.html.RadioGroup-class.html#value
-lxml.html.RadioGroup.__repr__   lxml.html.RadioGroup-class.html#__repr__
-lxml.html.RadioGroup._value__get        lxml.html.RadioGroup-class.html#_value__get
-lxml.html.SelectElement lxml.html.SelectElement-class.html
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.html.InputMixin._name__del lxml.html.InputMixin-class.html#_name__del
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.InputMixin._name__set lxml.html.InputMixin-class.html#_name__set
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.InputMixin.name       lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get lxml.html.InputMixin-class.html#_name__get
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.InputMixin.__repr__   lxml.html.InputMixin-class.html#__repr__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.html.SelectElement._multiple__set  lxml.html.SelectElement-class.html#_multiple__set
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.SelectElement.value_options   lxml.html.SelectElement-class.html#value_options
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.html.SelectElement.value   lxml.html.SelectElement-class.html#value
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.html.SelectElement._value__del     lxml.html.SelectElement-class.html#_value__del
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.html.SelectElement.multiple        lxml.html.SelectElement-class.html#multiple
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.html.SelectElement._value__set     lxml.html.SelectElement-class.html#_value__set
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.html.SelectElement._multiple__get  lxml.html.SelectElement-class.html#_multiple__get
-lxml.html.SelectElement._value__get     lxml.html.SelectElement-class.html#_value__get
-lxml.html.TextareaElement       lxml.html.TextareaElement-class.html
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.html.InputMixin._name__del lxml.html.InputMixin-class.html#_name__del
-lxml.html.HtmlMixin.drop_tag    lxml.html.HtmlMixin-class.html#drop_tag
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.html.HtmlMixin.iterlinks   lxml.html.HtmlMixin-class.html#iterlinks
-lxml.html.HtmlMixin.base_url    lxml.html.HtmlMixin-class.html#base_url
-lxml.html.InputMixin._name__set lxml.html.InputMixin-class.html#_name__set
-lxml.html.HtmlMixin.forms       lxml.html.HtmlMixin-class.html#forms
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.html.HtmlMixin._label__get lxml.html.HtmlMixin-class.html#_label__get
-lxml.html.InputMixin.name       lxml.html.InputMixin-class.html#name
-lxml.html.InputMixin._name__get lxml.html.InputMixin-class.html#_name__get
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.html.HtmlMixin.find_rel_links      lxml.html.HtmlMixin-class.html#find_rel_links
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.html.HtmlMixin.label       lxml.html.HtmlMixin-class.html#label
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.html.HtmlMixin.resolve_base_href   lxml.html.HtmlMixin-class.html#resolve_base_href
-lxml.html.HtmlMixin.body        lxml.html.HtmlMixin-class.html#body
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.html.HtmlMixin.find_class  lxml.html.HtmlMixin-class.html#find_class
-lxml.html.HtmlMixin._label__del lxml.html.HtmlMixin-class.html#_label__del
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.html.HtmlMixin.cssselect   lxml.html.HtmlMixin-class.html#cssselect
-lxml.html.InputMixin.__repr__   lxml.html.InputMixin-class.html#__repr__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.html.HtmlMixin.drop_tree   lxml.html.HtmlMixin-class.html#drop_tree
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.html.HtmlMixin.text_content        lxml.html.HtmlMixin-class.html#text_content
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.html.HtmlMixin.rewrite_links       lxml.html.HtmlMixin-class.html#rewrite_links
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.html.HtmlMixin.head        lxml.html.HtmlMixin-class.html#head
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.html.TextareaElement.value lxml.html.TextareaElement-class.html#value
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.html.TextareaElement._value__del   lxml.html.TextareaElement-class.html#_value__del
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.html.HtmlMixin.make_links_absolute lxml.html.HtmlMixin-class.html#make_links_absolute
-lxml.html.HtmlMixin._label__set lxml.html.HtmlMixin-class.html#_label__set
-lxml.html.HtmlMixin.get_element_by_id   lxml.html.HtmlMixin-class.html#get_element_by_id
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.html.TextareaElement._value__set   lxml.html.TextareaElement-class.html#_value__set
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.html.TextareaElement._value__get   lxml.html.TextareaElement-class.html#_value__get
-lxml.html.XHTMLParser   lxml.html.XHTMLParser-class.html
-lxml.etree._FeedParser.feed     lxml.etree._FeedParser-class.html#feed
-lxml.etree._BaseParser.set_element_class_lookup lxml.etree._BaseParser-class.html#set_element_class_lookup
-lxml.etree._FeedParser.close    lxml.etree._FeedParser-class.html#close
-lxml.html.XHTMLParser.__init__  lxml.html.XHTMLParser-class.html#__init__
-lxml.etree.XMLParser.__new__    lxml.etree.XMLParser-class.html#__new__
-lxml.etree._BaseParser.setElementClassLookup    lxml.etree._BaseParser-class.html#setElementClassLookup
-lxml.etree._BaseParser.version  lxml.etree._BaseParser-class.html#version
-lxml.etree._BaseParser.makeelement      lxml.etree._BaseParser-class.html#makeelement
-lxml.etree._BaseParser.copy     lxml.etree._BaseParser-class.html#copy
-lxml.etree._BaseParser.resolvers        lxml.etree._BaseParser-class.html#resolvers
-lxml.etree._BaseParser.target   lxml.etree._BaseParser-class.html#target
-lxml.etree._BaseParser.error_log        lxml.etree._BaseParser-class.html#error_log
-lxml.etree._FeedParser.feed_error_log   lxml.etree._FeedParser-class.html#feed_error_log
-lxml.html._MethodFunc   lxml.html._MethodFunc-class.html
-lxml.html._MethodFunc.__call__  lxml.html._MethodFunc-class.html#__call__
-lxml.html._MethodFunc.__init__  lxml.html._MethodFunc-class.html#__init__
-lxml.html.clean.Cleaner lxml.html.clean.Cleaner-class.html
-lxml.html.clean.Cleaner.annoying_tags   lxml.html.clean.Cleaner-class.html#annoying_tags
-lxml.html.clean.Cleaner.links   lxml.html.clean.Cleaner-class.html#links
-lxml.html.clean.Cleaner.allow_embedded_url      lxml.html.clean.Cleaner-class.html#allow_embedded_url
-lxml.html.clean.Cleaner.remove_unknown_tags     lxml.html.clean.Cleaner-class.html#remove_unknown_tags
-lxml.html.clean.Cleaner.clean_html      lxml.html.clean.Cleaner-class.html#clean_html
-lxml.html.clean.Cleaner.meta    lxml.html.clean.Cleaner-class.html#meta
-lxml.html.clean.Cleaner.page_structure  lxml.html.clean.Cleaner-class.html#page_structure
-lxml.html.clean.Cleaner.frames  lxml.html.clean.Cleaner-class.html#frames
-lxml.html.clean.Cleaner.allow_follow    lxml.html.clean.Cleaner-class.html#allow_follow
-lxml.html.clean.Cleaner.__init__        lxml.html.clean.Cleaner-class.html#__init__
-lxml.html.clean.Cleaner.style   lxml.html.clean.Cleaner-class.html#style
-lxml.html.clean.Cleaner.allow_tags      lxml.html.clean.Cleaner-class.html#allow_tags
-lxml.html.clean.Cleaner._remove_javascript_link lxml.html.clean.Cleaner-class.html#_remove_javascript_link
-lxml.html.clean.Cleaner.comments        lxml.html.clean.Cleaner-class.html#comments
-lxml.html.clean.Cleaner.forms   lxml.html.clean.Cleaner-class.html#forms
-lxml.html.clean.Cleaner._substitute_comments    lxml.html.clean.Cleaner-class.html#_substitute_comments
-lxml.html.clean.Cleaner.kill_conditional_comments       lxml.html.clean.Cleaner-class.html#kill_conditional_comments
-lxml.html.clean.Cleaner.host_whitelist  lxml.html.clean.Cleaner-class.html#host_whitelist
-lxml.html.clean.Cleaner.whitelist_tags  lxml.html.clean.Cleaner-class.html#whitelist_tags
-lxml.html.clean.Cleaner.__call__        lxml.html.clean.Cleaner-class.html#__call__
-lxml.html.clean.Cleaner.remove_tags     lxml.html.clean.Cleaner-class.html#remove_tags
-lxml.html.clean.Cleaner._kill_elements  lxml.html.clean.Cleaner-class.html#_kill_elements
-lxml.html.clean.Cleaner._has_sneaky_javascript  lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript
-lxml.html.clean.Cleaner.processing_instructions lxml.html.clean.Cleaner-class.html#processing_instructions
-lxml.html.clean.Cleaner.javascript      lxml.html.clean.Cleaner-class.html#javascript
-lxml.html.clean.Cleaner.add_nofollow    lxml.html.clean.Cleaner-class.html#add_nofollow
-lxml.html.clean.Cleaner.allow_element   lxml.html.clean.Cleaner-class.html#allow_element
-lxml.html.clean.Cleaner.scripts lxml.html.clean.Cleaner-class.html#scripts
-lxml.html.clean.Cleaner._tag_link_attrs lxml.html.clean.Cleaner-class.html#_tag_link_attrs
-lxml.html.clean.Cleaner.safe_attrs_only lxml.html.clean.Cleaner-class.html#safe_attrs_only
-lxml.html.clean.Cleaner.embedded        lxml.html.clean.Cleaner-class.html#embedded
-lxml.html.diff.DEL_END  lxml.html.diff.DEL_END-class.html
-lxml.html.diff.DEL_START        lxml.html.diff.DEL_START-class.html
-lxml.html.diff.InsensitiveSequenceMatcher       lxml.html.diff.InsensitiveSequenceMatcher-class.html
-lxml.html.diff.InsensitiveSequenceMatcher.get_matching_blocks   lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks
-lxml.html.diff.InsensitiveSequenceMatcher.threshold     lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold
-lxml.html.diff.NoDeletes        lxml.html.diff.NoDeletes-class.html
-lxml.html.diff.href_token       lxml.html.diff.href_token-class.html
-lxml.html.diff.href_token.hide_when_equal       lxml.html.diff.href_token-class.html#hide_when_equal
-lxml.html.diff.token.__new__    lxml.html.diff.token-class.html#__new__
-lxml.html.diff.href_token.html  lxml.html.diff.href_token-class.html#html
-lxml.html.diff.token.__repr__   lxml.html.diff.token-class.html#__repr__
-lxml.html.diff.tag_token        lxml.html.diff.tag_token-class.html
-lxml.html.diff.token.hide_when_equal    lxml.html.diff.token-class.html#hide_when_equal
-lxml.html.diff.tag_token.__new__        lxml.html.diff.tag_token-class.html#__new__
-lxml.html.diff.tag_token.html   lxml.html.diff.tag_token-class.html#html
-lxml.html.diff.tag_token.__repr__       lxml.html.diff.tag_token-class.html#__repr__
-lxml.html.diff.token    lxml.html.diff.token-class.html
-lxml.html.diff.token.hide_when_equal    lxml.html.diff.token-class.html#hide_when_equal
-lxml.html.diff.token.__new__    lxml.html.diff.token-class.html#__new__
-lxml.html.diff.token.html       lxml.html.diff.token-class.html#html
-lxml.html.diff.token.__repr__   lxml.html.diff.token-class.html#__repr__
-lxml.html.formfill.DefaultErrorCreator  lxml.html.formfill.DefaultErrorCreator-class.html
-lxml.html.formfill.DefaultErrorCreator.error_container_tag      lxml.html.formfill.DefaultErrorCreator-class.html#error_container_tag
-lxml.html.formfill.DefaultErrorCreator.default_message  lxml.html.formfill.DefaultErrorCreator-class.html#default_message
-lxml.html.formfill.DefaultErrorCreator.insert_before    lxml.html.formfill.DefaultErrorCreator-class.html#insert_before
-lxml.html.formfill.DefaultErrorCreator.error_message_class      lxml.html.formfill.DefaultErrorCreator-class.html#error_message_class
-lxml.html.formfill.DefaultErrorCreator.__call__ lxml.html.formfill.DefaultErrorCreator-class.html#__call__
-lxml.html.formfill.DefaultErrorCreator.block_inside     lxml.html.formfill.DefaultErrorCreator-class.html#block_inside
-lxml.html.formfill.DefaultErrorCreator.error_block_class        lxml.html.formfill.DefaultErrorCreator-class.html#error_block_class
-lxml.html.formfill.DefaultErrorCreator.__init__ lxml.html.formfill.DefaultErrorCreator-class.html#__init__
-lxml.html.formfill.FormNotFound lxml.html.formfill.FormNotFound-class.html
-lxml.html.html5parser.HTMLParser        lxml.html.html5parser.HTMLParser-class.html
-lxml.html.html5parser.HTMLParser.__init__       lxml.html.html5parser.HTMLParser-class.html#__init__
-lxml.html.html5parser.XHTMLParser       lxml.html.html5parser.XHTMLParser-class.html
-lxml.html.html5parser.XHTMLParser.__init__      lxml.html.html5parser.XHTMLParser-class.html#__init__
-lxml.isoschematron.Schematron   lxml.isoschematron.Schematron-class.html
-lxml.isoschematron.Schematron._extract_rng      lxml.isoschematron.Schematron-class.html#_extract_rng
-lxml.etree._Validator._append_log_message       lxml.etree._Validator-class.html#_append_log_message
-lxml.isoschematron.Schematron.validation_report lxml.isoschematron.Schematron-class.html#validation_report
-lxml.isoschematron.Schematron.validator_xslt    lxml.isoschematron.Schematron-class.html#validator_xslt
-lxml.isoschematron.Schematron._expand   lxml.isoschematron.Schematron-class.html#_expand
-lxml.etree._Validator.assert_   lxml.etree._Validator-class.html#assert_
-lxml.isoschematron.Schematron.__init__  lxml.isoschematron.Schematron-class.html#__init__
-lxml.etree._Validator.__new__   lxml.etree._Validator-class.html#__new__
-lxml.etree._Validator._clear_error_log  lxml.etree._Validator-class.html#_clear_error_log
-lxml.isoschematron.Schematron._extract  lxml.isoschematron.Schematron-class.html#_extract
-lxml.isoschematron.Schematron.__call__  lxml.isoschematron.Schematron-class.html#__call__
-lxml.isoschematron.Schematron._compile  lxml.isoschematron.Schematron-class.html#_compile
-lxml.isoschematron.Schematron.schematron        lxml.isoschematron.Schematron-class.html#schematron
-lxml.isoschematron.Schematron._validation_errors        lxml.isoschematron.Schematron-class.html#_validation_errors
-lxml.isoschematron.Schematron._include  lxml.isoschematron.Schematron-class.html#_include
-lxml.etree._Validator.validate  lxml.etree._Validator-class.html#validate
-lxml.isoschematron.Schematron._level    lxml.isoschematron.Schematron-class.html#_level
-lxml.isoschematron.Schematron._domain   lxml.isoschematron.Schematron-class.html#_domain
-lxml.etree._Validator.assertValid       lxml.etree._Validator-class.html#assertValid
-lxml.isoschematron.Schematron._error_type       lxml.isoschematron.Schematron-class.html#_error_type
-lxml.etree._Validator.error_log lxml.etree._Validator-class.html#error_log
-lxml.isoschematron.Schematron._extract_xsd      lxml.isoschematron.Schematron-class.html#_extract_xsd
-lxml.objectify.BoolElement      lxml.objectify.BoolElement-class.html
-lxml.objectify.NumberElement.__int__    lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__    lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.BoolElement.__str__      lxml.objectify.BoolElement-class.html#__str__
-lxml.objectify.BoolElement._init        lxml.objectify.BoolElement-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__   lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__   lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.BoolElement.__lt__       lxml.objectify.BoolElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__ lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__    lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.BoolElement.__gt__       lxml.objectify.BoolElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__    lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__   lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.objectify.BoolElement.__nonzero__  lxml.objectify.BoolElement-class.html#__nonzero__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__   lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__        lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__   lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__   lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.BoolElement.__le__       lxml.objectify.BoolElement-class.html#__le__
-lxml.objectify.NumberElement.__float__  lxml.objectify.NumberElement-class.html#__float__
-lxml.objectify.BoolElement.__ne__       lxml.objectify.BoolElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__    lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__    lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__    lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__        lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__   lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__    lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__complex__        lxml.objectify.NumberElement-class.html#__complex__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__    lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__ lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__ lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.BoolElement.__eq__       lxml.objectify.BoolElement-class.html#__eq__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__    lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.BoolElement.__hash__     lxml.objectify.BoolElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__    lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.BoolElement.__ge__       lxml.objectify.BoolElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__       lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__   lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__        lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.BoolElement.__new__      lxml.objectify.BoolElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser    lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__    lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__   lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.BoolElement.pyval        lxml.objectify.BoolElement-class.html#pyval
-lxml.objectify.BoolElement.__repr__     lxml.objectify.BoolElement-class.html#__repr__
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__     lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__    lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__    lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__    lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.ElementMaker     lxml.objectify.ElementMaker-class.html
-lxml.objectify.ElementMaker.__new__     lxml.objectify.ElementMaker-class.html#__new__
-lxml.objectify.ElementMaker.__getattribute__    lxml.objectify.ElementMaker-class.html#__getattribute__
-lxml.objectify.ElementMaker.__getattr__ lxml.objectify.ElementMaker-class.html#__getattr__
-lxml.objectify.ElementMaker.__init__    lxml.objectify.ElementMaker-class.html#__init__
-lxml.objectify.FloatElement     lxml.objectify.FloatElement-class.html
-lxml.objectify.NumberElement.__int__    lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__    lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__    lxml.objectify.NumberElement-class.html#__str__
-lxml.objectify.FloatElement._init       lxml.objectify.FloatElement-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__   lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__   lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__     lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__ lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__    lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__     lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__    lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__   lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__        lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__   lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__        lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__   lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__   lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__     lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__        lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__     lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__    lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__    lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__    lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__        lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__   lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__    lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__  lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__    lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__ lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__ lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__     lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__    lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__   lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__    lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__     lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__       lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__   lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__        lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.FloatElement.__new__     lxml.objectify.FloatElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser    lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__    lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__   lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.NumberElement.pyval      lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__repr__   lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__     lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__    lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__    lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__    lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.IntElement       lxml.objectify.IntElement-class.html
-lxml.objectify.NumberElement.__int__    lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__    lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__    lxml.objectify.NumberElement-class.html#__str__
-lxml.objectify.IntElement._init lxml.objectify.IntElement-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__   lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__   lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__     lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__ lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__    lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__     lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__    lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__   lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__        lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__   lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__        lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__   lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__   lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__     lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__        lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__     lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__    lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__    lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__    lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__        lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__   lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__    lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__  lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__    lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__ lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__ lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__     lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__    lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__   lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__    lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__     lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__       lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__   lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__        lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.IntElement.__new__       lxml.objectify.IntElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser    lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__    lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__   lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.NumberElement.pyval      lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__repr__   lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__     lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__    lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__    lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__    lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.LongElement      lxml.objectify.LongElement-class.html
-lxml.objectify.NumberElement.__int__    lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__    lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__    lxml.objectify.NumberElement-class.html#__str__
-lxml.objectify.LongElement._init        lxml.objectify.LongElement-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__   lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__   lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__     lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__ lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__    lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__     lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__    lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__   lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__        lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__   lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__        lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__   lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__   lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__     lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__        lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__     lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__    lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__    lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__mul__    lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rlshift__        lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__   lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__    lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__  lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__    lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__ lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__ lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__     lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__    lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__   lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__    lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__     lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__       lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__   lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__        lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.LongElement.__new__      lxml.objectify.LongElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser    lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__    lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__rpow__   lxml.objectify.NumberElement-class.html#__rpow__
-lxml.objectify.NumberElement.pyval      lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__repr__   lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__or__     lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.__add__    lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__    lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__    lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.NoneElement      lxml.objectify.NoneElement-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NoneElement.__str__      lxml.objectify.NoneElement-class.html#__str__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.NoneElement.__lt__       lxml.objectify.NoneElement-class.html#__lt__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.objectify.NoneElement.__new__      lxml.objectify.NoneElement-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.NoneElement.pyval        lxml.objectify.NoneElement-class.html#pyval
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.NoneElement.__ne__       lxml.objectify.NoneElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NoneElement.__gt__       lxml.objectify.NoneElement-class.html#__gt__
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NoneElement.__eq__       lxml.objectify.NoneElement-class.html#__eq__
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NoneElement.__nonzero__  lxml.objectify.NoneElement-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NoneElement.__le__       lxml.objectify.NoneElement-class.html#__le__
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NoneElement.__repr__     lxml.objectify.NoneElement-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.objectify.NoneElement.__hash__     lxml.objectify.NoneElement-class.html#__hash__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.objectify.NoneElement.__ge__       lxml.objectify.NoneElement-class.html#__ge__
-lxml.objectify.NumberElement    lxml.objectify.NumberElement-class.html
-lxml.objectify.NumberElement.__int__    lxml.objectify.NumberElement-class.html#__int__
-lxml.objectify.NumberElement.__ror__    lxml.objectify.NumberElement-class.html#__ror__
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.NumberElement.__str__    lxml.objectify.NumberElement-class.html#__str__
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.objectify.NumberElement.__rdiv__   lxml.objectify.NumberElement-class.html#__rdiv__
-lxml.objectify.NumberElement.__rmul__   lxml.objectify.NumberElement-class.html#__rmul__
-lxml.objectify.NumberElement.__lt__     lxml.objectify.NumberElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.NumberElement.__rshift__ lxml.objectify.NumberElement-class.html#__rshift__
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.NumberElement.__pow__    lxml.objectify.NumberElement-class.html#__pow__
-lxml.objectify.NumberElement.__gt__     lxml.objectify.NumberElement-class.html#__gt__
-lxml.objectify.NumberElement.__oct__    lxml.objectify.NumberElement-class.html#__oct__
-lxml.objectify.NumberElement.__rxor__   lxml.objectify.NumberElement-class.html#__rxor__
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.objectify.NumberElement.__nonzero__        lxml.objectify.NumberElement-class.html#__nonzero__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.NumberElement.__long__   lxml.objectify.NumberElement-class.html#__long__
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.objectify.NumberElement.__truediv__        lxml.objectify.NumberElement-class.html#__truediv__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.NumberElement.__rmod__   lxml.objectify.NumberElement-class.html#__rmod__
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.objectify.NumberElement.__rand__   lxml.objectify.NumberElement-class.html#__rand__
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.NumberElement.__le__     lxml.objectify.NumberElement-class.html#__le__
-lxml.objectify.NumberElement.__complex__        lxml.objectify.NumberElement-class.html#__complex__
-lxml.objectify.NumberElement.__ne__     lxml.objectify.NumberElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.NumberElement.__hex__    lxml.objectify.NumberElement-class.html#__hex__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.objectify.NumberElement.__xor__    lxml.objectify.NumberElement-class.html#__xor__
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.NumberElement.__repr__   lxml.objectify.NumberElement-class.html#__repr__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.objectify.NumberElement.__rpow__   lxml.objectify.NumberElement-class.html#__rpow__
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.objectify.NumberElement.__rsub__   lxml.objectify.NumberElement-class.html#__rsub__
-lxml.objectify.NumberElement.__and__    lxml.objectify.NumberElement-class.html#__and__
-lxml.objectify.NumberElement.__float__  lxml.objectify.NumberElement-class.html#__float__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.objectify.NumberElement.__abs__    lxml.objectify.NumberElement-class.html#__abs__
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.NumberElement.__invert__ lxml.objectify.NumberElement-class.html#__invert__
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.objectify.NumberElement.__lshift__ lxml.objectify.NumberElement-class.html#__lshift__
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.NumberElement.__eq__     lxml.objectify.NumberElement-class.html#__eq__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.NumberElement.__mod__    lxml.objectify.NumberElement-class.html#__mod__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.NumberElement.__hash__   lxml.objectify.NumberElement-class.html#__hash__
-lxml.objectify.NumberElement.__sub__    lxml.objectify.NumberElement-class.html#__sub__
-lxml.objectify.NumberElement.__ge__     lxml.objectify.NumberElement-class.html#__ge__
-lxml.objectify.NumberElement.__rtruediv__       lxml.objectify.NumberElement-class.html#__rtruediv__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.NumberElement.__radd__   lxml.objectify.NumberElement-class.html#__radd__
-lxml.objectify.NumberElement.__rrshift__        lxml.objectify.NumberElement-class.html#__rrshift__
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.NumberElement.__new__    lxml.objectify.NumberElement-class.html#__new__
-lxml.objectify.NumberElement._setValueParser    lxml.objectify.NumberElement-class.html#_setValueParser
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.NumberElement.__pos__    lxml.objectify.NumberElement-class.html#__pos__
-lxml.objectify.NumberElement.__or__     lxml.objectify.NumberElement-class.html#__or__
-lxml.objectify.NumberElement.pyval      lxml.objectify.NumberElement-class.html#pyval
-lxml.objectify.NumberElement.__mul__    lxml.objectify.NumberElement-class.html#__mul__
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.NumberElement.__rlshift__        lxml.objectify.NumberElement-class.html#__rlshift__
-lxml.objectify.NumberElement.__add__    lxml.objectify.NumberElement-class.html#__add__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.NumberElement.__div__    lxml.objectify.NumberElement-class.html#__div__
-lxml.objectify.NumberElement.__neg__    lxml.objectify.NumberElement-class.html#__neg__
-lxml.objectify.ObjectPath       lxml.objectify.ObjectPath-class.html
-lxml.objectify.ObjectPath.addattr       lxml.objectify.ObjectPath-class.html#addattr
-lxml.objectify.ObjectPath.__new__       lxml.objectify.ObjectPath-class.html#__new__
-lxml.objectify.ObjectPath.setattr       lxml.objectify.ObjectPath-class.html#setattr
-lxml.objectify.ObjectPath.__str__       lxml.objectify.ObjectPath-class.html#__str__
-lxml.objectify.ObjectPath.hasattr       lxml.objectify.ObjectPath-class.html#hasattr
-lxml.objectify.ObjectPath.__call__      lxml.objectify.ObjectPath-class.html#__call__
-lxml.objectify.ObjectPath.find  lxml.objectify.ObjectPath-class.html#find
-lxml.objectify.ObjectPath.__init__      lxml.objectify.ObjectPath-class.html#__init__
-lxml.objectify.ObjectifiedDataElement   lxml.objectify.ObjectifiedDataElement-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.objectify.ObjectifiedDataElement.__str__   lxml.objectify.ObjectifiedDataElement-class.html#__str__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.objectify.ObjectifiedDataElement.__new__   lxml.objectify.ObjectifiedDataElement-class.html#__new__
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.ObjectifiedDataElement.pyval     lxml.objectify.ObjectifiedDataElement-class.html#pyval
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.ObjectifiedDataElement.__repr__  lxml.objectify.ObjectifiedDataElement-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.objectify.ObjectifiedElement       lxml.objectify.ObjectifiedElement-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.ObjectifiedElement.__str__       lxml.objectify.ObjectifiedElement-class.html#__str__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.objectify.ObjectifiedElement.__new__       lxml.objectify.ObjectifiedElement-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.objectify.ObjectifyElementClassLookup      lxml.objectify.ObjectifyElementClassLookup-class.html
-lxml.objectify.ObjectifyElementClassLookup.__new__      lxml.objectify.ObjectifyElementClassLookup-class.html#__new__
-lxml.objectify.ObjectifyElementClassLookup.__init__     lxml.objectify.ObjectifyElementClassLookup-class.html#__init__
-lxml.objectify.PyType   lxml.objectify.PyType-class.html
-lxml.objectify.PyType.stringify lxml.objectify.PyType-class.html#stringify
-lxml.objectify.PyType.__new__   lxml.objectify.PyType-class.html#__new__
-lxml.objectify.PyType.xmlSchemaTypes    lxml.objectify.PyType-class.html#xmlSchemaTypes
-lxml.objectify.PyType.unregister        lxml.objectify.PyType-class.html#unregister
-lxml.objectify.PyType.register  lxml.objectify.PyType-class.html#register
-lxml.objectify.PyType.__repr__  lxml.objectify.PyType-class.html#__repr__
-lxml.objectify.PyType.type_check        lxml.objectify.PyType-class.html#type_check
-lxml.objectify.PyType.__init__  lxml.objectify.PyType-class.html#__init__
-lxml.objectify.PyType.name      lxml.objectify.PyType-class.html#name
-lxml.objectify.StringElement    lxml.objectify.StringElement-class.html
-lxml.objectify.StringElement.__int__    lxml.objectify.StringElement-class.html#__int__
-lxml.objectify.ObjectifiedElement.addattr       lxml.objectify.ObjectifiedElement-class.html#addattr
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.objectify.ObjectifiedElement.text  lxml.objectify.ObjectifiedElement-class.html#text
-lxml.objectify.ObjectifiedDataElement.__str__   lxml.objectify.ObjectifiedDataElement-class.html#__str__
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.objectify.StringElement.__rmul__   lxml.objectify.StringElement-class.html#__rmul__
-lxml.objectify.StringElement.__lt__     lxml.objectify.StringElement-class.html#__lt__
-lxml.objectify.ObjectifiedElement.findall       lxml.objectify.ObjectifiedElement-class.html#findall
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.objectify.ObjectifiedElement.__getitem__   lxml.objectify.ObjectifiedElement-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.objectify.StringElement.__gt__     lxml.objectify.StringElement-class.html#__gt__
-lxml.objectify.ObjectifiedElement.__delitem__   lxml.objectify.ObjectifiedElement-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.objectify.StringElement.__nonzero__        lxml.objectify.StringElement-class.html#__nonzero__
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.objectify.ObjectifiedElement.descendantpaths       lxml.objectify.ObjectifiedElement-class.html#descendantpaths
-lxml.objectify.StringElement.__long__   lxml.objectify.StringElement-class.html#__long__
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.objectify.StringElement.__rmod__   lxml.objectify.StringElement-class.html#__rmod__
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.objectify.ObjectifiedElement.__setattr__   lxml.objectify.ObjectifiedElement-class.html#__setattr__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.objectify.ObjectifiedDataElement._setText  lxml.objectify.ObjectifiedDataElement-class.html#_setText
-lxml.objectify.ObjectifiedElement.__getattr__   lxml.objectify.ObjectifiedElement-class.html#__getattr__
-lxml.objectify.ObjectifiedElement.find  lxml.objectify.ObjectifiedElement-class.html#find
-lxml.objectify.ObjectifiedElement.getchildren   lxml.objectify.ObjectifiedElement-class.html#getchildren
-lxml.objectify.StringElement.__float__  lxml.objectify.StringElement-class.html#__float__
-lxml.objectify.StringElement.__ne__     lxml.objectify.StringElement-class.html#__ne__
-lxml.objectify.ObjectifiedElement.findtext      lxml.objectify.ObjectifiedElement-class.html#findtext
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.objectify.ObjectifiedElement.__setitem__   lxml.objectify.ObjectifiedElement-class.html#__setitem__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.objectify.ObjectifiedElement.__delattr__   lxml.objectify.ObjectifiedElement-class.html#__delattr__
-lxml.objectify.StringElement.__mul__    lxml.objectify.StringElement-class.html#__mul__
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.objectify.StringElement.__complex__        lxml.objectify.StringElement-class.html#__complex__
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.objectify.ObjectifiedElement.__len__       lxml.objectify.ObjectifiedElement-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.objectify.ObjectifiedElement.__reduce__    lxml.objectify.ObjectifiedElement-class.html#__reduce__
-lxml.objectify.ObjectifiedElement.__iter__      lxml.objectify.ObjectifiedElement-class.html#__iter__
-lxml.objectify.ObjectifiedElement.countchildren lxml.objectify.ObjectifiedElement-class.html#countchildren
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.objectify.StringElement.__eq__     lxml.objectify.StringElement-class.html#__eq__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.objectify.StringElement.__mod__    lxml.objectify.StringElement-class.html#__mod__
-lxml.objectify.StringElement.__le__     lxml.objectify.StringElement-class.html#__le__
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.objectify.StringElement.__hash__   lxml.objectify.StringElement-class.html#__hash__
-lxml.objectify.StringElement.__ge__     lxml.objectify.StringElement-class.html#__ge__
-lxml.objectify.ObjectifiedElement.iterfind      lxml.objectify.ObjectifiedElement-class.html#iterfind
-lxml.objectify.ObjectifiedElement.__getattribute__      lxml.objectify.ObjectifiedElement-class.html#__getattribute__
-lxml.objectify.StringElement.__radd__   lxml.objectify.StringElement-class.html#__radd__
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.objectify.StringElement.strlen     lxml.objectify.StringElement-class.html#strlen
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.objectify.StringElement.__new__    lxml.objectify.StringElement-class.html#__new__
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.objectify.StringElement.pyval      lxml.objectify.StringElement-class.html#pyval
-lxml.objectify.StringElement.__repr__   lxml.objectify.StringElement-class.html#__repr__
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.objectify.StringElement.__add__    lxml.objectify.StringElement-class.html#__add__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.objectify._ObjectifyElementMakerCaller     lxml.objectify._ObjectifyElementMakerCaller-class.html
-lxml.objectify._ObjectifyElementMakerCaller.__new__     lxml.objectify._ObjectifyElementMakerCaller-class.html#__new__
-lxml.objectify._ObjectifyElementMakerCaller.__call__    lxml.objectify._ObjectifyElementMakerCaller-class.html#__call__
-lxml.sax.ElementTreeContentHandler      lxml.sax.ElementTreeContentHandler-class.html
-lxml.sax.ElementTreeContentHandler.startPrefixMapping   lxml.sax.ElementTreeContentHandler-class.html#startPrefixMapping
-lxml.sax.ElementTreeContentHandler.endPrefixMapping     lxml.sax.ElementTreeContentHandler-class.html#endPrefixMapping
-lxml.sax.ElementTreeContentHandler.etree        lxml.sax.ElementTreeContentHandler-class.html#etree
-lxml.sax.ElementTreeContentHandler.processingInstruction        lxml.sax.ElementTreeContentHandler-class.html#processingInstruction
-lxml.sax.ElementTreeContentHandler.endElement   lxml.sax.ElementTreeContentHandler-class.html#endElement
-lxml.sax.ElementTreeContentHandler._get_etree   lxml.sax.ElementTreeContentHandler-class.html#_get_etree
-lxml.sax.ElementTreeContentHandler.startElement lxml.sax.ElementTreeContentHandler-class.html#startElement
-lxml.sax.ElementTreeContentHandler.setDocumentLocator   lxml.sax.ElementTreeContentHandler-class.html#setDocumentLocator
-lxml.sax.ElementTreeContentHandler.startDocument        lxml.sax.ElementTreeContentHandler-class.html#startDocument
-lxml.sax.ElementTreeContentHandler.startElementNS       lxml.sax.ElementTreeContentHandler-class.html#startElementNS
-lxml.sax.ElementTreeContentHandler.characters   lxml.sax.ElementTreeContentHandler-class.html#characters
-lxml.sax.ElementTreeContentHandler.endDocument  lxml.sax.ElementTreeContentHandler-class.html#endDocument
-lxml.sax.ElementTreeContentHandler.ignorableWhitespace  lxml.sax.ElementTreeContentHandler-class.html#ignorableWhitespace
-lxml.sax.ElementTreeContentHandler.__init__     lxml.sax.ElementTreeContentHandler-class.html#__init__
-lxml.sax.ElementTreeContentHandler.endElementNS lxml.sax.ElementTreeContentHandler-class.html#endElementNS
-lxml.sax.ElementTreeProducer    lxml.sax.ElementTreeProducer-class.html
-lxml.sax.ElementTreeProducer._build_qname       lxml.sax.ElementTreeProducer-class.html#_build_qname
-lxml.sax.ElementTreeProducer.saxify     lxml.sax.ElementTreeProducer-class.html#saxify
-lxml.sax.ElementTreeProducer.__init__   lxml.sax.ElementTreeProducer-class.html#__init__
-lxml.sax.ElementTreeProducer._recursive_saxify  lxml.sax.ElementTreeProducer-class.html#_recursive_saxify
-lxml.sax.SaxError       lxml.sax.SaxError-class.html
-lxml.etree.LxmlError.__init__   lxml.etree.LxmlError-class.html#__init__
-lxml.tests.common_imports.HelperTestCase        lxml.tests.common_imports.HelperTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.common_imports.LargeFileLike lxml.tests.common_imports.LargeFileLike-class.html
-lxml.tests.common_imports.LargeFileLike.read    lxml.tests.common_imports.LargeFileLike-class.html#read
-lxml.tests.common_imports.LargeFileLike.iterelements    lxml.tests.common_imports.LargeFileLike-class.html#iterelements
-lxml.tests.common_imports.LargeFileLike.__init__        lxml.tests.common_imports.LargeFileLike-class.html#__init__
-lxml.tests.common_imports.LargeFileLikeUnicode  lxml.tests.common_imports.LargeFileLikeUnicode-class.html
-lxml.tests.common_imports.LargeFileLike.read    lxml.tests.common_imports.LargeFileLike-class.html#read
-lxml.tests.common_imports.LargeFileLikeUnicode.iterelements     lxml.tests.common_imports.LargeFileLikeUnicode-class.html#iterelements
-lxml.tests.common_imports.LargeFileLikeUnicode.__init__ lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__
-lxml.tests.common_imports.SillyFileLike lxml.tests.common_imports.SillyFileLike-class.html
-lxml.tests.common_imports.SillyFileLike.read    lxml.tests.common_imports.SillyFileLike-class.html#read
-lxml.tests.common_imports.SillyFileLike.__init__        lxml.tests.common_imports.SillyFileLike-class.html#__init__
-lxml.tests.test_classlookup.ClassLookupTestCase lxml.tests.test_classlookup.ClassLookupTestCase-class.html
-lxml.tests.test_classlookup.ClassLookupTestCase.tearDown        lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_classlookup.ClassLookupTestCase.test_attribute_based_lookup     lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.test_default_class_lookup       lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_classlookup.ClassLookupTestCase.test_class_lookup_reentry       lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry
-lxml.tests.test_classlookup.ClassLookupTestCase.test_namespace_lookup   lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.test_parser_based_lookup        lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.test_lookup_without_fallback    lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback
-lxml.tests.test_classlookup.ClassLookupTestCase.test_custom_lookup      lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup
-lxml.tests.test_classlookup.ClassLookupTestCase.etree   lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_classlookup.ClassLookupTestCase.test_custom_lookup_ns_fallback  lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_css.CSSTestCase lxml.tests.test_css.CSSTestCase-class.html
-lxml.tests.test_css.CSSTestCase.all     lxml.tests.test_css.CSSTestCase-class.html#all
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_css.CSSTestCase.shortDescription        lxml.tests.test_css.CSSTestCase-class.html#shortDescription
-lxml.tests.test_css.CSSTestCase.__init__        lxml.tests.test_css.CSSTestCase-class.html#__init__
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_css.CSSTestCase.selectors       lxml.tests.test_css.CSSTestCase-class.html#selectors
-lxml.tests.test_css.CSSTestCase.runTest lxml.tests.test_css.CSSTestCase-class.html#runTest
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_dtd.ETreeDtdTestCase    lxml.tests.test_dtd.ETreeDtdTestCase-class.html
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_valid       lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_broken    lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken
-lxml.tests.test_dtd.ETreeDtdTestCase.test_parse_file_dtd        lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_parse_file_dtd
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_stringio  lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_invalid     lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_internal_invalid  lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_assertValid       lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_file_not_found      lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_parse_valid_relative      lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_file      lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_internal  lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal
-lxml.tests.test_dtd.ETreeDtdTestCase.test_iterparse_file_dtd    lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd_invalid   lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid
-lxml.tests.test_dtd.ETreeDtdTestCase.test_dtd   lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd
-lxml.tests.test_elementtree.CElementTreeTestCase        lxml.tests.test_elementtree.CElementTreeTestCase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity_unknown lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_empty        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_broken     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext_child       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_property       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_explicit lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_override lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_single        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_whitespace   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_extend       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_register_namespace   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.CElementTreeTestCase.etree  lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_from_file        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_incomplete   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iter lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_html    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_position   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_html lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_characters    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_elementtree.ETreeTestCase       lxml.tests.test_elementtree.ETreeTestCase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity_unknown lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_empty        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_broken     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext_child       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_property       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_explicit lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_override lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_single        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_whitespace   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_extend       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_register_namespace   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.ETreeTestCase.etree lxml.etree-module.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_from_file        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_incomplete   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iter lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_html    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_position   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_html lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_characters    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity_unknown lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_empty        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iter lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext_child       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_text    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_broken     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_whitespace   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_override lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_itertext     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_encoding_8bit_explicit lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_single        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_extend       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_register_namespace   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_position   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.etree     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#etree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_from_file        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_error_close_incomplete   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_method_html    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_method_html lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_property       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstringlist_characters    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_elementtree.ElementTreeTestCase lxml.tests.test_elementtree.ElementTreeTestCase-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_iter        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_cdata  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_pi        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElement     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_subelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_crash      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_end lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_reversed   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_ET      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_ET
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes3  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes3
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parser_target_entity_unknown       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parser_target_entity_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase._writeElementFile lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_writeElementFile
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_nonexistent       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_nonexistent
-lxml.tests.test_elementtree.ElementTreeTestCase.test_fromstringlist_characters  lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_fromstringlist_characters
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_cdata      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_cdata
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_empty
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_empty    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_double     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_double
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_negative      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_getitem_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_getitem_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_unknown    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_latin1 lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_latin1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_contains     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_contains
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_close_empty      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_close_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iselement    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iselement
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_del_tail    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_del_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy_elementtree      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_tag    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_tag
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_sequence    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_sequence
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes_ns        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_bytes    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_bytes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_default_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib_resolve lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_empty   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_entity lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_entity
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_child_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_child_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_replace      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_replace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace
-lxml.tests.test_elementtree.ElementTreeTestCase.test_fromstringlist     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_fromstringlist
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_empty       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_with_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_with_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_element_boolean     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_element_boolean
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_getset       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_getset
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_findall      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_findall
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_mapping    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_mapping
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail1        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_beyond_index  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_beyond_index
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail
-lxml.tests.test_elementtree.ElementTreeTestCase.test_comment_whitespace lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_comment_whitespace
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_negative
-lxml.tests.test_elementtree.ElementTreeTestCase.test_write_method_text  lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_write_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_insert   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_set_clear     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_set_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_empty      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_empty
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_write    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_write
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_set_text_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_set_text_none
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_broken   lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_broken
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_empty_default     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_empty_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_indexerror   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_indexerror
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_file       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_file
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_error_from_file      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_error_from_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object
-lxml.tests.test_elementtree.ElementTreeTestCase.test_itertext_child     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_itertext_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_parse_stringio lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder_target   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_crash        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_crash
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_utf8_bom    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_utf8_bom
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_namespaces_after_serialize   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_namespaces_after_serialize
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_invalid_args      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_wrong_unicode_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_encoding_8bit_override       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_move      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XML  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_setting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_setting
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_elementtree lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_elementtree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_ElementTreeDoctest     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_contains   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_contains
-lxml.tests.test_elementtree.ElementTreeTestCase.test_itertext   lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_itertext
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_encoding_8bit_explicit       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_simple       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_simple
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_write_fail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_write_fail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_comment   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_comment
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_none        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_object_encoding   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_object_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_root_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_root_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_keys_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_keys_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_treebuilder  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_treebuilder
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_sub    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parser_target_property     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parser_target_property
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_tostring lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_makeelement  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_makeelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_only_text   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_only_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_error_none     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_error_none
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve_new  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
-lxml.tests.test_elementtree.ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_test_getchildren
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_nonexisting   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_nonexisting
-lxml.tests.test_elementtree.ElementTreeTestCase.test_fromstringlist_single      lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_fromstringlist_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_single      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_single
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attributes2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attributes2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_set        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_set
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_elementtree_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_elementtree_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy
-lxml.tests.test_elementtree.ElementTreeTestCase.test_extend     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_extend
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_memory      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_memory
-lxml.tests.test_elementtree.ElementTreeTestCase.test_parse_error        lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_parse_error
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_ns   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_append      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file_encoding  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi_nonsense  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_reset_ns lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_reset_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_unknown   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_unknown
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator_filter       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_replace_slice_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_replace_slice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_text_only  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_text_only
-lxml.tests.test_elementtree.ETreeTestCaseBase.required_versions_cET     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#required_versions_cET
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertEncodingDeclaration lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertEncodingDeclaration
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_ns_clear      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_ns_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_str_subclass    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_tostring_sub_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
-lxml.tests.test_elementtree.ElementTreeTestCase.test_register_namespace lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_register_namespace
-lxml.tests.test_elementtree.ElementTreeTestCase.test_tostring_method_text       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_getiterator      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_with_text lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attribute_resolve      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attribute_resolve
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_write_default_encoding      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_write_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tostring_element_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tostring_element_tail
-lxml.tests.test_elementtree.ElementTreeTestCase.test_write_method_html  lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_write_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_out      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_out
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_shallowcopy  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_shallowcopy
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_feed_parser_unicode  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_feed_parser_unicode
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_clear lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_clear
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_set_twice       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_set_twice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_stringio       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_stringio
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ElementTree  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ElementTree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_cmp    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_cmp
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_indexing_with_text2  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_indexing_with_text2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_version       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_version
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_fromstring   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_fromstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_update_dict        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_update_dict
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_move_elements      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_move_elements
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_multiple_elementrees lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_multiple_elementrees
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_comment_nonsense     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_comment_nonsense
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_str        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_str
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iteration_del_child  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iteration_del_child
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_8bit_xml    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_8bit_xml
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_comment     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_comment
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_encoding_exact       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_encoding_exact
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_attrib_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_attrib_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_elementtree_parser_target    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_elementtree_parser_target
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setitem  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setitem
-lxml.tests.test_elementtree.ElementTreeTestCase.etree   xml.etree.ElementTree-module.html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_start_end  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_start_end
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values_ns  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_remove_ns    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_remove_ns
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_items      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_items
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_step_negative2      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_step_negative2
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_close_incomplete lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_close_incomplete
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tail_append  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tail_append
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_other   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_other
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative1   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_attribute_ns_parsed      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_negative2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_negative2
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_root        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2
-lxml.tests.test_elementtree.ElementTreeTestCase.test_iter       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_iter
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_deepcopy_namespaces  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_getiterator        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_getiterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_xmlns_move
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element_with_attributes_keywords     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element_with_attributes_keywords
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attrib_pop_default   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attrib_pop_default
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_processinginstruction        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_processinginstruction
-lxml.tests.test_elementtree.ETreeTestCaseBase._rootstring       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_rootstring
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_del_setslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_filter_all       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_filter_all
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_qname_attrib
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice_tail        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_manipulation       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_manipulation
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parse_file   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parse_file
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_insert_tail  lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_insert_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_access2   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_access2
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_attr      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_attr
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem_tail lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_clear_tail   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_clear_tail
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element    lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_element_tree       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_element_tree
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_text_escape_in       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_text_escape_in
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_tag_parse lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_tag_parse
-lxml.tests.test_elementtree.ETreeTestCaseBase._check_string     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#_check_string
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_delslice     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_delslice
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_tag_str_subclass     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_tag_str_subclass
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_getiterator_with_text        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_getiterator_with_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_iterparse_large      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_iterparse_large
-lxml.tests.test_elementtree.ElementTreeTestCase.test_feed_parser_error_position lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_feed_parser_error_position
-lxml.tests.test_elementtree.ETreeTestCaseBase.assertXML lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#assertXML
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_element      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_element
-lxml.tests.test_elementtree.ElementTreeTestCase.test_tostring_method_html       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_tostring_method_html
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem2     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem2
-lxml.tests.test_elementtree.ElementTreeTestCase.test_comment_text       lxml.tests.test_elementtree.ElementTreeTestCase-class.html#test_comment_text
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_iterator   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_iterator
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_parser_target_data   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_parser_target_data
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_XMLID        lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_XMLID
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_ns_decl_tostring_element     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_ns_decl_tostring_element
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_attribute_values     lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_attribute_values
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_weird_dict_interaction       lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_weird_dict_interaction
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_setitem      lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_setitem
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_pi   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_pi
-lxml.tests.test_elementtree.ETreeTestCaseBase.test_subelement_with_attributes   lxml.tests.test_elementtree.ETreeTestCaseBase-class.html#test_subelement_with_attributes
-lxml.tests.test_errors.ErrorTestCase    lxml.tests.test_errors.ErrorTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_errors.ErrorTestCase.test_bad_element   lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element
-lxml.tests.test_errors.ErrorTestCase.etree      lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_errors.ErrorTestCase.test_element_cyclic_gc_none        lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none
-lxml.tests.test_errors.ErrorTestCase.test_empty_parse   lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeC14NTestCase lxml.tests.test_etree.ETreeC14NTestCase-class.html
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_exclusive     lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_tostring_exclusive    lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_gzip  lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_element_tostring_with_comments        lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_file  lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_tostring_with_comments        lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n       lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_with_comments lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_element_tostring_exclusive    lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeC14NTestCase.test_c14n_file_gzip     lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeErrorLogTest lxml.tests.test_etree.ETreeErrorLogTest-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeErrorLogTest._test_python_error_logging      lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging
-lxml.tests.test_etree.ETreeErrorLogTest.etree   lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeErrorLogTest.test_parse_error_logging        lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeOnlyTestCase lxml.tests.test_etree.ETreeOnlyTestCase-class.html
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root
-lxml.tests.test_etree.ETreeOnlyTestCase.test_dump_none  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_invalid_sequence      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence
-lxml.tests.test_etree.ETreeOnlyTestCase.test_nsmap_prefix_invalid       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase.test_xml_base   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_tag   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_elementtree     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_start     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root_pi    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_pi   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_space        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_pi lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_deepcopy_elementtree_pi    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_quote      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_start_end lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parseid    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_fileobject_unicode   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_strip    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip
-lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base_tag      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_xml_base_attribute lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root_comment       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_remove_comments  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_element_tail      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.etree   lxml.etree-module.html
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_space lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns_all       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_empty        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_replace    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_empty      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_element lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_elements_ns  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_append_error       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_error       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_iterparse_start lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_getiterator       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_pretty    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_c_api      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api
-lxml.tests.test_etree.ETreeOnlyTestCase.test_standalone lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_8bit_override   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_reuse_after_move        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_text_resolve lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_broken   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_parser_target_type_error       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_elements     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_namespace_localname  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_findall_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_immutable  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_set_invalid      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_nsmap   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_empty      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_pi_parse   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_set_base_url_docinfo   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setitem_assert     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_overrun      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun
-lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_base_url_docinfo     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo
-lxml.tests.test_etree.ETreeOnlyTestCase.test_replace_new        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_feed_exception       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_attrib_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_parse   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_pis      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getparent  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_element  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_doctype_name_only_roundtrip        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip
-lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_zero  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_tag       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespace_cleanup  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_quote lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_no_proxy_yet       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_element      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_pretty    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filename_dtd_relative      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_string_dtd lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_root_comment   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_pi_comment      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filelike_dtd       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_keep_cdata       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_names      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_nsmap      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_filename_dtd       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_element   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_invalid       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors_tag  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_none      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_version    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_comment    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_negative2    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_clear     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_values      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_iterparse_end   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_tag_reversed  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_attribute_invalid       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default_and_attr        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_colon lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_copy_element    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_encoding_unknown    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default_copy_element    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_ns      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_empty lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_set      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getroottree        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_values   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_root_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_method_text_unicode       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_recover      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_errors       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors
-lxml.tests.test_etree.ETreeOnlyTestCase.test_deepcopy_elementtree_dtd   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_pi_comment_all  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_none      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_element lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tree_comments    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_zero  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_stringio_base_url    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_xpath        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_pi     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_findall_qname  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XMLDTDID   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_method_text_encoding      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_parser_type_error    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_find_qname     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_encoding_tostring_utf16    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_pretty   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_fromstring_exception lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_system     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes_ns        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_pis   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_error   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_public     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public
-lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_colon        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_cdata        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_empty      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getnext    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_empty      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_encoding    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding
-lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_default lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default
-lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings_tag   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_type lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_colon      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_all_empty_reversed        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed
-lxml.tests.test_etree.ETreeOnlyTestCase.test_doctype_output_override    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getprevious        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious
-lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_XML     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML
-lxml.tests.test_etree.ETreeOnlyTestCase.test_unicode_byte_invalid       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterdescendants_tag        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_parse_empty        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_name_only  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_base_url_docinfo       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_comments lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_with_tail lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix_default_ns  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_namespace       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_comments      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_append      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append
-lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_space      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space
-lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix
-lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict
-lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_has_key  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_comment        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_index      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index
-lxml.tests.test_etree.ETreeOnlyTestCase.test_HTML_base_url_docinfo      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo
-lxml.tests.test_etree.ETreeOnlyTestCase.test_feed_parser_recover        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_reversed      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_bytes_dtd  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_file_dtd   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_parse       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_negative     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative
-lxml.tests.test_etree.ETreeOnlyTestCase.test_deepcopy_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_doc_style       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode
-lxml.tests.test_etree.ETreeOnlyTestCase.test_dtd_io     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io
-lxml.tests.test_etree.ETreeOnlyTestCase.test_XMLDTDID_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty
-lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_entities        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterdescendants    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_all  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_none     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors
-lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step
-lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_parser       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser
-lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_tag_all   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone_in_out lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_element_tail     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_restructure lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure
-lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_findall_ns_qname       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname
-lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base
-lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_comment      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment
-lxml.tests.test_etree.ETreeOnlyTestCase.test_pi lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi
-lxml.tests.test_etree.ETreeWriteTestCase        lxml.tests.test_etree.ETreeWriteTestCase-class.html
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzip   lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_etree.ETreeWriteTestCase.test_write     lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file        lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_gzip_level  lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzipfile_parse lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_gzip        lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzip_parse     lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ETreeXIncludeTestCase     lxml.tests.test_etree.ETreeXIncludeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude    lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.ETreeXIncludeTestCase.include     lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_resolver   lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_resolver
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_text       lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_text
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.ElementIncludeTestCase    lxml.tests.test_etree.ElementIncludeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.ElementIncludeTestCase.ElementInclude     lxml.ElementInclude-module.html
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude    lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.ElementIncludeTestCase.include    lxml.tests.test_etree.ElementIncludeTestCase-class.html#include
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_resolver   lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_resolver
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_text       lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_text
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_etree.XIncludeTestCase  lxml.tests.test_etree.XIncludeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude    lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_resolver   lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_resolver
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_etree.XIncludeTestCase.test_xinclude_text       lxml.tests.test_etree.XIncludeTestCase-class.html#test_xinclude_text
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_htmlparser.HtmlParserTestCase   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_broken   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_cdata    lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata
-lxml.tests.test_htmlparser.HtmlParserTestCase.tearDown  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_colon   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_quote      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote
-lxml.tests.test_htmlparser.HtmlParserTestCase.uhtml_str lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#uhtml_str
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html_filelike   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_pretty_print     lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_empty   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html_norecover  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_norecover
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_default_parser_HTML_broken   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_space   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_space
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_htmlparser.HtmlParserTestCase.etree     lxml.etree-module.html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_iterparse       lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_unicode  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html    lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_colon      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_file_error      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_subelement_name_quote   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_parse_encoding_8bit_override lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_override
-lxml.tests.test_htmlparser.HtmlParserTestCase.broken_html_str   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#broken_html_str
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_parse_html_error      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_iterparse_file  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML_access   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_parse_encoding_8bit_explicit lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_explicit
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_module_HTML  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_empty      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty
-lxml.tests.test_htmlparser.HtmlParserTestCase.html_str  lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#html_str
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_htmlparser.HtmlParserTestCase.test_html_element_name_space      lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space
-lxml.tests.test_htmlparser.HtmlParserTestCase.html_str_pretty   lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#html_str_pretty
-lxml.tests.test_io.ETreeIOTestCase      lxml.tests.test_io.ETreeIOTestCase-class.html
-lxml.tests.test_io.IOTestCaseBase.buildNodes    lxml.tests.test_io.IOTestCaseBase-class.html#buildNodes
-lxml.tests.test_io.IOTestCaseBase.tearDown      lxml.tests.test_io.IOTestCaseBase-class.html#tearDown
-lxml.tests.test_io.IOTestCaseBase.test_write_filename   lxml.tests.test_io.IOTestCaseBase-class.html#test_write_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_fileobject
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_gzipobject  lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_gzipobject
-lxml.tests.test_io.IOTestCaseBase.getTestFilePath       lxml.tests.test_io.IOTestCaseBase-class.html#getTestFilePath
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_error    lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_error
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_large_fileobject    lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_large_fileobject
-lxml.tests.test_io.ETreeIOTestCase.etree        lxml.etree-module.html
-lxml.tests.test_io.IOTestCaseBase.test_tree_io_latin1   lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io_latin1
-lxml.tests.test_io.IOTestCaseBase.setUp lxml.tests.test_io.IOTestCaseBase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename     lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename_remove_previous     lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename_remove_previous
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_io.IOTestCaseBase.test_tree_io  lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_late_error       lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_late_error
-lxml.tests.test_io.IOTestCaseBase.test_write_invalid_filename   lxml.tests.test_io.IOTestCaseBase-class.html#test_write_invalid_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_unamed_fileobject    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_type_error       lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_type_error
-lxml.tests.test_io.ElementTreeIOTestCase        lxml.tests.test_io.ElementTreeIOTestCase-class.html
-lxml.tests.test_io.IOTestCaseBase.buildNodes    lxml.tests.test_io.IOTestCaseBase-class.html#buildNodes
-lxml.tests.test_io.IOTestCaseBase.tearDown      lxml.tests.test_io.IOTestCaseBase-class.html#tearDown
-lxml.tests.test_io.IOTestCaseBase.test_write_filename   lxml.tests.test_io.IOTestCaseBase-class.html#test_write_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_fileobject
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_gzipobject  lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_gzipobject
-lxml.tests.test_io.IOTestCaseBase.getTestFilePath       lxml.tests.test_io.IOTestCaseBase-class.html#getTestFilePath
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_error    lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_error
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_large_fileobject    lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_large_fileobject
-lxml.tests.test_io.ElementTreeIOTestCase.etree  xml.etree.ElementTree-module.html
-lxml.tests.test_io.IOTestCaseBase.test_tree_io_latin1   lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io_latin1
-lxml.tests.test_io.IOTestCaseBase.setUp lxml.tests.test_io.IOTestCaseBase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename     lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename_remove_previous     lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename_remove_previous
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_io.IOTestCaseBase.test_tree_io  lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_late_error       lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_late_error
-lxml.tests.test_io.IOTestCaseBase.test_write_invalid_filename   lxml.tests.test_io.IOTestCaseBase-class.html#test_write_invalid_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_unamed_fileobject    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_type_error       lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_type_error
-lxml.tests.test_io.IOTestCaseBase       lxml.tests.test_io.IOTestCaseBase-class.html
-lxml.tests.test_io.IOTestCaseBase.buildNodes    lxml.tests.test_io.IOTestCaseBase-class.html#buildNodes
-lxml.tests.test_io.IOTestCaseBase.tearDown      lxml.tests.test_io.IOTestCaseBase-class.html#tearDown
-lxml.tests.test_io.IOTestCaseBase.test_write_filename   lxml.tests.test_io.IOTestCaseBase-class.html#test_write_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_fileobject   lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_fileobject
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_gzipobject  lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_gzipobject
-lxml.tests.test_io.IOTestCaseBase.getTestFilePath       lxml.tests.test_io.IOTestCaseBase-class.html#getTestFilePath
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_error    lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_error
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_large_fileobject    lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_large_fileobject
-lxml.tests.test_io.IOTestCaseBase.etree lxml.tests.test_io.IOTestCaseBase-class.html#etree
-lxml.tests.test_io.IOTestCaseBase.test_tree_io_latin1   lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io_latin1
-lxml.tests.test_io.IOTestCaseBase.setUp lxml.tests.test_io.IOTestCaseBase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename     lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_filename_remove_previous     lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_filename_remove_previous
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_io.IOTestCaseBase.test_tree_io  lxml.tests.test_io.IOTestCaseBase-class.html#test_tree_io
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_late_error       lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_late_error
-lxml.tests.test_io.IOTestCaseBase.test_write_invalid_filename   lxml.tests.test_io.IOTestCaseBase-class.html#test_write_invalid_filename
-lxml.tests.test_io.IOTestCaseBase.test_class_parse_unamed_fileobject    lxml.tests.test_io.IOTestCaseBase-class.html#test_class_parse_unamed_fileobject
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_io.IOTestCaseBase.test_module_parse_fileobject_type_error       lxml.tests.test_io.IOTestCaseBase-class.html#test_module_parse_fileobject_type_error
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase        lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_store_xslt     lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_call   lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_validate       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_from_element   lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_invalid_schema_namespace       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_from_file      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_assertValid    lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_customization  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_phases_kwarg   lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_error_log      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_invalid_schema_empty   lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_result_report  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_empty_pattern  lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_store_schematron       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_invalid_args   lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_elementtree_error      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_relaxng_embedded       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron        lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_abstract       lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_phases lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_xmlschema_embedded     lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded
-lxml.tests.test_isoschematron.ETreeISOSchematronTestCase.test_schematron_from_tree      lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_ns_classes lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.tearDown        lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_create_element_default     lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element_default
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class   lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_default_tagname    lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class      lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.setUp   lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#setUp
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_create_element     lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_element_creation   lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class     lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.test_registry   lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class     lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class.bluff       lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html#bluff
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class   lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class      lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
-lxml.etree._Element.getprevious lxml.etree._Element-class.html#getprevious
-lxml.etree._Element.set lxml.etree._Element-class.html#set
-lxml.etree._Element.getparent   lxml.etree._Element-class.html#getparent
-lxml.etree._Element.sourceline  lxml.etree._Element-class.html#sourceline
-lxml.etree._Element.text        lxml.etree._Element-class.html#text
-lxml.etree._Element.iterfind    lxml.etree._Element-class.html#iterfind
-lxml.etree._Element._init       lxml.etree._Element-class.html#_init
-lxml.etree._Element.nsmap       lxml.etree._Element-class.html#nsmap
-lxml.etree._Element.replace     lxml.etree._Element-class.html#replace
-lxml.etree._Element.prefix      lxml.etree._Element-class.html#prefix
-lxml.etree._Element.tag lxml.etree._Element-class.html#tag
-lxml.etree._Element.iter        lxml.etree._Element-class.html#iter
-lxml.etree._Element.addnext     lxml.etree._Element-class.html#addnext
-lxml.etree._Element.addprevious lxml.etree._Element-class.html#addprevious
-lxml.etree._Element.find        lxml.etree._Element-class.html#find
-lxml.etree._Element.append      lxml.etree._Element-class.html#append
-lxml.etree._Element.getnext     lxml.etree._Element-class.html#getnext
-lxml.etree._Element.index       lxml.etree._Element-class.html#index
-lxml.etree.ElementBase.__new__  lxml.etree.ElementBase-class.html#__new__
-lxml.etree._Element.__contains__        lxml.etree._Element-class.html#__contains__
-lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class.maeh lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html#maeh
-lxml.etree._Element.findtext    lxml.etree._Element-class.html#findtext
-lxml.etree._Element.tail        lxml.etree._Element-class.html#tail
-lxml.etree._Element.getroottree lxml.etree._Element-class.html#getroottree
-lxml.etree._Element.iterdescendants     lxml.etree._Element-class.html#iterdescendants
-lxml.etree._Element.getchildren lxml.etree._Element-class.html#getchildren
-lxml.etree.ElementBase.__init__ lxml.etree.ElementBase-class.html#__init__
-lxml.etree._Element.__len__     lxml.etree._Element-class.html#__len__
-lxml.etree._Element.xpath       lxml.etree._Element-class.html#xpath
-lxml.etree._Element.__getitem__ lxml.etree._Element-class.html#__getitem__
-lxml.etree._Element.get lxml.etree._Element-class.html#get
-lxml.etree._Element.keys        lxml.etree._Element-class.html#keys
-lxml.etree._Element.__deepcopy__        lxml.etree._Element-class.html#__deepcopy__
-lxml.etree._Element.makeelement lxml.etree._Element-class.html#makeelement
-lxml.etree._Element.__iter__    lxml.etree._Element-class.html#__iter__
-lxml.etree._Element.base        lxml.etree._Element-class.html#base
-lxml.etree._Element.insert      lxml.etree._Element-class.html#insert
-lxml.etree._Element.iterchildren        lxml.etree._Element-class.html#iterchildren
-lxml.etree._Element.iterancestors       lxml.etree._Element-class.html#iterancestors
-lxml.etree._Element.extend      lxml.etree._Element-class.html#extend
-lxml.etree._Element.__delitem__ lxml.etree._Element-class.html#__delitem__
-lxml.etree._Element.__reversed__        lxml.etree._Element-class.html#__reversed__
-lxml.etree._Element.itersiblings        lxml.etree._Element-class.html#itersiblings
-lxml.etree._Element.__nonzero__ lxml.etree._Element-class.html#__nonzero__
-lxml.etree._Element.items       lxml.etree._Element-class.html#items
-lxml.etree._Element.clear       lxml.etree._Element-class.html#clear
-lxml.etree._Element.itertext    lxml.etree._Element-class.html#itertext
-lxml.etree._Element.findall     lxml.etree._Element-class.html#findall
-lxml.etree._Element.__setitem__ lxml.etree._Element-class.html#__setitem__
-lxml.etree._Element.remove      lxml.etree._Element-class.html#remove
-lxml.etree._Element.values      lxml.etree._Element-class.html#values
-lxml.etree._Element.__repr__    lxml.etree._Element-class.html#__repr__
-lxml.etree._Element.getiterator lxml.etree._Element-class.html#getiterator
-lxml.etree._Element.attrib      lxml.etree._Element-class.html#attrib
-lxml.etree._Element.__copy__    lxml.etree._Element-class.html#__copy__
-lxml.tests.test_objectify.ObjectifyTestCase     lxml.tests.test_objectify.ObjectifyTestCase-class.html
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_nested        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_allneg        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_bool_cmp  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_floattelement   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_unregistered      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered
-lxml.tests.test_objectify.ObjectifyTestCase.test_xml_base       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_annotation_use_old      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_registered_types       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_custom  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_default      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_nonexistant      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_list       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsiannotate_ignore_old lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_schema_types   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_attrib_attributes_precedence      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot
-lxml.tests.test_objectify.ObjectifyTestCase.test_pyannotate_use_old     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_build_tree     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_empty    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_root_list      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_float_hash        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash
-lxml.tests.test_objectify.ObjectifyTestCase.test_setitem_string lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_hash  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_list   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytypes   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes
-lxml.tests.test_objectify.ObjectifyTestCase.test_xml_base_attribute     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_create_element     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_invalid_pytype   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype
-lxml.tests.test_objectify.ObjectifyTestCase.etree       lxml.etree-module.html
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_custom_prefixes     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsitype_deannotate     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_custom      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_complex    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail_parse_empty   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_addattr_element        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_pyannotate_ignore_old  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_ns lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns
-lxml.tests.test_objectify.ObjectifyTestCase.test_pyannotate_empty       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_attrib        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib
-lxml.tests.test_objectify.ObjectifyTestCase.test_class_lookup   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup
-lxml.tests.test_objectify.ObjectifyTestCase.test_change_pytype_attribute        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index_fail_lookup  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path
-lxml.tests.test_objectify.ObjectifyTestCase.test_addattr_list   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_wrong_length  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_default_absolute   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index_fail_parse   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse
-lxml.tests.test_objectify.ObjectifyTestCase.test_findall_ns     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_ns_list    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_descendant_paths_prefix        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix
-lxml.tests.test_objectify.ObjectifyTestCase.tearDown    lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_xsitype_annotation      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_elementtree     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_int_hash  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash
-lxml.tests.test_objectify.ObjectifyTestCase.test_parse_stringio_base_url        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url
-lxml.tests.test_objectify.ObjectifyTestCase.test_setitem_string_special lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_intliteral   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create_list    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_root   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_empty lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_int        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr_floatliteral lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_bool  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_intelement      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_xsitypes  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle
-lxml.tests.test_objectify.ObjectifyTestCase._test_pickle        lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_custom       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsinil_deannotate      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_float     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi_prefix_error   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error
-lxml.tests.test_objectify.ObjectifyTestCase.setUp       lxml.tests.test_objectify.ObjectifyTestCase-class.html#setUp
-lxml.tests.test_objectify.ObjectifyTestCase.test_setattr        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_cmp   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype_none      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_custom_prefixes      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_index_list lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_element    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_default     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default
-lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi_nsmap  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_subtype       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype_xsitype   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_elements      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_index    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_empty   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_partial       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_str       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_xsitype  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_sequence      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_create     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_element        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_str_intliteral    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_str   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_none  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none
-lxml.tests.test_objectify.ObjectifyTestCase.test_str    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_syntax     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_bool      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_NoneType  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_NoneType  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_getattr_empty_ns lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_xsitypes_xsdprefixed      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_float lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_default  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_annotation_empty        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_addattr  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_complete      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_xsitypes_prefixed lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_addattr_create_list        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list
-lxml.tests.test_objectify.ObjectifyTestCase.XML lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_custom_prefixes lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_invalid_xsi       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_boolelement     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_dataelement_xsi        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi
-lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_partial_neg   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_element_arg       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_none_cmp  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_len      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytype_none       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_insert        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_nsmap_empty       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_schema_types_prefixed  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_floatliteral lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_noneelement     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_addattr        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_XML_set_base_url_docinfo       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_int       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_registered_type_stringify      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify
-lxml.tests.test_objectify.ObjectifyTestCase.test_dir    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir
-lxml.tests.test_objectify.ObjectifyTestCase.test_findall        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_add  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_dot_root   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_hasattr    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_XML_base_url_docinfo   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_default_relative   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative
-lxml.tests.test_objectify.ObjectifyTestCase.test_xsiannotate_use_old    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_pytype_none_compat        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_int       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_unregistered      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_str_floatliteral  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mul   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_ustr_intliteral   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_set_create_element lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_add   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_float     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_pytype   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_ustr_mul  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg_invalid_xsi      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_getattr  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_data_element_nsmap_default lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_objectify.ObjectifyTestCase.test_descendant_paths_child lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child
-lxml.tests.test_objectify.ObjectifyTestCase.test_object_path_fail_parse_empty_list      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_annotation      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_int_cmp   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp
-lxml.tests.test_objectify.ObjectifyTestCase.test_pickle_strelement      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_set_ro   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_intliteral    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_custom_prefixes  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_data_element_arg  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg
-lxml.tests.test_objectify.ObjectifyTestCase.test_vars   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_vars
-lxml.tests.test_objectify.ObjectifyTestCase.test_child  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_floatliteral  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral
-lxml.tests.test_objectify.ObjectifyTestCase.test_parse_base_url_docinfo lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo
-lxml.tests.test_objectify.ObjectifyTestCase.test_element_nsmap_custom   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_bool      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_insert_neg    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_value_concatenation   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation
-lxml.tests.test_objectify.ObjectifyTestCase.test_pytype_deannotate      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_setslice_partial_neg   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_int   lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_mod_data_elements     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements
-lxml.tests.test_objectify.ObjectifyTestCase.test_data_element_invalid_pytype    lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype
-lxml.tests.test_objectify.ObjectifyTestCase.test_setattr_nonunicode     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode
-lxml.tests.test_objectify.ObjectifyTestCase.test_sub_element_nsmap_empty        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty
-lxml.tests.test_objectify.ObjectifyTestCase.test_descendant_paths       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths
-lxml.tests.test_objectify.ObjectifyTestCase.test_type_str_as_float      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float
-lxml.tests.test_objectify.ObjectifyTestCase.test_deannotate     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate
-lxml.tests.test_objectify.ObjectifyTestCase.test_getslice_complete      lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete
-lxml.tests.test_objectify.ObjectifyTestCase.test_efactory_unicode       lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode
-lxml.tests.test_objectify.ObjectifyTestCase.test_set_string     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_index_neg        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_objectify.ObjectifyTestCase.test_standard_lookup        lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup
-lxml.tests.test_objectify.ObjectifyTestCase.test_child_iter     lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter
-lxml.tests.test_objectify.ObjectifyTestCase.test_countchildren  lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_countchildren
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_get_default     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_attrib  lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.tearDown    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getitem_neg     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser      lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase._setClassLookup     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_setClassLookup
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getparent       lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_iterchildren    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_len     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getnext lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_iterchildren_tag        lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_prefix  lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getprevious     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_text    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase._buildElementClass  lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_buildElementClass
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_bool    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_tag     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.etree       lxml.etree-module.html
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getitem lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_keep_ref_assertion      lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getchildren     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_tail    lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_get     lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_getslice        lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_sourceline      lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.test_lookup_iter_children   lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase    lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_multiple_elementrees  lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_multiple_elementrees
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng       lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_stringio      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema        lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_shortcut      lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema4       lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema4
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema2       lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_invalid_schema3       lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema3
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_include       lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_elementtree_error     lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error
-lxml.tests.test_relaxng.ETreeRelaxNGTestCase.test_relaxng_error lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_sax.ETreeSaxTestCase    lxml.tests.test_sax.ETreeSaxTestCase-class.html
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_comment     lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment
-lxml.tests.test_sax.ETreeSaxTestCase.test_element_sax_ns        lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_sax.ETreeSaxTestCase._saxify_unsaxify   lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_unsaxify
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_comment_root        lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_error       lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_error2      lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_pi_root     lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root
-lxml.tests.test_sax.ETreeSaxTestCase.test_element_sax   lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_redefine_ns lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns
-lxml.tests.test_sax.ETreeSaxTestCase._saxify_serialize  lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_serialize
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_pi  lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_simple      lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_double      lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_ns1 lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_attributes  lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_ns2 lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2
-lxml.tests.test_sax.ETreeSaxTestCase.test_sax_to_pulldom        lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_handler_default_ns  lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns
-lxml.tests.test_sax.ETreeSaxTestCase.test_etree_sax_no_ns       lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_schematron.ETreeSchematronTestCase      lxml.tests.test_schematron.ETreeSchematronTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron      lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_invalid_schema_empty lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_invalid_schema       lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_elementtree_error    lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_schematron.ETreeSchematronTestCase.test_schematron_invalid_schema_namespace     lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_threading.ThreadPipelineTestCase        lxml.tests.test_threading.ThreadPipelineTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.xml    lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml
-lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker   lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.item_count     lxml.tests.test_threading.ThreadPipelineTestCase-class.html#item_count
-lxml.tests.test_threading.ThreadPipelineTestCase._build_pipeline        lxml.tests.test_threading.ThreadPipelineTestCase-class.html#_build_pipeline
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker    lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker  lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker   lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker        lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.test_thread_pipeline_global_parse      lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse
-lxml.tests.test_threading.ThreadPipelineTestCase.etree  lxml.etree-module.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_threading.ThreadPipelineTestCase.test_thread_pipeline_thread_parse      lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker   lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.XML       lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#XML
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run     lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle    lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker    lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.XML        lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#XML
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run     lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle     lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker  lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run     lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle   lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker   lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run     lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle    lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker        lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run     lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__        lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.run     lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run
-lxml.tests.test_threading.ThreadingTestCase     lxml.tests.test_threading.ThreadingTestCase-class.html
-lxml.tests.test_threading.ThreadingTestCase.test_concurrent_class_lookup        lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_class_lookup
-lxml.tests.test_threading.ThreadingTestCase.test_thread_mix     lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix
-lxml.tests.test_threading.ThreadingTestCase.test_subtree_copy_thread    lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_threading.ThreadingTestCase.test_main_xslt_in_thread    lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread
-lxml.tests.test_threading.ThreadingTestCase._run_thread lxml.tests.test_threading.ThreadingTestCase-class.html#_run_thread
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_threading.ThreadingTestCase.test_concurrent_proxies     lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_proxies
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_threading.ThreadingTestCase.test_thread_create_xslt     lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt
-lxml.tests.test_threading.ThreadingTestCase.etree       lxml.etree-module.html
-lxml.tests.test_threading.ThreadingTestCase.test_thread_xslt_attr_replace       lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace
-lxml.tests.test_threading.ThreadingTestCase.test_thread_xslt    lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_threading.ThreadingTestCase.test_thread_error_log       lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log
-lxml.tests.test_unicode.UnicodeTestCase lxml.tests.test_unicode.UnicodeTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_qname      lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_xml_broken lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_nstag      lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_ns_invalid lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_qname_invalid      lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_attr       lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_comment    lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_tag        lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_nstag_invalid      lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_parse_stringio     lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_tag_invalid        lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid
-lxml.tests.test_unicode.UnicodeTestCase.test_unicode_xml        lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase       lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.resolver_schema_int2  lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_int2
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_resolvers_noroot       lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver       lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_resolvers      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_resolvers_root lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.test_xmlschema_nested_resolvers       lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.resolver_schema_ext   lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_ext
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.resolver_schema_int   lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#resolver_schema_int
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver       lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.resolve       lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#resolve
-lxml.etree.Resolver.resolve_filename    lxml.etree.Resolver-class.html#resolve_filename
-lxml.etree.Resolver.__new__     lxml.etree.Resolver-class.html#__new__
-lxml.etree.Resolver.resolve_string      lxml.etree.Resolver-class.html#resolve_string
-lxml.etree.Resolver.resolve_file        lxml.etree.Resolver-class.html#resolve_file
-lxml.etree.Resolver.resolve_empty       lxml.etree.Resolver-class.html#resolve_empty
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__      lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_stringio        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_import_file     lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_invalid_schema2 lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_invalid_schema1 lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse   lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_shortcut        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_iterparse_fail  lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_elementtree_error       lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_default_attributes      lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_file    lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse_default_attributes_schema_config  lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse_fixed_attributes  lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_iterparse       lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase.test_xmlschema_parse_default_attributes        lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes
-lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase        lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase.test_xpath_compile_ns  lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase._test_xpath_compile_unicode    lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase  lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_vars  lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_elementtree_error     lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_doc   lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_error lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error
-lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase.test_xpath_compile_element       lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase  lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase.test_xpath_exslt_functions_date  lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase.NSMAP    lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#NSMAP
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase.test_xpath_exslt_functions_strings       lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_comment       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_boolean    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_prefix_error       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_elementtree_getpath_partial      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator_element  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_attribute_parent      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_elementtree_getpath      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_text_parent   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_error      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_variables  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_eval_context_propagation   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_elements      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_namespace  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator_tree     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_unicode_text_parent   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_mix     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_attribute     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_namespace_empty    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_eval_context_clear lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_nothing       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_class_error        lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_nodes   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_variables_nodeset  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_nodes_append2   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_string     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_ns_none    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_text  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_attribute_parent_no_smart_strings     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_document_root      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_wrong_args      lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_text_from_other_document   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_number     lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_ns_empty   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_rel_xpath_list_elements  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_nodes_append    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_list_text_parent_no_smart_strings  lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_rel_xpath_boolean        lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_evaluator_tree_absolute    lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_class_prefix_error lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_context_node       lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_extensions_error   lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error
-lxml.tests.test_xpathevaluator.ETreeXPathTestCase.test_xpath_ns lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_content lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase._test_extension_element_attribute_context      lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context      lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_doc_context     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_raise   lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise
-lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element      lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase   lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_extensions2  lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_extensions1  lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment        lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xslt.ETreeXSLTTestCase  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_xpath        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_default_parameters     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_repeat_transform       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_set_replace lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_all     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_html_output    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_invalid      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_shortcut       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_allow   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match1 lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match1
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_message        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match2 lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match2
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_str   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_str
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_unicode        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_unicode
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_message_terminate      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_message_terminate
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_resolver_url_building  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building
-lxml.tests.test_xslt.ETreeXSLTTestCase._test_exslt_regexp_match4        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#_test_exslt_regexp_match4
-lxml.tests.test_xslt.ETreeXSLTTestCase._test_exslt_regexp_match3        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#_test_exslt_regexp_match3
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_replace        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_replace
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_broken lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_copy   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input_none     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_xpath_object lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_unknown lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_multiple_transforms    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_transforms
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_test   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_test
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_error lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_empty  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_missing      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_math  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_math
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_invalid_stylesheet     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_encoding_override      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_include_from_filelike  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_elementtree_error      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_multiple_elementrees        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_input_partial_doc      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_partial_doc
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_include        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_str_attribute_replace lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_str_attribute_replace
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_embedded_id lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_exslt_regexp_match_groups   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_exslt_regexp_match_groups
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_deny    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_XML_resolver  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_move_result    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_string_parameters      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_string_parameters
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_deny_all        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_elementtree   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_multiple_parameters    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameters     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameters
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_XML   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_set_new     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_utf8   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_utf8
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_encoding       lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_all_reversed    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed
-lxml.tests.test_xslt.Py3XSLTTestCase    lxml.tests.test_xslt.Py3XSLTTestCase-class.html
-lxml.tests.common_imports.HelperTestCase.tearDown       lxml.tests.common_imports.HelperTestCase-class.html#tearDown
-lxml.tests.common_imports.HelperTestCase.parse  lxml.tests.common_imports.HelperTestCase-class.html#parse
-unittest.TestCase.failureException      exceptions.AssertionError-class.html
-lxml.tests.test_xslt.Py3XSLTTestCase.test_xslt_result_bytearray lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray
-lxml.tests.test_xslt.Py3XSLTTestCase.test_xslt_result_memoryview        lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview
-lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
-lxml.tests.test_xslt.Py3XSLTTestCase.test_xslt_result_bytes     lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes
-lxml.tests.common_imports.HelperTestCase.assertFalse    lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
-xml.etree.ElementTree.ElementTree       xml.etree.ElementTree.ElementTree-class.html
-xml.etree.ElementTree.ElementTree.parse xml.etree.ElementTree.ElementTree-class.html#parse
-xml.etree.ElementTree.ElementTree.getroot       xml.etree.ElementTree.ElementTree-class.html#getroot
-xml.etree.ElementTree.ElementTree.getiterator   xml.etree.ElementTree.ElementTree-class.html#getiterator
-xml.etree.ElementTree.ElementTree.findtext      xml.etree.ElementTree.ElementTree-class.html#findtext
-xml.etree.ElementTree.ElementTree.find  xml.etree.ElementTree.ElementTree-class.html#find
-xml.etree.ElementTree.ElementTree.write xml.etree.ElementTree.ElementTree-class.html#write
-xml.etree.ElementTree.ElementTree._setroot      xml.etree.ElementTree.ElementTree-class.html#_setroot
-xml.etree.ElementTree.ElementTree._write        xml.etree.ElementTree.ElementTree-class.html#_write
-xml.etree.ElementTree.ElementTree.findall       xml.etree.ElementTree.ElementTree-class.html#findall
-xml.etree.ElementTree.ElementTree.__init__      xml.etree.ElementTree.ElementTree-class.html#__init__
-xml.etree.ElementTree.QName     xml.etree.ElementTree.QName-class.html
-xml.etree.ElementTree.QName.__hash__    xml.etree.ElementTree.QName-class.html#__hash__
-xml.etree.ElementTree.QName.__str__     xml.etree.ElementTree.QName-class.html#__str__
-xml.etree.ElementTree.QName.__init__    xml.etree.ElementTree.QName-class.html#__init__
-xml.etree.ElementTree.QName.__cmp__     xml.etree.ElementTree.QName-class.html#__cmp__
-xml.etree.ElementTree.TreeBuilder       xml.etree.ElementTree.TreeBuilder-class.html
-xml.etree.ElementTree.TreeBuilder.end   xml.etree.ElementTree.TreeBuilder-class.html#end
-xml.etree.ElementTree.TreeBuilder.start xml.etree.ElementTree.TreeBuilder-class.html#start
-xml.etree.ElementTree.TreeBuilder._flush        xml.etree.ElementTree.TreeBuilder-class.html#_flush
-xml.etree.ElementTree.TreeBuilder.close xml.etree.ElementTree.TreeBuilder-class.html#close
-xml.etree.ElementTree.TreeBuilder.data  xml.etree.ElementTree.TreeBuilder-class.html#data
-xml.etree.ElementTree.TreeBuilder.__init__      xml.etree.ElementTree.TreeBuilder-class.html#__init__
-xml.etree.ElementTree.XMLTreeBuilder    xml.etree.ElementTree.XMLTreeBuilder-class.html
-xml.etree.ElementTree.XMLTreeBuilder.feed       xml.etree.ElementTree.XMLTreeBuilder-class.html#feed
-xml.etree.ElementTree.XMLTreeBuilder._start     xml.etree.ElementTree.XMLTreeBuilder-class.html#_start
-xml.etree.ElementTree.XMLTreeBuilder.doctype    xml.etree.ElementTree.XMLTreeBuilder-class.html#doctype
-xml.etree.ElementTree.XMLTreeBuilder._end       xml.etree.ElementTree.XMLTreeBuilder-class.html#_end
-xml.etree.ElementTree.XMLTreeBuilder._fixtext   xml.etree.ElementTree.XMLTreeBuilder-class.html#_fixtext
-xml.etree.ElementTree.XMLTreeBuilder._fixname   xml.etree.ElementTree.XMLTreeBuilder-class.html#_fixname
-xml.etree.ElementTree.XMLTreeBuilder.close      xml.etree.ElementTree.XMLTreeBuilder-class.html#close
-xml.etree.ElementTree.XMLTreeBuilder._data      xml.etree.ElementTree.XMLTreeBuilder-class.html#_data
-xml.etree.ElementTree.XMLTreeBuilder._start_list        xml.etree.ElementTree.XMLTreeBuilder-class.html#_start_list
-xml.etree.ElementTree.XMLTreeBuilder._default   xml.etree.ElementTree.XMLTreeBuilder-class.html#_default
-xml.etree.ElementTree.XMLTreeBuilder.__init__   xml.etree.ElementTree.XMLTreeBuilder-class.html#__init__
-xml.etree.ElementTree._ElementInterface xml.etree.ElementTree._ElementInterface-class.html
-xml.etree.ElementTree._ElementInterface.set     xml.etree.ElementTree._ElementInterface-class.html#set
-xml.etree.ElementTree._ElementInterface.__getslice__    xml.etree.ElementTree._ElementInterface-class.html#__getslice__
-xml.etree.ElementTree._ElementInterface.text    xml.etree.ElementTree._ElementInterface-class.html#text
-xml.etree.ElementTree._ElementInterface.tag     xml.etree.ElementTree._ElementInterface-class.html#tag
-xml.etree.ElementTree._ElementInterface.find    xml.etree.ElementTree._ElementInterface-class.html#find
-xml.etree.ElementTree._ElementInterface.__init__        xml.etree.ElementTree._ElementInterface-class.html#__init__
-xml.etree.ElementTree._ElementInterface.__delslice__    xml.etree.ElementTree._ElementInterface-class.html#__delslice__
-xml.etree.ElementTree._ElementInterface.findtext        xml.etree.ElementTree._ElementInterface-class.html#findtext
-xml.etree.ElementTree._ElementInterface.tail    xml.etree.ElementTree._ElementInterface-class.html#tail
-xml.etree.ElementTree._ElementInterface.findall xml.etree.ElementTree._ElementInterface-class.html#findall
-xml.etree.ElementTree._ElementInterface.getchildren     xml.etree.ElementTree._ElementInterface-class.html#getchildren
-xml.etree.ElementTree._ElementInterface.append  xml.etree.ElementTree._ElementInterface-class.html#append
-xml.etree.ElementTree._ElementInterface.__delitem__     xml.etree.ElementTree._ElementInterface-class.html#__delitem__
-xml.etree.ElementTree._ElementInterface.__len__ xml.etree.ElementTree._ElementInterface-class.html#__len__
-xml.etree.ElementTree._ElementInterface.__getitem__     xml.etree.ElementTree._ElementInterface-class.html#__getitem__
-xml.etree.ElementTree._ElementInterface.get     xml.etree.ElementTree._ElementInterface-class.html#get
-xml.etree.ElementTree._ElementInterface.keys    xml.etree.ElementTree._ElementInterface-class.html#keys
-xml.etree.ElementTree._ElementInterface.makeelement     xml.etree.ElementTree._ElementInterface-class.html#makeelement
-xml.etree.ElementTree._ElementInterface.__setitem__     xml.etree.ElementTree._ElementInterface-class.html#__setitem__
-xml.etree.ElementTree._ElementInterface.insert  xml.etree.ElementTree._ElementInterface-class.html#insert
-xml.etree.ElementTree._ElementInterface.items   xml.etree.ElementTree._ElementInterface-class.html#items
-xml.etree.ElementTree._ElementInterface.__setslice__    xml.etree.ElementTree._ElementInterface-class.html#__setslice__
-xml.etree.ElementTree._ElementInterface.remove  xml.etree.ElementTree._ElementInterface-class.html#remove
-xml.etree.ElementTree._ElementInterface.__repr__        xml.etree.ElementTree._ElementInterface-class.html#__repr__
-xml.etree.ElementTree._ElementInterface.getiterator     xml.etree.ElementTree._ElementInterface-class.html#getiterator
-xml.etree.ElementTree._ElementInterface.attrib  xml.etree.ElementTree._ElementInterface-class.html#attrib
-xml.etree.ElementTree._ElementInterface.clear   xml.etree.ElementTree._ElementInterface-class.html#clear
-xml.etree.ElementTree._SimpleElementPath        xml.etree.ElementTree._SimpleElementPath-class.html
-xml.etree.ElementTree._SimpleElementPath.findtext       xml.etree.ElementTree._SimpleElementPath-class.html#findtext
-xml.etree.ElementTree._SimpleElementPath.find   xml.etree.ElementTree._SimpleElementPath-class.html#find
-xml.etree.ElementTree._SimpleElementPath.findall        xml.etree.ElementTree._SimpleElementPath-class.html#findall
-xml.etree.ElementTree.iterparse xml.etree.ElementTree.iterparse-class.html
-xml.etree.ElementTree.iterparse.__iter__        xml.etree.ElementTree.iterparse-class.html#__iter__
-xml.etree.ElementTree.iterparse.__init__        xml.etree.ElementTree.iterparse-class.html#__init__
-xml.etree.ElementTree.iterparse.next    xml.etree.ElementTree.iterparse-class.html#next</p>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../../main.html">
-              <img class="logo" src="../../_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="../../_sources/html/api/api-objects.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="../../search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../../genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="../../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/html5parser.html b/doc/sphinx/html5parser.html
deleted file mode 100644 (file)
index 7bc4924..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>html5lib Parser &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="html5lib-parser">
-<h1>html5lib Parser<a class="headerlink" href="#html5lib-parser" title="Permalink to this headline">¶</a></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
-HTML5 specification</a>.</p>
-<p>lxml can benefit from the parsing capabilities of <cite>html5lib</cite> through
-the <tt class="docutils literal"><span class="pre">lxml.html.html5parser</span></tt> module.  It provides a similar interface
-to the <tt class="docutils literal"><span class="pre">lxml.html</span></tt> module by providing <tt class="docutils literal"><span class="pre">fromstring()</span></tt>,
-<tt class="docutils literal"><span class="pre">parse()</span></tt>, <tt class="docutils literal"><span class="pre">document_fromstring()</span></tt>, <tt class="docutils literal"><span class="pre">fragment_fromstring()</span></tt> and
-<tt class="docutils literal"><span class="pre">fragments_fromstring()</span></tt> that work like the regular html parsing
-functions.</p>
-<div class="section" id="differences-to-regular-html-parsing">
-<h2>Differences to regular HTML parsing<a class="headerlink" href="#differences-to-regular-html-parsing" title="Permalink to this headline">¶</a></h2>
-<p>There are a few differences in the returned tree to the regular HTML
-parsing functions from <tt class="docutils literal"><span class="pre">lxml.html</span></tt>.  html5lib normalizes some elements
-and element structures to a common format.  For example even if a tables
-does not have a <cite>tbody</cite> html5lib will inject one automatically:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">tostring</span><span class="p">,</span> <span class="n">html5parser</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tostring</span><span class="p">(</span><span class="n">html5parser</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;table&gt;&lt;td&gt;foo&quot;</span><span class="p">))</span>
-<span class="go">&#39;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;foo&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Also the parameters the functions accept are different.</p>
-</div>
-<div class="section" id="function-reference">
-<h2>Function Reference<a class="headerlink" href="#function-reference" title="Permalink to this headline">¶</a></h2>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">parse(filename_url_or_file)</span></tt>:</dt>
-<dd>Parses the named file or url, or if the object has a <tt class="docutils literal"><span class="pre">.read()</span></tt>
-method, parses from that.</dd>
-<dt><tt class="docutils literal"><span class="pre">document_fromstring(html,</span> <span class="pre">guess_charset=True)</span></tt>:</dt>
-<dd><p class="first">Parses a document from the given string.  This always creates a
-correct HTML document, which means the parent node is <tt class="docutils literal"><span class="pre">&lt;html&gt;</span></tt>,
-and there is a body and possibly a head.</p>
-<p class="last">If a bytestring is passed and <tt class="docutils literal"><span class="pre">guess_charset</span></tt> is true the chardet
-library (if installed) will guess the charset if ambiguities exist.</p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">fragment_fromstring(string,</span> <span class="pre">create_parent=False,</span> <span class="pre">guess_charset=False)</span></tt>:</dt>
-<dd><p class="first">Returns an HTML fragment from a string.  The fragment must contain
-just a single element, unless <tt class="docutils literal"><span class="pre">create_parent</span></tt> is given;
-e.g,. <tt class="docutils literal"><span class="pre">fragment_fromstring(string,</span> <span class="pre">create_parent='div')</span></tt> will
-wrap the element in a <tt class="docutils literal"><span class="pre">&lt;div&gt;</span></tt>.  If <tt class="docutils literal"><span class="pre">create_parent</span></tt> is true the
-default parent tag (div) is used.</p>
-<p class="last">If a bytestring is passed and <tt class="docutils literal"><span class="pre">guess_charset</span></tt> is true the chardet
-library (if installed) will guess the charset if ambiguities exist.</p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">fragments_fromstring(string,</span> <span class="pre">no_leading_text=False,</span> <span class="pre">parser=None)</span></tt>:</dt>
-<dd><p class="first">Returns a list of the elements found in the fragment.  The first item in
-the list may be a string.  If <tt class="docutils literal"><span class="pre">no_leading_text</span></tt> is true, then it will
-be an error if there is leading text, and it will always be a list of
-only elements.</p>
-<p class="last">If a bytestring is passed and <tt class="docutils literal"><span class="pre">guess_charset</span></tt> is true the chardet
-library (if installed) will guess the charset if ambiguities exist.</p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">fromstring(string)</span></tt>:</dt>
-<dd>Returns <tt class="docutils literal"><span class="pre">document_fromstring</span></tt> or <tt class="docutils literal"><span class="pre">fragment_fromstring</span></tt>, based
-on whether the string looks like a full document, or just a
-fragment.</dd>
-</dl>
-<p>Additionally all parsing functions accept an <tt class="docutils literal"><span class="pre">parser</span></tt> keyword argument
-that can be set to a custom parser instance.  To create custom parsers
-you can subclass the <tt class="docutils literal"><span class="pre">HTMLParser</span></tt> and <tt class="docutils literal"><span class="pre">XHTMLParser</span></tt> from the same
-module.  Note that these are the parser classes provided by html5lib.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">html5lib Parser</a><ul>
-<li><a class="reference internal" href="#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li>
-<li><a class="reference internal" href="#function-reference">Function Reference</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/html5parser.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/index.html b/doc/sphinx/index.html
deleted file mode 100644 (file)
index 8dc3835..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title><no title> &mdash; lxml v2.3 documentation</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="shortcut icon" href="_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 documentation" href="#" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 documentation</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <p>Contents:</p>
-<ul>
-<li class="toctree-l1"><a class="reference external" href="api.html">APIs specific to lxml.etree</a><ul>
-<li class="toctree-l2"><a class="reference external" href="api.html#lxml-etree">lxml.etree</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#other-element-apis">Other Element APIs</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#trees-and-documents">Trees and Documents</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#iteration">Iteration</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#error-logging">Error logging</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#serialisation">Serialisation</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#cdata">CDATA</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li>
-<li class="toctree-l2"><a class="reference external" href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="build.html">How to build lxml from source</a><ul>
-<li class="toctree-l2"><a class="reference external" href="build.html#cython">Cython</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#github-git-and-hg">Github, git and hg</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#id2">Setuptools</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#building-an-egg">Building an egg</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#static-linking-on-windows">Static linking on Windows</a></li>
-<li class="toctree-l2"><a class="reference external" href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="capi.html">The public C-API of lxml.etree</a><ul>
-<li class="toctree-l2"><a class="reference external" href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li>
-<li class="toctree-l2"><a class="reference external" href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="compatibility.html">ElementTree compatibility of lxml.etree</a></li>
-<li class="toctree-l1"><a class="reference external" href="cssselect.html">lxml.cssselect</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li>
-<li class="toctree-l2"><a class="reference external" href="cssselect.html#css-selectors">CSS Selectors</a></li>
-<li class="toctree-l2"><a class="reference external" href="cssselect.html#namespaces">Namespaces</a></li>
-<li class="toctree-l2"><a class="reference external" href="cssselect.html#limitations">Limitations</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="element_classes.html">Using custom Element classes in lxml</a><ul>
-<li class="toctree-l2"><a class="reference external" href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li>
-<li class="toctree-l2"><a class="reference external" href="element_classes.html#element-initialization">Element initialization</a></li>
-<li class="toctree-l2"><a class="reference external" href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li>
-<li class="toctree-l2"><a class="reference external" href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li>
-<li class="toctree-l2"><a class="reference external" href="element_classes.html#id1">Implementing namespaces</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="elementsoup.html">BeautifulSoup Parser</a><ul>
-<li class="toctree-l2"><a class="reference external" href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li>
-<li class="toctree-l2"><a class="reference external" href="elementsoup.html#entity-handling">Entity handling</a></li>
-<li class="toctree-l2"><a class="reference external" href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li>
-<li class="toctree-l2"><a class="reference external" href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="extensions.html">Python extensions for XPath and XSLT</a><ul>
-<li class="toctree-l2"><a class="reference external" href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li>
-<li class="toctree-l2"><a class="reference external" href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#general-questions">General Questions</a></li>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#installation">Installation</a></li>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#contributing">Contributing</a></li>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#bugs">Bugs</a></li>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#id1">Threading</a></li>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li>
-<li class="toctree-l2"><a class="reference external" href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="html5parser.html">html5lib Parser</a><ul>
-<li class="toctree-l2"><a class="reference external" href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li>
-<li class="toctree-l2"><a class="reference external" href="html5parser.html#function-reference">Function Reference</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="intro.html">Why lxml?</a><ul>
-<li class="toctree-l2"><a class="reference external" href="intro.html#motto">Motto</a></li>
-<li class="toctree-l2"><a class="reference external" href="intro.html#aims">Aims</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="lxml2.html">What&#8217;s new in lxml 2.0?</a><ul>
-<li class="toctree-l2"><a class="reference external" href="lxml2.html#changes-in-etree-and-objectify">Changes in etree and objectify</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxml2.html#new-modules">New modules</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="lxmlhtml.html">lxml.html</a><ul>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#parsing-html">Parsing HTML</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#working-with-links">Working with links</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#forms">Forms</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#html-diff">HTML Diff</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxmlhtml.html#examples">Examples</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="lxml-source-howto.html">How to read the source of lxml</a><ul>
-<li class="toctree-l2"><a class="reference external" href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxml-source-howto.html#where-to-start">Where to start?</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxml-source-howto.html#python-modules">Python modules</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li>
-<li class="toctree-l2"><a class="reference external" href="lxml-source-howto.html#lxml-html">lxml.html</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="memorymanagement.html">Memory management</a></li>
-<li class="toctree-l1"><a class="reference external" href="objectify.html">lxml.objectify</a><ul>
-<li class="toctree-l2"><a class="reference external" href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li>
-<li class="toctree-l2"><a class="reference external" href="objectify.html#asserting-a-schema">Asserting a Schema</a></li>
-<li class="toctree-l2"><a class="reference external" href="objectify.html#objectpath">ObjectPath</a></li>
-<li class="toctree-l2"><a class="reference external" href="objectify.html#python-data-types">Python data types</a></li>
-<li class="toctree-l2"><a class="reference external" href="objectify.html#how-data-types-are-matched">How data types are matched</a></li>
-<li class="toctree-l2"><a class="reference external" href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="parsing.html">Parsing XML and HTML with lxml</a><ul>
-<li class="toctree-l2"><a class="reference external" href="parsing.html#parsers">Parsers</a></li>
-<li class="toctree-l2"><a class="reference external" href="parsing.html#the-target-parser-interface">The target parser interface</a></li>
-<li class="toctree-l2"><a class="reference external" href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li>
-<li class="toctree-l2"><a class="reference external" href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li>
-<li class="toctree-l2"><a class="reference external" href="parsing.html#python-unicode-strings">Python unicode strings</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="performance.html">Benchmarks and Speed</a><ul>
-<li class="toctree-l2"><a class="reference external" href="performance.html#general-notes">General notes</a></li>
-<li class="toctree-l2"><a class="reference external" href="performance.html#how-to-read-the-timings">How to read the timings</a></li>
-<li class="toctree-l2"><a class="reference external" href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li>
-<li class="toctree-l2"><a class="reference external" href="performance.html#the-elementtree-api">The ElementTree API</a></li>
-<li class="toctree-l2"><a class="reference external" href="performance.html#xpath">XPath</a></li>
-<li class="toctree-l2"><a class="reference external" href="performance.html#a-longer-example">A longer example</a></li>
-<li class="toctree-l2"><a class="reference external" href="performance.html#lxml-objectify">lxml.objectify</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="resolvers.html">Document loading and URL resolving</a><ul>
-<li class="toctree-l2"><a class="reference external" href="resolvers.html#xml-catalogs">XML Catalogs</a></li>
-<li class="toctree-l2"><a class="reference external" href="resolvers.html#uri-resolvers">URI Resolvers</a></li>
-<li class="toctree-l2"><a class="reference external" href="resolvers.html#document-loading-in-context">Document loading in context</a></li>
-<li class="toctree-l2"><a class="reference external" href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="sax.html">Sax support</a><ul>
-<li class="toctree-l2"><a class="reference external" href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li>
-<li class="toctree-l2"><a class="reference external" href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li>
-<li class="toctree-l2"><a class="reference external" href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="tutorial.html">The lxml.etree Tutorial</a><ul>
-<li class="toctree-l2"><a class="reference external" href="tutorial.html#the-element-class">The Element class</a></li>
-<li class="toctree-l2"><a class="reference external" href="tutorial.html#the-elementtree-class">The ElementTree class</a></li>
-<li class="toctree-l2"><a class="reference external" href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li>
-<li class="toctree-l2"><a class="reference external" href="tutorial.html#namespaces">Namespaces</a></li>
-<li class="toctree-l2"><a class="reference external" href="tutorial.html#the-e-factory">The E-factory</a></li>
-<li class="toctree-l2"><a class="reference external" href="tutorial.html#elementpath">ElementPath</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="validation.html">Validation with lxml</a><ul>
-<li class="toctree-l2"><a class="reference external" href="validation.html#validation-at-parse-time">Validation at parse time</a></li>
-<li class="toctree-l2"><a class="reference external" href="validation.html#id1">DTD</a></li>
-<li class="toctree-l2"><a class="reference external" href="validation.html#relaxng">RelaxNG</a></li>
-<li class="toctree-l2"><a class="reference external" href="validation.html#xmlschema">XMLSchema</a></li>
-<li class="toctree-l2"><a class="reference external" href="validation.html#id2">Schematron</a></li>
-<li class="toctree-l2"><a class="reference external" href="validation.html#id3">(Pre-ISO-Schematron)</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="xpathxslt.html">XPath and XSLT with lxml</a><ul>
-<li class="toctree-l2"><a class="reference external" href="xpathxslt.html#xpath">XPath</a></li>
-<li class="toctree-l2"><a class="reference external" href="xpathxslt.html#xslt">XSLT</a></li>
-</ul>
-</li>
-</ul>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="_sources/index.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 documentation</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/intro.html b/doc/sphinx/intro.html
deleted file mode 100644 (file)
index 524a57b..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Why lxml? &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="why-lxml">
-<h1><a class="toc-backref" href="#id1">Why lxml?</a><a class="headerlink" href="#why-lxml" title="Permalink to this headline">¶</a></h1>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#why-lxml" id="id1">Why lxml?</a><ul>
-<li><a class="reference internal" href="#motto" id="id2">Motto</a></li>
-<li><a class="reference internal" href="#aims" id="id3">Aims</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="motto">
-<h2><a class="toc-backref" href="#id2">Motto</a><a class="headerlink" href="#motto" title="Permalink to this headline">¶</a></h2>
-<p>&#8220;the thrills without the strangeness&#8221;</p>
-<p>To explain the motto:</p>
-<p>&#8220;Programming with libxml2 is like the thrilling embrace of an exotic stranger.
-It seems to have the potential to fulfill your wildest dreams, but there&#8217;s a
-nagging voice somewhere in your head warning you that you&#8217;re about to get
-screwed in the worst way.&#8221;  (<a class="reference external" href="http://diveintomark.org/archives/2004/02/18/libxml2">a quote by Mark Pilgrim</a>)</p>
-<p>Mark Pilgrim was describing in particular the experience a Python programmer
-has when dealing with libxml2.  The default Python bindings of libxml2 are
-fast, thrilling, powerful, and your code might fail in some horrible way that
-you really shouldn&#8217;t have to worry about when writing Python code.  lxml
-combines the power of libxml2 with the ease of use of Python.</p>
-</div>
-<div class="section" id="aims">
-<h2><a class="toc-backref" href="#id3">Aims</a><a class="headerlink" href="#aims" title="Permalink to this headline">¶</a></h2>
-<p>The C libraries <a class="reference external" href="http://www.xmlsoft.org">libxml2</a> and <a class="reference external" href="http://xmlsoft.org/XSLT">libxslt</a> have huge benefits:</p>
-<ul class="simple">
-<li>Standards-compliant XML support.</li>
-<li>Support for (broken) HTML.</li>
-<li>Full-featured.</li>
-<li>Actively maintained by XML experts.</li>
-<li>fast. fast! FAST!</li>
-</ul>
-<p>These libraries already ship with Python bindings, but these Python bindings
-mimic the C-level interface.  This yields a number of problems:</p>
-<ul class="simple">
-<li>very low level and C-ish (not Pythonic).</li>
-<li>underdocumented and huge, you get lost in them.</li>
-<li>UTF-8 in API, instead of Python unicode strings.</li>
-<li>Can easily cause segfaults from Python.</li>
-<li>Require manual memory management!</li>
-</ul>
-<p>lxml is a new Python binding for libxml2 and libxslt, completely independent
-from these existing Python bindings.  Its aims:</p>
-<ul class="simple">
-<li>Pythonic API.</li>
-<li>Documented.</li>
-<li>Use Python unicode strings in API.</li>
-<li>Safe (no segfaults).</li>
-<li>No manual memory management!</li>
-</ul>
-<p>lxml aims to provide a Pythonic API by following as much as possible the
-<a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree API</a>.  We&#8217;re trying to avoid inventing too many new APIs, or you
-having to learn new things &#8211; XML is complicated enough.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Why lxml?</a><ul>
-<li><a class="reference internal" href="#motto">Motto</a></li>
-<li><a class="reference internal" href="#aims">Aims</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/intro.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/licenses/BSD.html b/doc/sphinx/licenses/BSD.html
deleted file mode 100644 (file)
index e312bb5..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title><no title> &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <link rel="shortcut icon" href="../_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="../index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <p>Copyright (c) 2004 Infrae. All rights reserved.</p>
-<p>Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:</p>
-<blockquote>
-<ol class="arabic simple">
-<li>Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.</li>
-<li>Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in
-the documentation and/or other materials provided with the
-distribution.</li>
-<li>Neither the name of Infrae nor the names of its contributors may
-be used to endorse or promote products derived from this software
-without specific prior written permission.</li>
-</ol>
-</blockquote>
-<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-&#8220;AS IS&#8221; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INFRAE OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../main.html">
-              <img class="logo" src="../_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="../_sources/licenses/BSD.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="../search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/licenses/GPL.html b/doc/sphinx/licenses/GPL.html
deleted file mode 100644 (file)
index 429180f..0000000
+++ /dev/null
@@ -1,457 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title><no title> &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <link rel="shortcut icon" href="../_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="../index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <blockquote>
-<blockquote>
-<dl class="docutils">
-<dt>GNU GENERAL PUBLIC LICENSE</dt>
-<dd>Version 2, June 1991</dd>
-</dl>
-</blockquote>
-<dl class="docutils">
-<dt>Copyright (C) 1989, 1991 Free Software Foundation, Inc.</dt>
-<dd>59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</dd>
-</dl>
-<p>Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.</p>
-<blockquote>
-<blockquote>
-Preamble</blockquote>
-<p>The licenses for most software are designed to take away your</p>
-</blockquote>
-</blockquote>
-<p>freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software&#8211;to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation&#8217;s software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.</p>
-<blockquote>
-When we speak of free software, we are referring to freedom, not</blockquote>
-<p>price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.</p>
-<blockquote>
-To protect your rights, we need to make restrictions that forbid</blockquote>
-<p>anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.</p>
-<blockquote>
-For example, if you distribute copies of such a program, whether</blockquote>
-<p>gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.</p>
-<blockquote>
-We protect your rights with two steps: (1) copyright the software, and</blockquote>
-<p>(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.</p>
-<blockquote>
-Also, for each author&#8217;s protection and ours, we want to make certain</blockquote>
-<p>that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors&#8217; reputations.</p>
-<blockquote>
-Finally, any free program is threatened constantly by software</blockquote>
-<p>patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone&#8217;s free use or not licensed at all.</p>
-<blockquote>
-The precise terms and conditions for copying, distribution and</blockquote>
-<p>modification follow.</p>
-<blockquote>
-<blockquote>
-<blockquote>
-GNU GENERAL PUBLIC LICENSE</blockquote>
-<p>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</p>
-</blockquote>
-<ol class="arabic simple" start="0">
-<li>This License applies to any program or other work which contains</li>
-</ol>
-</blockquote>
-<p>a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The &#8220;Program&#8221;, below,
-refers to any such program or work, and a &#8220;work based on the Program&#8221;
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term &#8220;modification&#8221;.)  Each licensee is addressed as &#8220;you&#8221;.</p>
-<p>Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.</p>
-<blockquote>
-<ol class="arabic simple">
-<li>You may copy and distribute verbatim copies of the Program&#8217;s</li>
-</ol>
-</blockquote>
-<p>source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.</p>
-<p>You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.</p>
-<blockquote>
-<ol class="arabic simple" start="2">
-<li>You may modify your copy or copies of the Program or any portion</li>
-</ol>
-</blockquote>
-<p>of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:</p>
-<blockquote>
-<p>a) You must cause the modified files to carry prominent notices
-stating that you changed the files and the date of any change.</p>
-<p>b) You must cause any work that you distribute or publish, that in
-whole or in part contains or is derived from the Program or any
-part thereof, to be licensed as a whole at no charge to all third
-parties under the terms of this License.</p>
-<p>c) If the modified program normally reads commands interactively
-when run, you must cause it, when started running for such
-interactive use in the most ordinary way, to print or display an
-announcement including an appropriate copyright notice and a
-notice that there is no warranty (or else, saying that you provide
-a warranty) and that users may redistribute the program under
-these conditions, and telling the user how to view a copy of this
-License.  (Exception: if the Program itself is interactive but
-does not normally print such an announcement, your work based on
-the Program is not required to print an announcement.)</p>
-</blockquote>
-<p>These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.</p>
-<p>Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.</p>
-<p>In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.</p>
-<blockquote>
-<ol class="arabic simple" start="3">
-<li>You may copy and distribute the Program (or a work based on it,</li>
-</ol>
-</blockquote>
-<p>under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:</p>
-<blockquote>
-<p>a) Accompany it with the complete corresponding machine-readable
-source code, which must be distributed under the terms of Sections
-1 and 2 above on a medium customarily used for software interchange; or,</p>
-<p>b) Accompany it with a written offer, valid for at least three
-years, to give any third party, for a charge no more than your
-cost of physically performing source distribution, a complete
-machine-readable copy of the corresponding source code, to be
-distributed under the terms of Sections 1 and 2 above on a medium
-customarily used for software interchange; or,</p>
-<p>c) Accompany it with the information you received as to the offer
-to distribute corresponding source code.  (This alternative is
-allowed only for noncommercial distribution and only if you
-received the program in object code or executable form with such
-an offer, in accord with Subsection b above.)</p>
-</blockquote>
-<p>The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.</p>
-<p>If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.</p>
-<blockquote>
-<ol class="arabic simple" start="4">
-<li>You may not copy, modify, sublicense, or distribute the Program</li>
-</ol>
-</blockquote>
-<p>except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.</p>
-<blockquote>
-<ol class="arabic simple" start="5">
-<li>You are not required to accept this License, since you have not</li>
-</ol>
-</blockquote>
-<p>signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.</p>
-<blockquote>
-<ol class="arabic simple" start="6">
-<li>Each time you redistribute the Program (or any work based on the</li>
-</ol>
-</blockquote>
-<p>Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients&#8217; exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.</p>
-<blockquote>
-<ol class="arabic simple" start="7">
-<li>If, as a consequence of a court judgment or allegation of patent</li>
-</ol>
-</blockquote>
-<p>infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.</p>
-<p>If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.</p>
-<p>It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.</p>
-<p>This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.</p>
-<blockquote>
-<ol class="arabic simple" start="8">
-<li>If the distribution and/or use of the Program is restricted in</li>
-</ol>
-</blockquote>
-<p>certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.</p>
-<blockquote>
-<ol class="arabic simple" start="9">
-<li>The Free Software Foundation may publish revised and/or new versions</li>
-</ol>
-</blockquote>
-<p>of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.</p>
-<p>Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and &#8220;any
-later version&#8221;, you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.</p>
-<blockquote>
-<ol class="arabic simple" start="10">
-<li>If you wish to incorporate parts of the Program into other free</li>
-</ol>
-</blockquote>
-<p>programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.</p>
-<blockquote>
-<blockquote>
-NO WARRANTY</blockquote>
-<ol class="arabic simple" start="11">
-<li>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</li>
-</ol>
-</blockquote>
-<p>FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM &#8220;AS IS&#8221; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.</p>
-<blockquote>
-<ol class="arabic simple" start="12">
-<li>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</li>
-</ol>
-</blockquote>
-<p>WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.</p>
-<blockquote>
-<blockquote>
-<blockquote>
-END OF TERMS AND CONDITIONS</blockquote>
-<p>How to Apply These Terms to Your New Programs</p>
-</blockquote>
-<p>If you develop a new program, and you want it to be of the greatest</p>
-</blockquote>
-<p>possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.</p>
-<blockquote>
-To do so, attach the following notices to the program.  It is safest</blockquote>
-<p>to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the &#8220;copyright&#8221; line and a pointer to where the full notice is found.</p>
-<blockquote>
-<p>&lt;one line to give the program&#8217;s name and a brief idea of what it does.&gt;
-Copyright (C) &lt;year&gt;  &lt;name of author&gt;</p>
-<p>This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.</p>
-<p>This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.</p>
-<p>You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</p>
-</blockquote>
-<p>Also add information on how to contact you by electronic and paper mail.</p>
-<p>If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:</p>
-<blockquote>
-Gnomovision version 69, Copyright (C) year  name of author
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type <a href="#id1"><span class="problematic" id="id2">`</span></a>show w&#8217;.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type <a href="#id3"><span class="problematic" id="id4">`</span></a>show c&#8217; for details.</blockquote>
-<p>The hypothetical commands <a href="#id5"><span class="problematic" id="id6">`</span></a>show w&#8217; and <a href="#id7"><span class="problematic" id="id8">`</span></a>show c&#8217; should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than <a href="#id9"><span class="problematic" id="id10">`</span></a>show w&#8217; and <a href="#id11"><span class="problematic" id="id12">`</span></a>show c&#8217;; they could even be
-mouse-clicks or menu items&#8211;whatever suits your program.</p>
-<p>You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a &#8220;copyright disclaimer&#8221; for the program, if
-necessary.  Here is a sample; alter the names:</p>
-<blockquote>
-<p>Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-<a href="#id13"><span class="problematic" id="id14">`</span></a>Gnomovision&#8217; (which makes passes at compilers) written by James Hacker.</p>
-<p>&lt;signature of Ty Coon&gt;, 1 April 1989
-Ty Coon, President of Vice</p>
-</blockquote>
-<p>This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.</p>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../main.html">
-              <img class="logo" src="../_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="../_sources/licenses/GPL.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="../search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/licenses/ZopePublicLicense.html b/doc/sphinx/licenses/ZopePublicLicense.html
deleted file mode 100644 (file)
index 3cd3adc..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Zope Public License (ZPL) Version 2.0 &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <link rel="shortcut icon" href="../_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="../index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="zope-public-license-zpl-version-2-0">
-<h1>Zope Public License (ZPL) Version 2.0<a class="headerlink" href="#zope-public-license-zpl-version-2-0" title="Permalink to this headline">¶</a></h1>
-<p>This software is Copyright (c) Zope Corporation (tm) and
-Contributors. All rights reserved.</p>
-<p>This license has been certified as open source. It has also
-been designated as GPL compatible by the Free Software
-Foundation (FSF).</p>
-<p>Redistribution and use in source and binary forms, with or
-without modification, are permitted provided that the
-following conditions are met:</p>
-<ol class="arabic simple">
-<li>Redistributions in source code must retain the above
-copyright notice, this list of conditions, and the following
-disclaimer.</li>
-<li>Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions, and the following
-disclaimer in the documentation and/or other materials
-provided with the distribution.</li>
-<li>The name Zope Corporation (tm) must not be used to
-endorse or promote products derived from this software
-without prior written permission from Zope Corporation.</li>
-<li>The right to distribute this software or to use it for
-any purpose does not give you the right to use Servicemarks
-(sm) or Trademarks (tm) of Zope Corporation. Use of them is
-covered in a separate agreement (see
-<a class="reference external" href="http://www.zope.com/Marks">http://www.zope.com/Marks</a>).</li>
-<li>If any files are modified, you must cause the modified
-files to carry prominent notices stating that you changed
-the files and the date of any change.</li>
-</ol>
-<p>Disclaimer</p>
-<blockquote>
-THIS SOFTWARE IS PROVIDED BY ZOPE CORPORATION <a href="#id1"><span class="problematic" id="id2">``</span></a>AS IS&#8217;&#8217;
-AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
-NO EVENT SHALL ZOPE CORPORATION OR ITS CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.</blockquote>
-<p>This software consists of contributions made by Zope
-Corporation and many individuals on behalf of Zope
-Corporation.  Specific attributions are listed in the
-accompanying credits file.</p>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../main.html">
-              <img class="logo" src="../_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="../_sources/licenses/ZopePublicLicense.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="../search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/licenses/elementtree.html b/doc/sphinx/licenses/elementtree.html
deleted file mode 100644 (file)
index 90af998..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title><no title> &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <link rel="shortcut icon" href="../_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="../index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <p>The ElementTree / XML Toys Library is</p>
-<p>Copyright (c) 1999-2003 by Secret Labs AB
-Copyright (c) 1999-2003 by Fredrik Lundh</p>
-<p>By obtaining, using, and/or copying this software and/or its
-associated documentation, you agree that you have read, understood,
-and will comply with the following terms and conditions:</p>
-<p>Permission to use, copy, modify, and distribute this software and its
-associated documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies, and that both that copyright notice and this permission notice
-appear in supporting documentation, and that the name of Secret Labs
-AB or the author not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.</p>
-<p>SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</p>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../main.html">
-              <img class="logo" src="../_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="../_sources/licenses/elementtree.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="../search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/lxml-source-howto.html b/doc/sphinx/lxml-source-howto.html
deleted file mode 100644 (file)
index 878743b..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <meta content="How to read and work on the source code of lxml" name="description" />
-<meta content="lxml, XML, Cython, source code, develop, comprehend, understand" name="keywords" />
-
-    <title>How to read the source of lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="how-to-read-the-source-of-lxml">
-<h1><a class="toc-backref" href="#id1">How to read the source of lxml</a><a class="headerlink" href="#how-to-read-the-source-of-lxml" title="Permalink to this headline">¶</a></h1>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name">Author:</th><td class="field-body">Stefan Behnel</td>
-</tr>
-</tbody>
-</table>
-<p>This document describes how to read the source code of <a class="reference external" href="http://codespeak.net/lxml/">lxml</a> and how
-to start working on it.  You might also be interested in the companion
-document that describes <a class="reference external" href="build.html">how to build lxml from sources</a>.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#how-to-read-the-source-of-lxml" id="id1">How to read the source of lxml</a><ul>
-<li><a class="reference internal" href="#what-is-cython" id="id2">What is Cython?</a></li>
-<li><a class="reference internal" href="#where-to-start" id="id3">Where to start?</a><ul>
-<li><a class="reference internal" href="#concepts" id="id4">Concepts</a></li>
-<li><a class="reference internal" href="#the-documentation" id="id5">The documentation</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#lxml-etree" id="id6">lxml.etree</a></li>
-<li><a class="reference internal" href="#python-modules" id="id7">Python modules</a></li>
-<li><a class="reference internal" href="#lxml-objectify" id="id8">lxml.objectify</a></li>
-<li><a class="reference internal" href="#lxml-html" id="id9">lxml.html</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="what-is-cython">
-<h2><a class="toc-backref" href="#id2">What is Cython?</a><a class="headerlink" href="#what-is-cython" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference external" href="http://cython.org/">Cython</a> is the language that lxml is written in.  It is a very
-Python-like language that was specifically designed for writing Python
-extension modules.</p>
-<p>The reason why Cython (or actually its predecessor <a class="reference external" href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/">Pyrex</a> at the time)
-was chosen as an implementation language for lxml, is that it makes it
-very easy to interface with both the Python world and external C code.
-Cython generates all the necessary glue code for the Python API,
-including Python types, calling conventions and reference counting.
-On the other side of the table, calling into C code is not more than
-declaring the signature of the function and maybe some variables as
-being C types, pointers or structs, and then calling it.  The rest of
-the code is just plain Python code.</p>
-<p>The Cython language is so close to Python that the Cython compiler can
-actually compile many, many Python programs to C without major
-modifications.  But the real speed gains of a C compilation come from
-type annotations that were added to the language and that allow Cython
-to generate very efficient C code.</p>
-<p>Even if you are not familiar with Cython, you should keep in mind that
-a slow implementation of a feature is better than none.  So, if you
-want to contribute and have an idea what code you want to write, feel
-free to start with a pure Python implementation.  Chances are, if you
-get the change officially accepted and integrated, others will take
-the time to optimise it so that it runs fast in Cython.</p>
-</div>
-<div class="section" id="where-to-start">
-<h2><a class="toc-backref" href="#id3">Where to start?</a><a class="headerlink" href="#where-to-start" title="Permalink to this headline">¶</a></h2>
-<p>First of all, read <a class="reference external" href="build.html">how to build lxml from sources</a> to learn how to
-retrieve the source code from the Subversion repository and how to
-build it.  The source code lives in the subdirectory <tt class="docutils literal"><span class="pre">src</span></tt> of the
-checkout.</p>
-<p>The main extension modules in lxml are <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> and
-<tt class="docutils literal"><span class="pre">lxml.objectify</span></tt>.  All main modules have the file extension
-<tt class="docutils literal"><span class="pre">.pyx</span></tt>, which shows the descendence from Pyrex.  As usual in Python,
-the main files start with a short description and a couple of imports.
-Cython distinguishes between the run-time <tt class="docutils literal"><span class="pre">import</span></tt> statement (as
-known from Python) and the compile-time <tt class="docutils literal"><span class="pre">cimport</span></tt> statement, which
-imports C declarations, either from external libraries or from other
-Cython modules.</p>
-<div class="section" id="concepts">
-<h3><a class="toc-backref" href="#id4">Concepts</a><a class="headerlink" href="#concepts" title="Permalink to this headline">¶</a></h3>
-<p>lxml&#8217;s tree API is based on proxy objects.  That means, every Element
-object (or rather <tt class="docutils literal"><span class="pre">_Element</span></tt> object) is a proxy for a libxml2 node
-structure.  The class declaration is (mainly):</p>
-<div class="highlight-python"><pre>cdef class _Element:
-    cdef _Document _doc
-    cdef xmlNode* _c_node</pre>
-</div>
-<p>It is a naming convention that C variables and C level class members
-that are passed into libxml2 start with a prefixed <tt class="docutils literal"><span class="pre">c_</span></tt> (commonly
-libxml2 struct pointers), and that C level class members are prefixed
-with an underscore.  So you will often see names like <tt class="docutils literal"><span class="pre">c_doc</span></tt> for an
-<tt class="docutils literal"><span class="pre">xmlDoc*</span></tt> variable (or <tt class="docutils literal"><span class="pre">c_node</span></tt> for an <tt class="docutils literal"><span class="pre">xmlNode*</span></tt>), or the above
-<tt class="docutils literal"><span class="pre">_c_node</span></tt> for a class member that points to an <tt class="docutils literal"><span class="pre">xmlNode</span></tt> struct
-(or <tt class="docutils literal"><span class="pre">_c_doc</span></tt> for an <tt class="docutils literal"><span class="pre">xmlDoc*</span></tt>).</p>
-<p>It is important to know that every proxy in lxml has a factory
-function that properly sets up C level members.  Proxy objects must
-<em>never</em> be instantiated outside of that factory.  For example, to
-instantiate an _Element object or its subclasses, you must always call
-its factory function:</p>
-<div class="highlight-python"><pre>cdef xmlNode* c_node
-cdef _Document doc
-cdef _Element element
-...
-element = _elementFactory(doc, c_node)</pre>
-</div>
-<p>A good place to see how this factory is used are the Element methods
-<tt class="docutils literal"><span class="pre">getparent()</span></tt>, <tt class="docutils literal"><span class="pre">getnext()</span></tt> and <tt class="docutils literal"><span class="pre">getprevious()</span></tt>.</p>
-</div>
-<div class="section" id="the-documentation">
-<h3><a class="toc-backref" href="#id5">The documentation</a><a class="headerlink" href="#the-documentation" title="Permalink to this headline">¶</a></h3>
-<p>An important part of lxml is the documentation that lives in the
-<tt class="docutils literal"><span class="pre">doc</span></tt> directory.  It describes a large part of the API and comprises
-a lot of example code in the form of doctests.</p>
-<p>The documentation is written in the <a class="reference external" href="http://docutils.sourceforge.net/rst.html">ReStructured Text</a> format, a
-very powerful text markup language that looks almost like plain text.
-It is part of the <a class="reference external" href="http://docutils.sourceforge.net/">docutils</a> package.</p>
-<p>The project web site of <a class="reference external" href="http://codespeak.net/lxml/">lxml</a> is completely generated from these text
-documents.  Even the side menu is just collected from the table of
-contents that the ReST processor writes into each HTML page.
-Obviously, we use lxml for this.</p>
-<p>The easiest way to generate the HTML pages is by calling:</p>
-<div class="highlight-python"><pre>make html</pre>
-</div>
-<p>This will call the script <tt class="docutils literal"><span class="pre">doc/mkhtml.py</span></tt> to run the ReST processor
-on the files.  After generating an HTML page the script parses it back
-in to build the side menu, and injects the complete menu into each
-page at the very end.</p>
-<p>Running the <tt class="docutils literal"><span class="pre">make</span></tt> command will also generate the API documentation
-if you have <a class="reference external" href="http://epydoc.sourceforge.net/">epydoc</a> installed.  The epydoc package will import and
-introspect the extension modules and also introspect and parse the
-Python modules of lxml.  The aggregated information will then be
-written out into an HTML documentation site.</p>
-</div>
-</div>
-<div class="section" id="lxml-etree">
-<h2><a class="toc-backref" href="#id6">lxml.etree</a><a class="headerlink" href="#lxml-etree" title="Permalink to this headline">¶</a></h2>
-<p>The main module, <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>, is in the file <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/src/lxml/lxml.etree.pyx">lxml.etree.pyx</a>.  It
-implements the main functions and types of the ElementTree API, as
-well as all the factory functions for proxies.  It is the best place
-to start if you want to find out how a specific feature is
-implemented.</p>
-<p>At the very end of the file, it contains a series of <tt class="docutils literal"><span class="pre">include</span></tt>
-statements that merge the rest of the implementation into the
-generated C code.  Yes, you read right: no importing, no source file
-namespacing, just plain good old include and a huge C code result of
-more than 100,000 lines that we throw right into the C compiler.</p>
-<p>The main include files are:</p>
-<dl class="docutils">
-<dt>apihelpers.pxi</dt>
-<dd>Private C helper functions.  Except for the factory functions,
-most of the little functions that are used all over the place are
-defined here.  This includes things like reading out the text
-content of a libxml2 tree node, checking input from the API level,
-creating a new Element node or handling attribute values.  If you
-want to work on the lxml code, you should keep these functions in
-the back of your head, as they will definitely make your life
-easier.</dd>
-<dt>classlookup.pxi</dt>
-<dd>Element class lookup mechanisms.  The main API and engines for
-those who want to define custom Element classes and inject them
-into lxml.</dd>
-<dt>docloader.pxi</dt>
-<dd>Support for custom document loaders.  Base class and registry for
-custom document resolvers.</dd>
-<dt>extensions.pxi</dt>
-<dd>Infrastructure for extension functions in XPath/XSLT, including
-XPath value conversion and function registration.</dd>
-<dt>iterparse.pxi</dt>
-<dd>Incremental XML parsing.  An iterator class that builds iterparse
-events while parsing.</dd>
-<dt>nsclasses.pxi</dt>
-<dd>Namespace implementation and registry.  The registry and engine
-for Element classes that use the ElementNamespaceClassLookup
-scheme.</dd>
-<dt>parser.pxi</dt>
-<dd>Parsers for XML and HTML.  This is the main parser engine.  It&#8217;s
-the reason why you can parse a document from various sources in
-two lines of Python code.  It&#8217;s definitely not the right place to
-start reading lxml&#8217;s soure code.</dd>
-<dt>parsertarget.pxi</dt>
-<dd>An ElementTree compatible parser target implementation based on
-the SAX2 interface of libxml2.</dd>
-<dt>proxy.pxi</dt>
-<dd>Very low-level functions for memory allocation/deallocation
-and Element proxy handling.  Ignoring this for the beginning
-will safe your head from exploding.</dd>
-<dt>public-api.pxi</dt>
-<dd>The set of C functions that are exported to other extension
-modules at the C level.  For example, <tt class="docutils literal"><span class="pre">lxml.objectify</span></tt> makes use
-of these.  See the <cite>C-level API</cite> documentation.</dd>
-<dt>readonlytree.pxi</dt>
-<dd>A separate read-only implementation of the Element API.  This is
-used in places where non-intrusive access to a tree is required,
-such as the <tt class="docutils literal"><span class="pre">PythonElementClassLookup</span></tt> or XSLT extension
-elements.</dd>
-<dt>saxparser.pxi</dt>
-<dd>SAX-like parser interfaces as known from ElementTree&#8217;s TreeBuilder.</dd>
-<dt>serializer.pxi</dt>
-<dd>XML output functions.  Basically everything that creates byte
-sequences from XML trees.</dd>
-<dt>xinclude.pxi</dt>
-<dd>XInclude support.</dd>
-<dt>xmlerror.pxi</dt>
-<dd><p class="first">Error log handling.  All error messages that libxml2 generates
-internally walk through the code in this file to end up in lxml&#8217;s
-Python level error logs.</p>
-<p class="last">At the end of the file, you will find a long list of named error
-codes.  It is generated from the libxml2 HTML documentation (using
-lxml, of course).  See the script <tt class="docutils literal"><span class="pre">update-error-constants.py</span></tt>
-for this.</p>
-</dd>
-<dt>xmlid.pxi</dt>
-<dd>XMLID and IDDict, a dictionary-like way to find Elements by their
-XML-ID attribute.</dd>
-<dt>xpath.pxi</dt>
-<dd>XPath evaluators.</dd>
-<dt>xslt.pxi</dt>
-<dd>XSL transformations, including the <tt class="docutils literal"><span class="pre">XSLT</span></tt> class, document lookup
-handling and access control.</dd>
-</dl>
-<p>The different schema languages (DTD, RelaxNG, XML Schema and
-Schematron) are implemented in the following include files:</p>
-<ul class="simple">
-<li>dtd.pxi</li>
-<li>relaxng.pxi</li>
-<li>schematron.pxi</li>
-<li>xmlschema.pxi</li>
-</ul>
-</div>
-<div class="section" id="python-modules">
-<h2><a class="toc-backref" href="#id7">Python modules</a><a class="headerlink" href="#python-modules" title="Permalink to this headline">¶</a></h2>
-<p>The <tt class="docutils literal"><span class="pre">lxml</span></tt> package also contains a number of pure Python modules:</p>
-<dl class="docutils">
-<dt>builder.py</dt>
-<dd>The E-factory and the ElementBuilder class.  These provide a
-simple interface to XML tree generation.</dd>
-<dt>cssselect.py</dt>
-<dd>A CSS selector implementation based on XPath.  The main class is
-called <tt class="docutils literal"><span class="pre">CSSSelector</span></tt>.</dd>
-<dt>doctestcompare.py</dt>
-<dd>A relaxed comparison scheme for XML/HTML markup in doctest.</dd>
-<dt>ElementInclude.py</dt>
-<dd>XInclude-like document inclusion, compatible with ElementTree.</dd>
-<dt>_elementpath.py</dt>
-<dd>XPath-like path language, compatible with ElementTree.</dd>
-<dt>sax.py</dt>
-<dd>SAX2 compatible interfaces to copy lxml trees from/to SAX compatible
-tools.</dd>
-<dt>usedoctest.py</dt>
-<dd>Wrapper module for <tt class="docutils literal"><span class="pre">doctestcompare.py</span></tt> that simplifies its usage
-from inside a doctest.</dd>
-</dl>
-</div>
-<div class="section" id="lxml-objectify">
-<h2><a class="toc-backref" href="#id8">lxml.objectify</a><a class="headerlink" href="#lxml-objectify" title="Permalink to this headline">¶</a></h2>
-<p>A Cython implemented extension module that uses the public C-API of
-lxml.etree.  It provides a Python object-like interface to XML trees.
-The implementation resides in the file <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/src/lxml/lxml.objectify.pyx">lxml.objectify.pyx</a>.</p>
-</div>
-<div class="section" id="lxml-html">
-<h2><a class="toc-backref" href="#id9">lxml.html</a><a class="headerlink" href="#lxml-html" title="Permalink to this headline">¶</a></h2>
-<p>A specialised toolkit for HTML handling, based on lxml.etree.  This is
-implemented in pure Python.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">How to read the source of lxml</a><ul>
-<li><a class="reference internal" href="#what-is-cython">What is Cython?</a></li>
-<li><a class="reference internal" href="#where-to-start">Where to start?</a><ul>
-<li><a class="reference internal" href="#concepts">Concepts</a></li>
-<li><a class="reference internal" href="#the-documentation">The documentation</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#lxml-etree">lxml.etree</a></li>
-<li><a class="reference internal" href="#python-modules">Python modules</a></li>
-<li><a class="reference internal" href="#lxml-objectify">lxml.objectify</a></li>
-<li><a class="reference internal" href="#lxml-html">lxml.html</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/lxml-source-howto.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/lxml2.html b/doc/sphinx/lxml2.html
deleted file mode 100644 (file)
index fd4c6a5..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>What’s new in lxml 2.0? &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="shortcut icon" href="_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="what-s-new-in-lxml-2-0">
-<h1><a class="toc-backref" href="#id3">What&#8217;s new in lxml 2.0?</a><a class="headerlink" href="#what-s-new-in-lxml-2-0" title="Permalink to this headline">¶</a></h1>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#what-s-new-in-lxml-2-0" id="id3">What&#8217;s new in lxml 2.0?</a><ul>
-<li><a class="reference internal" href="#changes-in-etree-and-objectify" id="id4">Changes in etree and objectify</a><ul>
-<li><a class="reference internal" href="#incompatible-changes" id="id5">Incompatible changes</a></li>
-<li><a class="reference internal" href="#enhancements" id="id6">Enhancements</a></li>
-<li><a class="reference internal" href="#deprecation" id="id7">Deprecation</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#new-modules" id="id8">New modules</a><ul>
-<li><a class="reference internal" href="#lxml-usedoctest" id="id9">lxml.usedoctest</a></li>
-<li><a class="reference internal" href="#lxml-html" id="id10">lxml.html</a></li>
-<li><a class="reference internal" href="#lxml-cssselect" id="id11">lxml.cssselect</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<p>During the development of the lxml 1.x series, a couple of quirks were
-discovered in the design that made the API less obvious and its future
-extensions harder than necessary. lxml 2.0 is a soft evolution of lxml 1.x
-towards a simpler, more consistent and more powerful API - with some major
-extensions.  Wherever possible, lxml 1.3 comes close to the semantics of lxml
-2.0, so that migrating should be easier for code that currently runs with 1.3.</p>
-<p>One of the important internal changes was the switch from the <a class="reference external" href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/">Pyrex</a>
-compiler to <a class="reference external" href="http://www.cython.org/">Cython</a>, which provides better optimisation and improved
-support for newer Python language features.  This allows the code of
-lxml to become more Python-like again, while the performance improves
-as Cython continues its own development.  The code simplification,
-which will continue throughout the 2.x series, will hopefully make it
-even easier for users to contribute.</p>
-<div class="section" id="changes-in-etree-and-objectify">
-<h2><a class="toc-backref" href="#id4">Changes in etree and objectify</a><a class="headerlink" href="#changes-in-etree-and-objectify" title="Permalink to this headline">¶</a></h2>
-<p>A graduation towards a more consistent API cannot go without a certain amount
-of incompatible changes.  The following is a list of those differences that
-applications need to take into account when migrating from lxml 1.x to lxml
-2.0.</p>
-<div class="section" id="incompatible-changes">
-<h3><a class="toc-backref" href="#id5">Incompatible changes</a><a class="headerlink" href="#incompatible-changes" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>lxml 0.9 introduced a feature called <a class="reference external" href="element_classes.html#implementing-namespaces">namespace implementation</a>.  The
-global <tt class="docutils literal"><span class="pre">Namespace</span></tt> factory was added to register custom element classes
-and have lxml.etree look them up automatically.  However, the later
-development of further class lookup mechanisms made it appear less and less
-adequate to register this mapping at a global level, so lxml 1.1 first
-removed the namespace based lookup from the default setup and lxml 2.0
-finally removes the global namespace registry completely.  As all other
-lookup mechanisms, the namespace lookup is now local to a parser, including
-the registry itself.  Applications that use a module-level parser can easily
-map its <tt class="docutils literal"><span class="pre">get_namespace()</span></tt> method to a global <tt class="docutils literal"><span class="pre">Namespace</span></tt> function to
-mimic the old behaviour.</li>
-<li>Some API functions now require passing options as keyword arguments,
-as opposed to positional arguments.  This restriction was introduced
-to make the API usage independent of future extensions such as the
-addition of new positional arguments.  Users should not rely on the
-position of an optional argument in function signatures and instead
-pass it explicitly named.  This also improves code readability - it
-is common good practice to pass options in a consistent way
-independent of their position, so many people may not even notice
-the change in their code.  Another important reason is compatibility
-with cElementTree, which also enforces keyword-only arguments in a
-couple of places.</li>
-<li>XML tag names are validated when creating an Element.  This does not
-apply to HTML tags, where only HTML special characters are
-forbidden.  The distinction is made by the <tt class="docutils literal"><span class="pre">SubElement()</span></tt> factory,
-which tests if the tree it works on is an HTML tree, and by the
-<tt class="docutils literal"><span class="pre">.makeelement()</span></tt> methods of parsers, which behave differently for
-the <tt class="docutils literal"><span class="pre">XMLParser()</span></tt> and the <tt class="docutils literal"><span class="pre">HTMLParser()</span></tt>.</li>
-<li>XPath now raises exceptions specific to the part of the execution that
-failed: <tt class="docutils literal"><span class="pre">XPathSyntaxError</span></tt> for parser errors and <tt class="docutils literal"><span class="pre">XPathEvalError</span></tt> for
-errors that occurred during the evaluation.  Note that the distinction only
-works for the <tt class="docutils literal"><span class="pre">XPath()</span></tt> class.  The other two evaluators only have a
-single evaluation call that includes the parsing step, and will therefore
-only raise an <tt class="docutils literal"><span class="pre">XPathEvalError</span></tt>.  Applications can catch both exceptions
-through the common base class <tt class="docutils literal"><span class="pre">XPathError</span></tt> (which also exists in earlier
-lxml versions).</li>
-<li>Network access in parsers is now disabled by default, i.e. the
-<tt class="docutils literal"><span class="pre">no_network</span></tt> option defaults to True.  Due to a somewhat &#8216;interesting&#8217;
-implementation in libxml2, this does not affect the first document (i.e. the
-URL that is parsed), but only subsequent documents, such as a DTD when
-parsing with validation.  This means that you will have to check the URL you
-pass, instead of relying on lxml to prevent <em>any</em> access to external
-resources.  As this can be helpful in some use cases, lxml does not work
-around it.</li>
-<li>The type annotations in lxml.objectify (the <tt class="docutils literal"><span class="pre">pytype</span></tt> attribute) now use
-<tt class="docutils literal"><span class="pre">NoneType</span></tt> for the None value as this is the correct Python type name.
-Previously, lxml 1.x used a lower case <tt class="docutils literal"><span class="pre">none</span></tt>.</li>
-<li>Another change in objectify regards the way it deals with ambiguous types.
-Previously, setting a value like the string <tt class="docutils literal"><span class="pre">&quot;3&quot;</span></tt> through normal attribute
-access would let it come back as an integer when reading the object
-attribute.  lxml 2.0 prevents this by always setting the <tt class="docutils literal"><span class="pre">pytype</span></tt>
-attribute to the type the user passed in, so <tt class="docutils literal"><span class="pre">&quot;3&quot;</span></tt> will come back as a
-string, while the number <tt class="docutils literal"><span class="pre">3</span></tt> will come back as a number.  To remove the
-type annotation on serialisation, you can use the <tt class="docutils literal"><span class="pre">deannotate()</span></tt> function.</li>
-<li>The C-API function <tt class="docutils literal"><span class="pre">findOrBuildNodeNs()</span></tt> was replaced by the more generic
-<tt class="docutils literal"><span class="pre">findOrBuildNodeNsPrefix()</span></tt> that accepts an additional default prefix.</li>
-</ul>
-</div>
-<div class="section" id="enhancements">
-<h3><a class="toc-backref" href="#id6">Enhancements</a><a class="headerlink" href="#enhancements" title="Permalink to this headline">¶</a></h3>
-<p>Most of the enhancements of lxml 2.0 were made under the hood.  Most people
-won&#8217;t even notice them, but they make the maintenance of lxml easier and thus
-facilitate further enhancements and an improved integration between lxml&#8217;s
-features.</p>
-<ul class="simple">
-<li>lxml.objectify now has its own implementation of the <a class="reference external" href="objectify.html#tree-generation-with-the-e-factory">E factory</a>.  It uses
-the built-in type lookup mechanism of lxml.objectify, thus removing the need
-for an additional type registry mechanism (as previously available through
-the <tt class="docutils literal"><span class="pre">typemap</span></tt> parameter).</li>
-<li>XML entities are supported through the <tt class="docutils literal"><span class="pre">Entity()</span></tt> factory, an Entity
-element class and a parser option <tt class="docutils literal"><span class="pre">resolve_entities</span></tt> that allows to keep
-entities in the element tree when set to False.  Also, the parser will now
-report undefined entities as errors if it needs to resolve them (which is
-still the default, as in lxml 1.x).</li>
-<li>A major part of the XPath code was rewritten and can now benefit from a
-bigger overlap with the XSLT code.  The main benefits are improved thread
-safety in the XPath evaluators and Python RegExp support in standard XPath.</li>
-<li>The string results of an XPath evaluation have become &#8216;smart&#8217; string
-subclasses.  Formerly, there was no easy way to find out where a
-string originated from.  In lxml 2.0, you can call its
-<tt class="docutils literal"><span class="pre">getparent()</span></tt> method to <a class="reference external" href="tutorial.html#using-xpath-to-find-text">find the Element that carries it</a>.  This
-works for attributes (<tt class="docutils literal"><span class="pre">//&#64;attribute</span></tt>) and for <tt class="docutils literal"><span class="pre">text()</span></tt> nodes,
-i.e. Element text and tails.  Strings that were constructed in the
-path expression, e.g. by the <tt class="docutils literal"><span class="pre">string()</span></tt> function or extension
-functions, will return None as their parent.</li>
-<li>Setting a <tt class="docutils literal"><span class="pre">QName</span></tt> object as value of the <tt class="docutils literal"><span class="pre">.text</span></tt> property or as
-an attribute value will resolve its prefix in the respective context</li>
-<li>Following ElementTree 1.3, the <tt class="docutils literal"><span class="pre">iterfind()</span></tt> method supports
-efficient iteration based on XPath-like expressions.</li>
-</ul>
-<p>The parsers also received some major enhancements:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">iterparse()</span></tt> can parse HTML when passing the boolean <tt class="docutils literal"><span class="pre">html</span></tt>
-keyword.</li>
-<li>Parse time XML Schema validation by passing an
-XMLSchema object to the <tt class="docutils literal"><span class="pre">schema</span></tt> keyword argument of a parser.</li>
-<li>Support for a <tt class="docutils literal"><span class="pre">target</span></tt> object that implements ElementTree&#8217;s
-<a class="reference external" href="http://effbot.org/elementtree/elementtree-treebuilder.htm">TreeBuilder interface</a>.</li>
-<li>The <tt class="docutils literal"><span class="pre">encoding</span></tt> keyword allows overriding the document encoding.</li>
-</ul>
-</div>
-<div class="section" id="deprecation">
-<h3><a class="toc-backref" href="#id7">Deprecation</a><a class="headerlink" href="#deprecation" title="Permalink to this headline">¶</a></h3>
-<p>The following functions and methods are now deprecated.  They are
-still available in lxml 2.0 and will be removed in lxml 2.1:</p>
-<ul>
-<li><p class="first">The <tt class="docutils literal"><span class="pre">tounicode()</span></tt> function was replaced by the call
-<tt class="docutils literal"><span class="pre">tostring(encoding=unicode)</span></tt>.</p>
-</li>
-<li><p class="first">CamelCaseNamed module functions and methods were renamed to their
-underscore equivalents to follow <a class="reference external" href="http://www.python.org/dev/peps/pep-0008/">PEP 8</a> in naming.</p>
-<ul>
-<li><p class="first"><tt class="docutils literal"><span class="pre">etree.clearErrorLog()</span></tt>, use <tt class="docutils literal"><span class="pre">etree.clear_error_log()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">etree.useGlobalPythonLog()</span></tt>, use
-<tt class="docutils literal"><span class="pre">etree.use_global_python_log()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">etree.ElementClassLookup.setFallback()</span></tt>, use
-<tt class="docutils literal"><span class="pre">etree.ElementClassLookup.set_fallback()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">etree.getDefaultParser()</span></tt>, use <tt class="docutils literal"><span class="pre">etree.get_default_parser()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">etree.setDefaultParser()</span></tt>, use <tt class="docutils literal"><span class="pre">etree.set_default_parser()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">etree.setElementClassLookup()</span></tt>, use
-<tt class="docutils literal"><span class="pre">etree.set_element_class_lookup()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">XMLParser.setElementClassLookup()</span></tt>, use <tt class="docutils literal"><span class="pre">.set_element_class_lookup()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">HTMLParser.setElementClassLookup()</span></tt>, use <tt class="docutils literal"><span class="pre">.set_element_class_lookup()</span></tt></p>
-<p>Note that <tt class="docutils literal"><span class="pre">parser.setElementClassLookup()</span></tt> has not been removed
-yet, although <tt class="docutils literal"><span class="pre">parser.set_element_class_lookup()</span></tt> should be used
-instead.</p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">xpath_evaluator.registerNamespace()</span></tt>, use
-<tt class="docutils literal"><span class="pre">xpath_evaluator.register_namespace()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">xpath_evaluator.registerNamespaces()</span></tt>, use
-<tt class="docutils literal"><span class="pre">xpath_evaluator.register_namespaces()</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">objectify.setPytypeAttributeTag</span></tt>, use
-<tt class="docutils literal"><span class="pre">objectify.set_pytype_attribute_tag</span></tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">objectify.setDefaultParser()</span></tt>, use
-<tt class="docutils literal"><span class="pre">objectify.set_default_parser()</span></tt></p>
-</li>
-</ul>
-</li>
-<li><p class="first">The <tt class="docutils literal"><span class="pre">.getiterator()</span></tt> method on Elements and ElementTrees was
-renamed to <tt class="docutils literal"><span class="pre">.iter()</span></tt> to follow ElementTree 1.3.</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="new-modules">
-<h2><a class="toc-backref" href="#id8">New modules</a><a class="headerlink" href="#new-modules" title="Permalink to this headline">¶</a></h2>
-<p>The most visible changes in lxml 2.0 regard the new modules that were added.</p>
-<div class="section" id="lxml-usedoctest">
-<h3><a class="toc-backref" href="#id9">lxml.usedoctest</a><a class="headerlink" href="#lxml-usedoctest" title="Permalink to this headline">¶</a></h3>
-<p>A very useful module for doctests based on XML or HTML is
-<tt class="docutils literal"><span class="pre">lxml.doctestcompare</span></tt>.  It provides a relaxed comparison mechanism
-for XML and HTML in doctests.  Using it for XML comparisons is as
-simple as:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.usedoctest</span>
-</pre></div>
-</div>
-<p>and for HTML comparisons:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html.usedoctest</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="lxml-html">
-<h3><a class="toc-backref" href="#id10">lxml.html</a><a class="headerlink" href="#lxml-html" title="Permalink to this headline">¶</a></h3>
-<p>The largest new package that was added to lxml 2.0 is <a class="reference external" href="lxmlhtml.html">lxml.html</a>.  It
-contains various tools and modules for HTML handling.  The major features
-include support for cleaning up HTML (removing unwanted content), a readable
-HTML diff and various tools for working with links.</p>
-</div>
-<div class="section" id="lxml-cssselect">
-<h3><a class="toc-backref" href="#id11">lxml.cssselect</a><a class="headerlink" href="#lxml-cssselect" title="Permalink to this headline">¶</a></h3>
-<p>The Cascading Stylesheet Language (<a class="reference external" href="http://www.w3.org/Style/CSS/">CSS</a>) has a very short and generic path
-language for pointing at elements in XML/HTML trees (<a class="reference external" href="http://www.w3.org/TR/CSS21/selector.html">CSS selectors</a>).  The module
-<a class="reference external" href="cssselect.html">lxml.cssselect</a> provides an implementation based on XPath.</p>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3><a href="main.html">Table Of Contents</a></h3>
-            <ul>
-<li><a class="reference external" href="#">What&#8217;s new in lxml 2.0?</a><ul>
-<li><a class="reference external" href="#changes-in-etree-and-objectify">Changes in etree and objectify</a><ul>
-<li><a class="reference external" href="#incompatible-changes">Incompatible changes</a></li>
-<li><a class="reference external" href="#enhancements">Enhancements</a></li>
-<li><a class="reference external" href="#deprecation">Deprecation</a></li>
-</ul>
-</li>
-<li><a class="reference external" href="#new-modules">New modules</a><ul>
-<li><a class="reference external" href="#lxml-usedoctest">lxml.usedoctest</a></li>
-<li><a class="reference external" href="#lxml-html">lxml.html</a></li>
-<li><a class="reference external" href="#lxml-cssselect">lxml.cssselect</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="_sources/lxml2.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/lxmlhtml.html b/doc/sphinx/lxmlhtml.html
deleted file mode 100644 (file)
index d4ba83a..0000000
+++ /dev/null
@@ -1,808 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>lxml.html &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="lxml-html">
-<h1><a class="toc-backref" href="#id1">lxml.html</a><a class="headerlink" href="#lxml-html" title="Permalink to this headline">¶</a></h1>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name">Author:</th><td class="field-body">Ian Bicking</td>
-</tr>
-</tbody>
-</table>
-<p>Since version 2.0, lxml comes with a dedicated Python package for
-dealing with HTML: <tt class="docutils literal"><span class="pre">lxml.html</span></tt>.  It is based on lxml&#8217;s HTML parser,
-but provides a special Element API for HTML elements, as well as a
-number of utilities for common HTML processing tasks.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#lxml-html" id="id1">lxml.html</a><ul>
-<li><a class="reference internal" href="#parsing-html" id="id2">Parsing HTML</a><ul>
-<li><a class="reference internal" href="#parsing-html-fragments" id="id3">Parsing HTML fragments</a></li>
-<li><a class="reference internal" href="#really-broken-pages" id="id4">Really broken pages</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#html-element-methods" id="id5">HTML Element Methods</a></li>
-<li><a class="reference internal" href="#running-html-doctests" id="id6">Running HTML doctests</a></li>
-<li><a class="reference internal" href="#creating-html-with-the-e-factory" id="id7">Creating HTML with the E-factory</a><ul>
-<li><a class="reference internal" href="#viewing-your-html" id="id8">Viewing your HTML</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#working-with-links" id="id9">Working with links</a><ul>
-<li><a class="reference internal" href="#functions" id="id10">Functions</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#forms" id="id11">Forms</a><ul>
-<li><a class="reference internal" href="#form-filling-example" id="id12">Form Filling Example</a></li>
-<li><a class="reference internal" href="#form-submission" id="id13">Form Submission</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#cleaning-up-html" id="id14">Cleaning up HTML</a><ul>
-<li><a class="reference internal" href="#autolink" id="id15">autolink</a></li>
-<li><a class="reference internal" href="#wordwrap" id="id16">wordwrap</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#html-diff" id="id17">HTML Diff</a></li>
-<li><a class="reference internal" href="#examples" id="id18">Examples</a><ul>
-<li><a class="reference internal" href="#microformat-example" id="id19">Microformat Example</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<p>The main API is based on the <a class="reference external" href="tutorial.html">lxml.etree</a> API, and thus, on the <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a>
-API.</p>
-<div class="section" id="parsing-html">
-<h2><a class="toc-backref" href="#id2">Parsing HTML</a><a class="headerlink" href="#parsing-html" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="parsing-html-fragments">
-<h3><a class="toc-backref" href="#id3">Parsing HTML fragments</a><a class="headerlink" href="#parsing-html-fragments" title="Permalink to this headline">¶</a></h3>
-<p>There are several functions available to parse HTML:</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">parse(filename_url_or_file)</span></tt>:</dt>
-<dd><p class="first">Parses the named file or url, or if the object has a <tt class="docutils literal"><span class="pre">.read()</span></tt>
-method, parses from that.</p>
-<p class="last">If you give a URL, or if the object has a <tt class="docutils literal"><span class="pre">.geturl()</span></tt> method (as
-file-like objects from <tt class="docutils literal"><span class="pre">urllib.urlopen()</span></tt> have), then that URL
-is used as the base URL.  You can also provide an explicit
-<tt class="docutils literal"><span class="pre">base_url</span></tt> keyword argument.</p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">document_fromstring(string)</span></tt>:</dt>
-<dd>Parses a document from the given string.  This always creates a
-correct HTML document, which means the parent node is <tt class="docutils literal"><span class="pre">&lt;html&gt;</span></tt>,
-and there is a body and possibly a head.</dd>
-<dt><tt class="docutils literal"><span class="pre">fragment_fromstring(string,</span> <span class="pre">create_parent=False)</span></tt>:</dt>
-<dd>Returns an HTML fragment from a string.  The fragment must contain
-just a single element, unless <tt class="docutils literal"><span class="pre">create_parent</span></tt> is given;
-e.g,. <tt class="docutils literal"><span class="pre">fragment_fromstring(string,</span> <span class="pre">create_parent='div')</span></tt> will
-wrap the element in a <tt class="docutils literal"><span class="pre">&lt;div&gt;</span></tt>.</dd>
-<dt><tt class="docutils literal"><span class="pre">fragments_fromstring(string)</span></tt>:</dt>
-<dd>Returns a list of the elements found in the fragment.</dd>
-<dt><tt class="docutils literal"><span class="pre">fromstring(string)</span></tt>:</dt>
-<dd>Returns <tt class="docutils literal"><span class="pre">document_fromstring</span></tt> or <tt class="docutils literal"><span class="pre">fragment_fromstring</span></tt>, based
-on whether the string looks like a full document, or just a
-fragment.</dd>
-</dl>
-</div>
-<div class="section" id="really-broken-pages">
-<h3><a class="toc-backref" href="#id4">Really broken pages</a><a class="headerlink" href="#really-broken-pages" title="Permalink to this headline">¶</a></h3>
-<p>The normal HTML parser is capable of handling broken HTML, but for
-pages that are far enough from HTML to call them &#8216;tag soup&#8217;, it may
-still fail to parse the page in a useful way.  A way to deal with this
-is <a class="reference external" href="elementsoup.html">ElementSoup</a>, which deploys the well-known <a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> parser to
-build an lxml HTML tree.</p>
-<p>However, note that the most common problem with web pages is the lack
-of (or the existence of incorrect) encoding declarations.  It is
-therefore often sufficient to only use the encoding detection of
-BeautifulSoup, called UnicodeDammit, and to leave the rest to lxml&#8217;s
-own HTML parser, which is several times faster.</p>
-</div>
-</div>
-<div class="section" id="html-element-methods">
-<h2><a class="toc-backref" href="#id5">HTML Element Methods</a><a class="headerlink" href="#html-element-methods" title="Permalink to this headline">¶</a></h2>
-<p>HTML elements have all the methods that come with ElementTree, but
-also include some extra methods:</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">.drop_tree()</span></tt>:</dt>
-<dd>Drops the element and all its children.  Unlike
-<tt class="docutils literal"><span class="pre">el.getparent().remove(el)</span></tt> this does <em>not</em> remove the tail
-text; with <tt class="docutils literal"><span class="pre">drop_tree</span></tt> the tail text is merged with the previous
-element.</dd>
-<dt><tt class="docutils literal"><span class="pre">.drop_tag()</span></tt>:</dt>
-<dd>Drops the tag, but keeps its children and text.</dd>
-<dt><tt class="docutils literal"><span class="pre">.find_class(class_name)</span></tt>:</dt>
-<dd>Returns a list of all the elements with the given CSS class name.
-Note that class names are space separated in HTML, so
-<tt class="docutils literal"><span class="pre">doc.find_class_name('highlight')</span></tt> will find an element like
-<tt class="docutils literal"><span class="pre">&lt;div</span> <span class="pre">class=&quot;sidebar</span> <span class="pre">highlight&quot;&gt;</span></tt>.  Class names <em>are</em> case
-sensitive.</dd>
-<dt><tt class="docutils literal"><span class="pre">.find_rel_links(rel)</span></tt>:</dt>
-<dd>Returns a list of all the <tt class="docutils literal"><span class="pre">&lt;a</span> <span class="pre">rel=&quot;{rel}&quot;&gt;</span></tt> elements.  E.g.,
-<tt class="docutils literal"><span class="pre">doc.find_rel_links('tag')</span></tt> returns all the links <a class="reference external" href="http://microformats.org/wiki/rel-tag">marked as
-tags</a>.</dd>
-<dt><tt class="docutils literal"><span class="pre">.get_element_by_id(id,</span> <span class="pre">default=None)</span></tt>:</dt>
-<dd>Return the element with the given <tt class="docutils literal"><span class="pre">id</span></tt>, or the <tt class="docutils literal"><span class="pre">default</span></tt> if
-none is found.  If there are multiple elements with the same id
-(which there shouldn&#8217;t be, but there often is), this returns only
-the first.</dd>
-<dt><tt class="docutils literal"><span class="pre">.text_content()</span></tt>:</dt>
-<dd>Returns the text content of the element, including the text
-content of its children, with no markup.</dd>
-<dt><tt class="docutils literal"><span class="pre">.cssselect(expr)</span></tt>:</dt>
-<dd>Select elements from this element and its children, using a CSS
-selector expression.  (Note that <tt class="docutils literal"><span class="pre">.xpath(expr)</span></tt> is also
-available as on all lxml elements.)</dd>
-<dt><tt class="docutils literal"><span class="pre">.label</span></tt>:</dt>
-<dd>Returns the corresponding <tt class="docutils literal"><span class="pre">&lt;label&gt;</span></tt> element for this element, if
-any exists (None if there is none).  Label elements have a
-<tt class="docutils literal"><span class="pre">label.for_element</span></tt> attribute that points back to the element.</dd>
-<dt><tt class="docutils literal"><span class="pre">.base_url</span></tt>:</dt>
-<dd>The base URL for this element, if one was saved from the parsing.
-This attribute is not settable.  Is None when no base URL was
-saved.</dd>
-</dl>
-</div>
-<div class="section" id="running-html-doctests">
-<h2><a class="toc-backref" href="#id6">Running HTML doctests</a><a class="headerlink" href="#running-html-doctests" title="Permalink to this headline">¶</a></h2>
-<p>One of the interesting modules in the <tt class="docutils literal"><span class="pre">lxml.html</span></tt> package deals with
-doctests.  It can be hard to compare two HTML pages for equality, as
-whitespace differences aren&#8217;t meaningful and the structural formatting
-can differ.  This is even more a problem in doctests, where output is
-tested for equality and small differences in whitespace or the order
-of attributes can let a test fail.  And given the verbosity of
-tag-based languages, it may take more than a quick look to find the
-actual differences in the doctest output.</p>
-<p>Luckily, lxml provides the <tt class="docutils literal"><span class="pre">lxml.doctestcompare</span></tt> module that
-supports relaxed comparison of XML and HTML pages and provides a
-readable diff in the output when a test fails.  The HTML comparison is
-most easily used by importing the <tt class="docutils literal"><span class="pre">usedoctest</span></tt> module in a doctest:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html.usedoctest</span>
-</pre></div>
-</div>
-<p>Now, if you have a HTML document and want to compare it to an expected result
-document in a doctest, you can do the following:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;html&gt;&lt;body onload=&quot;&quot; color=&quot;white&quot;&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;p&gt;Hi  !&lt;/p&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/body&gt;&lt;/html&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt;&lt;body onload=&quot;&quot; color=&quot;white&quot;&gt;&lt;p&gt;Hi !&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt; &lt;body color=&quot;white&quot; onload=&quot;&quot;&gt; &lt;p&gt;Hi    !&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;body color=&quot;white&quot; onload=&quot;&quot;&gt;</span>
-<span class="go">    &lt;p&gt;Hi !&lt;/p&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>In documentation, you would likely prefer the pretty printed HTML output, as
-it is the most readable.  However, the three documents are equivalent from the
-point of view of an HTML tool, so the doctest will silently accept any of the
-above.  This allows you to concentrate on readability in your doctests, even
-if the real output is a straight ugly HTML one-liner.</p>
-<p>Note that there is also an <tt class="docutils literal"><span class="pre">lxml.usedoctest</span></tt> module which you can
-import for XML comparisons.  The HTML parser notably ignores
-namespaces and some other XMLisms.</p>
-</div>
-<div class="section" id="creating-html-with-the-e-factory">
-<h2><a class="toc-backref" href="#id7">Creating HTML with the E-factory</a><a class="headerlink" href="#creating-html-with-the-e-factory" title="Permalink to this headline">¶</a></h2>
-<p>lxml.html comes with a predefined HTML vocabulary for the <a class="reference external" href="http://online.effbot.org/2006_11_01_archive.htm#et-builder">E-factory</a>,
-originally written by Fredrik Lundh.  This allows you to quickly generate HTML
-pages and fragments:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">builder</span> <span class="k">as</span> <span class="n">E</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">usedoctest</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">HTML</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">HEAD</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">LINK</span><span class="p">(</span><span class="n">rel</span><span class="o">=</span><span class="s">&quot;stylesheet&quot;</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s">&quot;great.css&quot;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">&quot;text/css&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">TITLE</span><span class="p">(</span><span class="s">&quot;Best Page Ever&quot;</span><span class="p">)</span>
-<span class="gp">... </span>  <span class="p">),</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">BODY</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">H1</span><span class="p">(</span><span class="n">E</span><span class="o">.</span><span class="n">CLASS</span><span class="p">(</span><span class="s">&quot;heading&quot;</span><span class="p">),</span> <span class="s">&quot;Top News&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">P</span><span class="p">(</span><span class="s">&quot;World News only on this page&quot;</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">&quot;font-size: 200%&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="s">&quot;Ah, and here&#39;s some more text, by the way.&quot;</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;p&gt;... and this is a parsed fragment ...&lt;/p&gt;&quot;</span><span class="p">)</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">lxml</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">    &lt;link href=&quot;great.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&gt;</span>
-<span class="go">    &lt;title&gt;Best Page Ever&lt;/title&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;h1 class=&quot;heading&quot;&gt;Top News&lt;/h1&gt;</span>
-<span class="go">    &lt;p style=&quot;font-size: 200%&quot;&gt;World News only on this page&lt;/p&gt;</span>
-<span class="go">    Ah, and here&#39;s some more text, by the way.</span>
-<span class="go">    &lt;p&gt;... and this is a parsed fragment ...&lt;/p&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>Note that you should use <tt class="docutils literal"><span class="pre">lxml.html.tostring</span></tt> and <strong>not</strong>
-<tt class="docutils literal"><span class="pre">lxml.tostring</span></tt>.  <tt class="docutils literal"><span class="pre">lxml.tostring(doc)</span></tt> will return the XML
-representation of the document, which is not valid HTML.  In
-particular, things like <tt class="docutils literal"><span class="pre">&lt;script</span> <span class="pre">src=&quot;...&quot;&gt;&lt;/script&gt;</span></tt> will be
-serialized as <tt class="docutils literal"><span class="pre">&lt;script</span> <span class="pre">src=&quot;...&quot;</span> <span class="pre">/&gt;</span></tt>, which completely confuses
-browsers.</p>
-<div class="section" id="viewing-your-html">
-<h3><a class="toc-backref" href="#id8">Viewing your HTML</a><a class="headerlink" href="#viewing-your-html" title="Permalink to this headline">¶</a></h3>
-<p>A handy method for viewing your HTML:
-<tt class="docutils literal"><span class="pre">lxml.html.open_in_browser(lxml_doc)</span></tt> will write the document to
-disk and open it in a browser (with the <a class="reference external" href="http://python.org/doc/current/lib/module-webbrowser.html">webbrowser module</a>).</p>
-</div>
-</div>
-<div class="section" id="working-with-links">
-<h2><a class="toc-backref" href="#id9">Working with links</a><a class="headerlink" href="#working-with-links" title="Permalink to this headline">¶</a></h2>
-<p>There are several methods on elements that allow you to see and modify
-the links in a document.</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">.iterlinks()</span></tt>:</dt>
-<dd><p class="first">This yields <tt class="docutils literal"><span class="pre">(element,</span> <span class="pre">attribute,</span> <span class="pre">link,</span> <span class="pre">pos)</span></tt> for every link in
-the document.  <tt class="docutils literal"><span class="pre">attribute</span></tt> may be None if the link is in the
-text (as will be the case with a <tt class="docutils literal"><span class="pre">&lt;style&gt;</span></tt> tag with
-<tt class="docutils literal"><span class="pre">&#64;import</span></tt>).</p>
-<p>This finds any link in an <tt class="docutils literal"><span class="pre">action</span></tt>, <tt class="docutils literal"><span class="pre">archive</span></tt>, <tt class="docutils literal"><span class="pre">background</span></tt>,
-<tt class="docutils literal"><span class="pre">cite</span></tt>, <tt class="docutils literal"><span class="pre">classid</span></tt>, <tt class="docutils literal"><span class="pre">codebase</span></tt>, <tt class="docutils literal"><span class="pre">data</span></tt>, <tt class="docutils literal"><span class="pre">href</span></tt>,
-<tt class="docutils literal"><span class="pre">longdesc</span></tt>, <tt class="docutils literal"><span class="pre">profile</span></tt>, <tt class="docutils literal"><span class="pre">src</span></tt>, <tt class="docutils literal"><span class="pre">usemap</span></tt>, <tt class="docutils literal"><span class="pre">dynsrc</span></tt>, or
-<tt class="docutils literal"><span class="pre">lowsrc</span></tt> attribute.  It also searches <tt class="docutils literal"><span class="pre">style</span></tt> attributes for
-<tt class="docutils literal"><span class="pre">url(link)</span></tt>, and <tt class="docutils literal"><span class="pre">&lt;style&gt;</span></tt> tags for <tt class="docutils literal"><span class="pre">&#64;import</span></tt> and <tt class="docutils literal"><span class="pre">url()</span></tt>.</p>
-<p class="last">This function does <em>not</em> pay attention to <tt class="docutils literal"><span class="pre">&lt;base</span> <span class="pre">href&gt;</span></tt>.</p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">.resolve_base_href()</span></tt>:</dt>
-<dd>This function will modify the document in-place to take account of
-<tt class="docutils literal"><span class="pre">&lt;base</span> <span class="pre">href&gt;</span></tt> if the document contains that tag.  In the process
-it will also remove that tag from the document.</dd>
-<dt><tt class="docutils literal"><span class="pre">.make_links_absolute(base_href,</span> <span class="pre">resolve_base_href=True)</span></tt>:</dt>
-<dd><p class="first">This makes all links in the document absolute, assuming that
-<tt class="docutils literal"><span class="pre">base_href</span></tt> is the URL of the document.  So if you pass
-<tt class="docutils literal"><span class="pre">base_href=&quot;http://localhost/foo/bar.html&quot;</span></tt> and there is a link
-to <tt class="docutils literal"><span class="pre">baz.html</span></tt> that will be rewritten as
-<tt class="docutils literal"><span class="pre">http://localhost/foo/baz.html</span></tt>.</p>
-<p class="last">If <tt class="docutils literal"><span class="pre">resolve_base_href</span></tt> is true, then any <tt class="docutils literal"><span class="pre">&lt;base</span> <span class="pre">href&gt;</span></tt> tag
-will be taken into account (just calling
-<tt class="docutils literal"><span class="pre">self.resolve_base_href()</span></tt>).</p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">.rewrite_links(link_repl_func,</span> <span class="pre">resolve_base_href=True,</span> <span class="pre">base_href=None)</span></tt>:</dt>
-<dd><p class="first">This rewrites all the links in the document using your given link
-replacement function.  If you give a <tt class="docutils literal"><span class="pre">base_href</span></tt> value, all
-links will be passed in after they are joined with this URL.</p>
-<p>For each link <tt class="docutils literal"><span class="pre">link_repl_func(link)</span></tt> is called.  That function
-then returns the new link, or None to remove the attribute or tag
-that contains the link.  Note that all links will be passed in,
-including links like <tt class="docutils literal"><span class="pre">&quot;#anchor&quot;</span></tt> (which is purely internal), and
-things like <tt class="docutils literal"><span class="pre">&quot;mailto:bob&#64;example.com&quot;</span></tt> (or <tt class="docutils literal"><span class="pre">javascript:...</span></tt>).</p>
-<p class="last">If you want access to the context of the link, you should use
-<tt class="docutils literal"><span class="pre">.iterlinks()</span></tt> instead.</p>
-</dd>
-</dl>
-<div class="section" id="functions">
-<h3><a class="toc-backref" href="#id10">Functions</a><a class="headerlink" href="#functions" title="Permalink to this headline">¶</a></h3>
-<p>In addition to these methods, there are corresponding functions:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">iterlinks(html)</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">make_links_absolute(html,</span> <span class="pre">base_href,</span> <span class="pre">...)</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">rewrite_links(html,</span> <span class="pre">link_repl_func,</span> <span class="pre">...)</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">resolve_base_href(html)</span></tt></li>
-</ul>
-<p>These functions will parse <tt class="docutils literal"><span class="pre">html</span></tt> if it is a string, then return the new
-HTML as a string.  If you pass in a document, the document will be copied
-(except for <tt class="docutils literal"><span class="pre">iterlinks()</span></tt>), the method performed, and the new document
-returned.</p>
-</div>
-</div>
-<div class="section" id="forms">
-<h2><a class="toc-backref" href="#id11">Forms</a><a class="headerlink" href="#forms" title="Permalink to this headline">¶</a></h2>
-<p>Any <tt class="docutils literal"><span class="pre">&lt;form&gt;</span></tt> elements in a document are available through
-the list <tt class="docutils literal"><span class="pre">doc.forms</span></tt> (e.g., <tt class="docutils literal"><span class="pre">doc.forms[0]</span></tt>).  Form, input, select,
-and textarea elements each have special methods.</p>
-<p>Input elements (including <tt class="docutils literal"><span class="pre">&lt;select&gt;</span></tt> and <tt class="docutils literal"><span class="pre">&lt;textarea&gt;</span></tt>) have these
-attributes:</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">.name</span></tt>:</dt>
-<dd>The name of the element.</dd>
-<dt><tt class="docutils literal"><span class="pre">.value</span></tt>:</dt>
-<dd><p class="first">The value of an input, the content of a textarea, the selected
-option(s) of a select.  This attribute can be set.</p>
-<p class="last">In the case of a select that takes multiple options (<tt class="docutils literal"><span class="pre">&lt;select</span>
-<span class="pre">multiple&gt;</span></tt>) this will be a set of the selected options; you can
-add or remove items to select and unselect the options.</p>
-</dd>
-</dl>
-<p>Select attributes:</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">.value_options</span></tt>:</dt>
-<dd>For select elements, this is all the <em>possible</em> values (the values
-of all the options).</dd>
-<dt><tt class="docutils literal"><span class="pre">.multiple</span></tt>:</dt>
-<dd>For select elements, true if this is a <tt class="docutils literal"><span class="pre">&lt;select</span> <span class="pre">multiple&gt;</span></tt>
-element.</dd>
-</dl>
-<p>Input attributes:</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">.type</span></tt>:</dt>
-<dd>The type attribute in <tt class="docutils literal"><span class="pre">&lt;input&gt;</span></tt> elements.</dd>
-<dt><tt class="docutils literal"><span class="pre">.checkable</span></tt>:</dt>
-<dd>True if this can be checked (i.e., true for type=radio and
-type=checkbox).</dd>
-<dt><tt class="docutils literal"><span class="pre">.checked</span></tt>:</dt>
-<dd>If this element is checkable, the checked state.  Raises
-AttributeError on non-checkable inputs.</dd>
-</dl>
-<p>The form itself has these attributes:</p>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">.inputs</span></tt>:</dt>
-<dd>A dictionary-like object that can be used to access input elements
-by name.  When there are multiple input elements with the same
-name, this returns list-like structures that can also be used to
-access the options and their values as a group.</dd>
-<dt><tt class="docutils literal"><span class="pre">.fields</span></tt>:</dt>
-<dd><p class="first">A dictionary-like object used to access <em>values</em> by their name.
-<tt class="docutils literal"><span class="pre">form.inputs</span></tt> returns elements, this only returns values.
-Setting values in this dictionary will effect the form inputs.
-Basically <tt class="docutils literal"><span class="pre">form.fields[x]</span></tt> is equivalent to
-<tt class="docutils literal"><span class="pre">form.inputs[x].value</span></tt> and <tt class="docutils literal"><span class="pre">form.fields[x]</span> <span class="pre">=</span> <span class="pre">y</span></tt> is equivalent
-to <tt class="docutils literal"><span class="pre">form.inputs[x].value</span> <span class="pre">=</span> <span class="pre">y</span></tt>.  (Note that sometimes
-<tt class="docutils literal"><span class="pre">form.inputs[x]</span></tt> returns a compound object, but these objects
-also have <tt class="docutils literal"><span class="pre">.value</span></tt> attributes.)</p>
-<p class="last">If you set this attribute, it is equivalent to
-<tt class="docutils literal"><span class="pre">form.fields.clear();</span> <span class="pre">form.fields.update(new_value)</span></tt></p>
-</dd>
-<dt><tt class="docutils literal"><span class="pre">.form_values()</span></tt>:</dt>
-<dd>Returns a list of <tt class="docutils literal"><span class="pre">[(name,</span> <span class="pre">value),</span> <span class="pre">...]</span></tt>, suitable to be passed
-to <tt class="docutils literal"><span class="pre">urllib.urlencode()</span></tt> for form submission.</dd>
-<dt><tt class="docutils literal"><span class="pre">.action</span></tt>:</dt>
-<dd>The <tt class="docutils literal"><span class="pre">action</span></tt> attribute.  This is resolved to an absolute URL if
-possible.</dd>
-<dt><tt class="docutils literal"><span class="pre">.method</span></tt>:</dt>
-<dd>The <tt class="docutils literal"><span class="pre">method</span></tt> attribute, which defaults to <tt class="docutils literal"><span class="pre">GET</span></tt>.</dd>
-</dl>
-<div class="section" id="form-filling-example">
-<h3><a class="toc-backref" href="#id12">Form Filling Example</a><a class="headerlink" href="#form-filling-example" title="Permalink to this headline">¶</a></h3>
-<p>Note that you can change any of these attributes (values, method,
-action, etc) and then serialize the form to see the updated values.
-You can, for instance, do:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">fromstring</span><span class="p">,</span> <span class="n">tostring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">form_page</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;&lt;html&gt;&lt;body&gt;&lt;form&gt;</span>
-<span class="gp">... </span><span class="s">  Your name: &lt;input type=&quot;text&quot; name=&quot;name&quot;&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Your phone: &lt;input type=&quot;text&quot; name=&quot;phone&quot;&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Your favorite pets: &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Dogs: &lt;input type=&quot;checkbox&quot; name=&quot;interest&quot; value=&quot;dogs&quot;&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Cats: &lt;input type=&quot;checkbox&quot; name=&quot;interest&quot; value=&quot;cats&quot;&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  Llamas: &lt;input type=&quot;checkbox&quot; name=&quot;interest&quot; value=&quot;llamas&quot;&gt; &lt;br&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;input type=&quot;submit&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">form</span> <span class="o">=</span> <span class="n">form_page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">form</span><span class="o">.</span><span class="n">fields</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">name</span><span class="o">=</span><span class="s">&#39;John Smith&#39;</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">phone</span><span class="o">=</span><span class="s">&#39;555-555-3949&#39;</span><span class="p">,</span>
-<span class="gp">... </span>    <span class="n">interest</span><span class="o">=</span><span class="nb">set</span><span class="p">([</span><span class="s">&#39;cats&#39;</span><span class="p">,</span> <span class="s">&#39;llamas&#39;</span><span class="p">]))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">tostring</span><span class="p">(</span><span class="n">form</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;form&gt;</span>
-<span class="go">    Your name:</span>
-<span class="go">      &lt;input name=&quot;name&quot; type=&quot;text&quot; value=&quot;John Smith&quot;&gt;</span>
-<span class="go">      &lt;br&gt;Your phone:</span>
-<span class="go">      &lt;input name=&quot;phone&quot; type=&quot;text&quot; value=&quot;555-555-3949&quot;&gt;</span>
-<span class="go">      &lt;br&gt;Your favorite pets:</span>
-<span class="go">      &lt;br&gt;Dogs:</span>
-<span class="go">      &lt;input name=&quot;interest&quot; type=&quot;checkbox&quot; value=&quot;dogs&quot;&gt;</span>
-<span class="go">      &lt;br&gt;Cats:</span>
-<span class="go">      &lt;input checked name=&quot;interest&quot; type=&quot;checkbox&quot; value=&quot;cats&quot;&gt;</span>
-<span class="go">      &lt;br&gt;Llamas:</span>
-<span class="go">      &lt;input checked name=&quot;interest&quot; type=&quot;checkbox&quot; value=&quot;llamas&quot;&gt;</span>
-<span class="go">      &lt;br&gt;</span>
-<span class="go">      &lt;input type=&quot;submit&quot;&gt;</span>
-<span class="go">    &lt;/form&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="form-submission">
-<h3><a class="toc-backref" href="#id13">Form Submission</a><a class="headerlink" href="#form-submission" title="Permalink to this headline">¶</a></h3>
-<p>You can submit a form with <tt class="docutils literal"><span class="pre">lxml.html.submit_form(form_element)</span></tt>.
-This will return a file-like object (the result of
-<tt class="docutils literal"><span class="pre">urllib.urlopen()</span></tt>).</p>
-<p>If you have extra input values you want to pass you can use the
-keyword argument <tt class="docutils literal"><span class="pre">extra_values</span></tt>, like <tt class="docutils literal"><span class="pre">extra_values={'submit':</span>
-<span class="pre">'Yes!'}</span></tt>.  This is the only way to get submit values into the form,
-as there is no state of &#8220;submitted&#8221; for these elements.</p>
-<p>You can pass in an alternate opener with the <tt class="docutils literal"><span class="pre">open_http</span></tt> keyword
-argument, which is a function with the signature <tt class="docutils literal"><span class="pre">open_http(method,</span>
-<span class="pre">url,</span> <span class="pre">values)</span></tt>.</p>
-<p>Example:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">parse</span><span class="p">,</span> <span class="n">submit_form</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">page</span> <span class="o">=</span> <span class="n">parse</span><span class="p">(</span><span class="s">&#39;http://tinyurl.com&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">fields</span><span class="p">[</span><span class="s">&#39;url&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;http://codespeak.net/lxml/&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">parse</span><span class="p">(</span><span class="n">submit_form</span><span class="p">(</span><span class="n">page</span><span class="o">.</span><span class="n">forms</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">a</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s">&#39;href&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//a[@target=&#39;_blank&#39;]&quot;</span><span class="p">)]</span>
-<span class="go">[&#39;http://tinyurl.com/2xae8s&#39;, &#39;http://preview.tinyurl.com/2xae8s&#39;]</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="cleaning-up-html">
-<h2><a class="toc-backref" href="#id14">Cleaning up HTML</a><a class="headerlink" href="#cleaning-up-html" title="Permalink to this headline">¶</a></h2>
-<p>The module <tt class="docutils literal"><span class="pre">lxml.html.clean</span></tt> provides a <tt class="docutils literal"><span class="pre">Cleaner</span></tt> class for cleaning up
-HTML pages.  It supports removing embedded or script content, special tags,
-CSS style annotations and much more.</p>
-<p>Say, you have an evil web page from an untrusted source that contains lots of
-content that upsets browsers and tries to run evil code on the client side:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;html&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;head&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;script type=&quot;text/javascript&quot; src=&quot;evil-site&quot;&gt;&lt;/script&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;link rel=&quot;alternate&quot; type=&quot;text/rss&quot; src=&quot;evil-rss&quot;&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;style&gt;</span>
-<span class="gp">... </span><span class="s">     body {background-image: url(javascript:do_evil)};</span>
-<span class="gp">... </span><span class="s">     div {color: expression(evil)};</span>
-<span class="gp">... </span><span class="s">   &lt;/style&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;/head&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;body onload=&quot;evil_function()&quot;&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;!-- I am interpreted for EVIL! --&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;a href=&quot;javascript:evil_function()&quot;&gt;a link&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;a href=&quot;#&quot; onclick=&quot;evil_function()&quot;&gt;another link&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;p onclick=&quot;evil_function()&quot;&gt;a paragraph&lt;/p&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;div style=&quot;display: none&quot;&gt;secret EVIL!&lt;/div&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;object&gt; of EVIL! &lt;/object&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;iframe src=&quot;evil-site&quot;&gt;&lt;/iframe&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;form action=&quot;evil-site&quot;&gt;</span>
-<span class="gp">... </span><span class="s">     Password: &lt;input type=&quot;password&quot; name=&quot;password&quot;&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/form&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;blink&gt;annoying EVIL!&lt;/blink&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;a href=&quot;evil-site&quot;&gt;spam spam SPAM!&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;image src=&quot;evil!&quot;&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;/body&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/html&gt;&#39;&#39;&#39;</span>
-</pre></div>
-</div>
-<p>To remove the all suspicious content from this unparsed document, use the
-<tt class="docutils literal"><span class="pre">clean_html</span></tt> function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html.clean</span> <span class="kn">import</span> <span class="n">clean_html</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">clean_html</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;div&gt;</span>
-<span class="go">      &lt;style&gt;/* deleted */&lt;/style&gt;</span>
-<span class="go">      &lt;a href=&quot;&quot;&gt;a link&lt;/a&gt;</span>
-<span class="go">      &lt;a href=&quot;#&quot;&gt;another link&lt;/a&gt;</span>
-<span class="go">      &lt;p&gt;a paragraph&lt;/p&gt;</span>
-<span class="go">      &lt;div&gt;secret EVIL!&lt;/div&gt;</span>
-<span class="go">      of EVIL!</span>
-<span class="go">      Password:</span>
-<span class="go">      annoying EVIL!</span>
-<span class="go">      &lt;a href=&quot;evil-site&quot;&gt;spam spam SPAM!&lt;/a&gt;</span>
-<span class="go">      &lt;img src=&quot;evil!&quot;&gt;</span>
-<span class="go">    &lt;/div&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>The <tt class="docutils literal"><span class="pre">Cleaner</span></tt> class supports several keyword arguments to control exactly
-which content is removed:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html.clean</span> <span class="kn">import</span> <span class="n">Cleaner</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">cleaner</span> <span class="o">=</span> <span class="n">Cleaner</span><span class="p">(</span><span class="n">page_structure</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">links</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">cleaner</span><span class="o">.</span><span class="n">clean_html</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">    &lt;link rel=&quot;alternate&quot; src=&quot;evil-rss&quot; type=&quot;text/rss&quot;&gt;</span>
-<span class="go">    &lt;style&gt;/* deleted */&lt;/style&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;a href=&quot;&quot;&gt;a link&lt;/a&gt;</span>
-<span class="go">    &lt;a href=&quot;#&quot;&gt;another link&lt;/a&gt;</span>
-<span class="go">    &lt;p&gt;a paragraph&lt;/p&gt;</span>
-<span class="go">    &lt;div&gt;secret EVIL!&lt;/div&gt;</span>
-<span class="go">    of EVIL!</span>
-<span class="go">    Password:</span>
-<span class="go">    annoying EVIL!</span>
-<span class="go">    &lt;a href=&quot;evil-site&quot;&gt;spam spam SPAM!&lt;/a&gt;</span>
-<span class="go">    &lt;img src=&quot;evil!&quot;&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">cleaner</span> <span class="o">=</span> <span class="n">Cleaner</span><span class="p">(</span><span class="n">style</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">links</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">add_nofollow</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
-<span class="gp">... </span>                  <span class="n">page_structure</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">safe_attrs_only</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">cleaner</span><span class="o">.</span><span class="n">clean_html</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;a href=&quot;&quot;&gt;a link&lt;/a&gt;</span>
-<span class="go">    &lt;a href=&quot;#&quot;&gt;another link&lt;/a&gt;</span>
-<span class="go">    &lt;p&gt;a paragraph&lt;/p&gt;</span>
-<span class="go">    &lt;div&gt;secret EVIL!&lt;/div&gt;</span>
-<span class="go">    of EVIL!</span>
-<span class="go">    Password:</span>
-<span class="go">    annoying EVIL!</span>
-<span class="go">    &lt;a href=&quot;evil-site&quot; rel=&quot;nofollow&quot;&gt;spam spam SPAM!&lt;/a&gt;</span>
-<span class="go">    &lt;img src=&quot;evil!&quot;&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>You can also whitelist some otherwise dangerous content with
-<tt class="docutils literal"><span class="pre">Cleaner(host_whitelist=['www.youtube.com'])</span></tt>, which would allow
-embedded media from YouTube, while still filtering out embedded media
-from other sites.</p>
-<p>See the docstring of <tt class="docutils literal"><span class="pre">Cleaner</span></tt> for the details of what can be
-cleaned.</p>
-<div class="section" id="autolink">
-<h3><a class="toc-backref" href="#id15">autolink</a><a class="headerlink" href="#autolink" title="Permalink to this headline">¶</a></h3>
-<p>In addition to cleaning up malicious HTML, <tt class="docutils literal"><span class="pre">lxml.html.clean</span></tt>
-contains functions to do other things to your HTML.  This includes
-autolinking:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">autolink</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
-
-<span class="n">autolink_html</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This finds anything that looks like a link (e.g.,
-<tt class="docutils literal"><span class="pre">http://example.com</span></tt>) in the <em>text</em> of an HTML document, and
-turns it into an anchor.  It avoids making bad links.</p>
-<p>Links in the elements <tt class="docutils literal"><span class="pre">&lt;textarea&gt;</span></tt>, <tt class="docutils literal"><span class="pre">&lt;pre&gt;</span></tt>, <tt class="docutils literal"><span class="pre">&lt;code&gt;</span></tt>,
-anything in the head of the document.  You can pass in a list of
-elements to avoid in <tt class="docutils literal"><span class="pre">avoid_elements=['textarea',</span> <span class="pre">...]</span></tt>.</p>
-<p>Links to some hosts can be avoided.  By default links to
-<tt class="docutils literal"><span class="pre">localhost*</span></tt>, <tt class="docutils literal"><span class="pre">example.*</span></tt> and <tt class="docutils literal"><span class="pre">127.0.0.1</span></tt> are not
-autolinked.  Pass in <tt class="docutils literal"><span class="pre">avoid_hosts=[list_of_regexes]</span></tt> to control
-this.</p>
-<p>Elements with the <tt class="docutils literal"><span class="pre">nolink</span></tt> CSS class are not autolinked.  Pass
-in <tt class="docutils literal"><span class="pre">avoid_classes=['code',</span> <span class="pre">...]</span></tt> to control this.</p>
-<p>The <tt class="docutils literal"><span class="pre">autolink_html()</span></tt> version of the function parses the HTML
-string first, and returns a string.</p>
-</div>
-<div class="section" id="wordwrap">
-<h3><a class="toc-backref" href="#id16">wordwrap</a><a class="headerlink" href="#wordwrap" title="Permalink to this headline">¶</a></h3>
-<p>You can also wrap long words in your html:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">word_break</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">max_width</span><span class="o">=</span><span class="mi">40</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
-
-<span class="n">word_break_html</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This finds any long words in the text of the document and inserts
-<tt class="docutils literal"><span class="pre">&amp;#8203;</span></tt> in the document (which is the Unicode zero-width space).</p>
-<p>This avoids the elements <tt class="docutils literal"><span class="pre">&lt;pre&gt;</span></tt>, <tt class="docutils literal"><span class="pre">&lt;textarea&gt;</span></tt>, and <tt class="docutils literal"><span class="pre">&lt;code&gt;</span></tt>.
-You can control this with <tt class="docutils literal"><span class="pre">avoid_elements=['textarea',</span> <span class="pre">...]</span></tt>.</p>
-<p>It also avoids elements with the CSS class <tt class="docutils literal"><span class="pre">nobreak</span></tt>.  You can
-control this with <tt class="docutils literal"><span class="pre">avoid_classes=['code',</span> <span class="pre">...]</span></tt>.</p>
-<p>Lastly you can control the character that is inserted with
-<tt class="docutils literal"><span class="pre">break_character=u'\u200b'</span></tt>.  However, you cannot insert markup,
-only text.</p>
-<p><tt class="docutils literal"><span class="pre">word_break_html(html)</span></tt> parses the HTML document and returns a
-string.</p>
-</div>
-</div>
-<div class="section" id="html-diff">
-<h2><a class="toc-backref" href="#id17">HTML Diff</a><a class="headerlink" href="#html-diff" title="Permalink to this headline">¶</a></h2>
-<p>The module <tt class="docutils literal"><span class="pre">lxml.html.diff</span></tt> offers some ways to visualize
-differences in HTML documents.  These differences are <em>content</em>
-oriented.  That is, changes in markup are largely ignored; only
-changes in the content itself are highlighted.</p>
-<p>There are two ways to view differences: <tt class="docutils literal"><span class="pre">htmldiff</span></tt> and
-<tt class="docutils literal"><span class="pre">html_annotate</span></tt>.  One shows differences with <tt class="docutils literal"><span class="pre">&lt;ins&gt;</span></tt> and
-<tt class="docutils literal"><span class="pre">&lt;del&gt;</span></tt>, while the other annotates a set of changes similar to <tt class="docutils literal"><span class="pre">svn</span>
-<span class="pre">blame</span></tt>.  Both these functions operate on text, and work best with
-content fragments (only what goes in <tt class="docutils literal"><span class="pre">&lt;body&gt;</span></tt>), not complete
-documents.</p>
-<p>Example of <tt class="docutils literal"><span class="pre">htmldiff</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html.diff</span> <span class="kn">import</span> <span class="n">htmldiff</span><span class="p">,</span> <span class="n">html_annotate</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc1</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;&lt;p&gt;Here is some text.&lt;/p&gt;&#39;&#39;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;&lt;p&gt;Here is &lt;b&gt;a lot&lt;/b&gt; of &lt;i&gt;text&lt;/i&gt;.&lt;/p&gt;&#39;&#39;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc3</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;&lt;p&gt;Here is &lt;b&gt;a little&lt;/b&gt; &lt;i&gt;text&lt;/i&gt;.&lt;/p&gt;&#39;&#39;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">htmldiff</span><span class="p">(</span><span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">)</span>
-<span class="go">&lt;p&gt;Here is &lt;ins&gt;&lt;b&gt;a lot&lt;/b&gt; of &lt;i&gt;text&lt;/i&gt;.&lt;/ins&gt; &lt;del&gt;some text.&lt;/del&gt; &lt;/p&gt;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">html_annotate</span><span class="p">([(</span><span class="n">doc1</span><span class="p">,</span> <span class="s">&#39;author1&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">doc2</span><span class="p">,</span> <span class="s">&#39;author2&#39;</span><span class="p">),</span>
-<span class="gp">... </span>                     <span class="p">(</span><span class="n">doc3</span><span class="p">,</span> <span class="s">&#39;author3&#39;</span><span class="p">)])</span>
-<span class="go">&lt;p&gt;&lt;span title=&quot;author1&quot;&gt;Here is&lt;/span&gt;</span>
-<span class="go">   &lt;b&gt;&lt;span title=&quot;author2&quot;&gt;a&lt;/span&gt;</span>
-<span class="go">   &lt;span title=&quot;author3&quot;&gt;little&lt;/span&gt;&lt;/b&gt;</span>
-<span class="go">   &lt;i&gt;&lt;span title=&quot;author2&quot;&gt;text&lt;/span&gt;&lt;/i&gt;</span>
-<span class="go">   &lt;span title=&quot;author2&quot;&gt;.&lt;/span&gt;&lt;/p&gt;</span>
-</pre></div>
-</div>
-<p>As you can see, it is imperfect as such things tend to be.  On larger
-tracts of text with larger edits it will generally do better.</p>
-<p>The <tt class="docutils literal"><span class="pre">html_annotate</span></tt> function can also take an optional second
-argument, <tt class="docutils literal"><span class="pre">markup</span></tt>.  This is a function like <tt class="docutils literal"><span class="pre">markup(text,</span>
-<span class="pre">version)</span></tt> that returns the given text marked up with the given
-version.  The default version, the output of which you see in the
-example, looks like:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">default_markup</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">version</span><span class="p">):</span>
-    <span class="k">return</span> <span class="s">&#39;&lt;span title=&quot;</span><span class="si">%s</span><span class="s">&quot;&gt;</span><span class="si">%s</span><span class="s">&lt;/span&gt;&#39;</span> <span class="o">%</span> <span class="p">(</span>
-        <span class="n">cgi</span><span class="o">.</span><span class="n">escape</span><span class="p">(</span><span class="nb">unicode</span><span class="p">(</span><span class="n">version</span><span class="p">),</span> <span class="mi">1</span><span class="p">),</span> <span class="n">text</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="examples">
-<h2><a class="toc-backref" href="#id18">Examples</a><a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="microformat-example">
-<h3><a class="toc-backref" href="#id19">Microformat Example</a><a class="headerlink" href="#microformat-example" title="Permalink to this headline">¶</a></h3>
-<p>This example parses the <a class="reference external" href="http://microformats.org/wiki/hcard">hCard</a>
-microformat.</p>
-<p>First we get the page:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">urllib</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">fromstring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">url</span> <span class="o">=</span> <span class="s">&#39;http://microformats.org/&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">content</span> <span class="o">=</span> <span class="n">urllib</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">url</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">fromstring</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">make_links_absolute</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Then we create some objects to put the information in:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">Card</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kw</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">Phone</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">phone</span><span class="p">,</span> <span class="n">types</span><span class="o">=</span><span class="p">()):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">phone</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">types</span> <span class="o">=</span> <span class="n">phone</span><span class="p">,</span> <span class="n">types</span>
-</pre></div>
-</div>
-<p>And some generally handy functions for microformats:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">class_name</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">els</span> <span class="o">=</span> <span class="n">el</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="n">class_name</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">els</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="n">els</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span>
-<span class="gp">... </span>    <span class="k">else</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">&#39;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">get_value</span><span class="p">(</span><span class="n">el</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="n">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">&#39;value&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">el</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">get_all_texts</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">class_name</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">els</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="n">class_name</span><span class="p">)]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">parse_addresses</span><span class="p">(</span><span class="n">el</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="c"># Ideally this would parse street, etc.</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="n">el</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s">&#39;adr&#39;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Then the parsing:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">doc</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s">&#39;hcard&#39;</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">card</span> <span class="o">=</span> <span class="n">Card</span><span class="p">()</span>
-<span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">el</span> <span class="o">=</span> <span class="n">el</span>
-<span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">fn</span> <span class="o">=</span> <span class="n">get_text</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">&#39;fn&#39;</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">tels</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="gp">... </span>    <span class="k">for</span> <span class="n">tel_el</span> <span class="ow">in</span> <span class="n">card</span><span class="o">.</span><span class="n">find_class</span><span class="p">(</span><span class="s">&#39;tel&#39;</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="n">card</span><span class="o">.</span><span class="n">tels</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Phone</span><span class="p">(</span><span class="n">get_value</span><span class="p">(</span><span class="n">tel_el</span><span class="p">),</span>
-<span class="gp">... </span>                               <span class="n">get_all_texts</span><span class="p">(</span><span class="n">tel_el</span><span class="p">,</span> <span class="s">&#39;type&#39;</span><span class="p">)))</span>
-<span class="gp">... </span>    <span class="n">card</span><span class="o">.</span><span class="n">addresses</span> <span class="o">=</span> <span class="n">parse_addresses</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">lxml.html</a><ul>
-<li><a class="reference internal" href="#parsing-html">Parsing HTML</a><ul>
-<li><a class="reference internal" href="#parsing-html-fragments">Parsing HTML fragments</a></li>
-<li><a class="reference internal" href="#really-broken-pages">Really broken pages</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#html-element-methods">HTML Element Methods</a></li>
-<li><a class="reference internal" href="#running-html-doctests">Running HTML doctests</a></li>
-<li><a class="reference internal" href="#creating-html-with-the-e-factory">Creating HTML with the E-factory</a><ul>
-<li><a class="reference internal" href="#viewing-your-html">Viewing your HTML</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#working-with-links">Working with links</a><ul>
-<li><a class="reference internal" href="#functions">Functions</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#forms">Forms</a><ul>
-<li><a class="reference internal" href="#form-filling-example">Form Filling Example</a></li>
-<li><a class="reference internal" href="#form-submission">Form Submission</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#cleaning-up-html">Cleaning up HTML</a><ul>
-<li><a class="reference internal" href="#autolink">autolink</a></li>
-<li><a class="reference internal" href="#wordwrap">wordwrap</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#html-diff">HTML Diff</a></li>
-<li><a class="reference internal" href="#examples">Examples</a><ul>
-<li><a class="reference internal" href="#microformat-example">Microformat Example</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/lxmlhtml.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/main.html b/doc/sphinx/main.html
deleted file mode 100644 (file)
index 1a0a6b5..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <meta content="lxml - the most feature-rich and easy-to-use library for processing XML and HTML in the Python language" name="description" />
-<meta content="Python XML, XML processing, HTML, lxml, simple XML, ElementTree, etree, lxml.etree, objectify, XML parsing, XML validation, XPath, XSLT" name="keywords" />
-
-    <title>lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="#">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="lxml">
-<h1>lxml<a class="headerlink" href="#lxml" title="Permalink to this headline">¶</a></h1>
-<dl class="class">
-<dt id="pagequote">
-<em class="property">class </em><tt class="descname">pagequote</tt><a class="headerlink" href="#pagequote" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<div class="line-block">
-<div class="line"><a class="reference external" href="http://thread.gmane.org/gmane.comp.python.lxml.devel/3252/focus=3258">» lxml takes all the pain out of XML. Â«</a></div>
-<div class="line">Stephan Richter</div>
-</div>
-<dl class="class">
-<dt id="eyecatcher">
-<em class="property">class </em><tt class="descname">eyecatcher</tt><a class="headerlink" href="#eyecatcher" title="Permalink to this definition">¶</a></dt>
-<dd><p>lxml is the most feature-rich
-and easy-to-use library
-for processing XML and HTML
-in the Python language.</p>
-</dd></dl>
-
-<div class="section" id="introduction">
-<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
-<p>The lxml XML toolkit is a Pythonic binding for the C libraries
-<a class="reference external" href="http://xmlsoft.org/">libxml2</a> and <a class="reference external" href="http://xmlsoft.org/XSLT/">libxslt</a>.  It is unique in that it combines the speed and
-XML feature completeness of these libraries with the simplicity of a
-native Python API, mostly compatible but superior to the well-known
-<a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> API.  See the <a class="reference external" href="intro.html">introduction</a> for more information about
-background and goals of the lxml project.  Some common questions are
-answered in the <a class="reference external" href="FAQ.html">FAQ</a>.</p>
-<p>For commercial consulting and customisations, please <a class="reference external" href="http://consulting.behnel.de/">contact Stefan Behnel</a>.</p>
-</div>
-<div class="section" id="documentation">
-<h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2>
-<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-2.3.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">
-<li>Tutorials:<ul>
-<li>the <a class="reference external" href="tutorial.html">lxml.etree tutorial for XML processing</a></li>
-<li>John Shipman&#8217;s tutorial on <a class="reference external" href="http://www.nmt.edu/tcc/help/pubs/pylxml/">Python XML processing with lxml</a></li>
-<li>Fredrik Lundh&#8217;s <a class="reference external" href="http://effbot.org/zone/element.htm">tutorial for ElementTree</a></li>
-</ul>
-</li>
-<li>ElementTree:<ul>
-<li><a class="reference external" href="http://effbot.org/zone/element-index.htm#documentation">ElementTree API</a></li>
-<li><a class="reference external" href="compatibility.html">compatibility</a> and differences of lxml.etree</li>
-<li><a class="reference external" href="performance.html">ElementTree performance</a> characteristics and comparison</li>
-</ul>
-</li>
-<li>lxml.etree:<ul>
-<li><a class="reference external" href="api.html">lxml.etree specific API</a> documentation</li>
-<li>the <a class="reference external" href="api/index.html">generated API documentation</a> as a reference</li>
-<li><a class="reference external" href="parsing.html">parsing</a> and <a class="reference external" href="validation.html">validating</a> XML</li>
-<li><a class="reference external" href="xpathxslt.html">XPath and XSLT</a> support</li>
-<li>Python <a class="reference external" href="extensions.html">XPath extension functions</a> for XPath and XSLT</li>
-<li><a class="reference external" href="element_classes.html">custom XML element classes</a> for custom XML APIs (see <a class="reference external" href="s5/lxml-ep2008.html">EuroPython 2008 talk</a>)</li>
-<li>a <a class="reference external" href="sax.html">SAX compliant API</a> for interfacing with other XML tools</li>
-<li>a <a class="reference external" href="capi.html">C-level API</a> for interfacing with external C/Cython modules</li>
-</ul>
-</li>
-<li>lxml.objectify:<ul>
-<li><a class="reference external" href="objectify.html">lxml.objectify</a> API documentation</li>
-<li>a brief comparison of <a class="reference external" href="FAQ.html#what-is-the-difference-between-lxml-etree-and-lxml-objectify">objectify and etree</a></li>
-</ul>
-</li>
-</ul>
-<p>lxml.etree follows the <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> API as much as possible, building
-it on top of the native libxml2 tree.  If you are new to ElementTree,
-start with the <a class="reference external" href="tutorial.html">lxml.etree tutorial for XML processing</a>.  See also the
-ElementTree <a class="reference external" href="compatibility.html">compatibility</a> overview and the <a class="reference external" href="performance.html">ElementTree performance</a>
-page comparing lxml to the original <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> and <a class="reference external" href="http://effbot.org/zone/celementtree.htm">cElementTree</a>
-implementations.</p>
-<p>Right after the <a class="reference external" href="tutorial.html">lxml.etree tutorial for XML processing</a> and the
-<a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> documentation, the next place to look is the <a class="reference external" href="api.html">lxml.etree
-specific API</a> documentation.  It describes how lxml extends the
-ElementTree API to expose libxml2 and libxslt specific XML
-functionality, such as <a class="reference external" href="http://www.w3.org/TR/xpath/">XPath</a>, <a class="reference external" href="http://www.relaxng.org/">Relax NG</a>, <a class="reference external" href="http://www.w3.org/XML/Schema">XML Schema</a>, <a class="reference external" href="http://www.w3.org/TR/xslt">XSLT</a>, and
-<a class="reference external" href="http://www.w3.org/TR/xml-c14n">c14n</a>.  Python code can be called from XPath expressions and XSLT
-stylesheets through the use of <a class="reference external" href="extensions.html">XPath extension functions</a>.  lxml
-also offers a <a class="reference external" href="sax.html">SAX compliant API</a>, that works with the SAX support in
-the standard library.</p>
-<p>There is a separate module <a class="reference external" href="objectify.html">lxml.objectify</a> that implements a data-binding
-API on top of lxml.etree.  See the <a class="reference external" href="FAQ.html#what-is-the-difference-between-lxml-etree-and-lxml-objectify">objectify and etree</a> FAQ entry for a
-comparison.</p>
-<p>In addition to the ElementTree API, lxml also features a sophisticated
-API for <a class="reference external" href="element_classes.html">custom XML element classes</a>.  This is a simple way to write
-arbitrary XML driven APIs on top of lxml.  lxml.etree also has a
-<a class="reference external" href="capi.html">C-level API</a> that can be used to efficiently extend lxml.etree in
-external C modules, including fast custom element class support.</p>
-</div>
-<div class="section" id="download">
-<h2>Download<a class="headerlink" href="#download" title="Permalink to this headline">¶</a></h2>
-<p>The best way to download lxml is to visit <a class="reference external" href="http://pypi.python.org/pypi/lxml/">lxml at the Python Package
-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>.  Binary builds for
-MS Windows usually become available through PyPI a few days after a
-source release.  If you can&#8217;t wait, consider trying a less recent
-release version first.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-2.3.tgz">lxml 2.3</a>, released 2011-02-06
-(<a class="reference external" href="/changes-2.3.html">changes for 2.3</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>
-<p>This complete web site (including the generated API documentation) is
-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"><span class="pre">doc/html</span></tt> directory out of the source tree.</p>
-<p>It&#8217;s also possible to check out the latest development version of lxml
-from github directly, using a command like this (assuming you use hg
-and have hg-git installed):</p>
-<div class="highlight-python"><pre>hg clone https://github.com/lxml/lxml.git lxml</pre>
-</div>
-<p>You can also browse the <a class="reference external" href="https://github.com/lxml/lxml/">source repository</a> and its history through
-the web.  Please read <a class="reference external" href="build.html">how to build lxml from source</a> first.  The
-<a class="reference external" href="https://github.com/lxml/lxml/blob/master/CHANGES.txt">latest CHANGES</a> of the developer version are also accessible.  You
-can check there if a bug you found has been fixed or a feature you
-want has been implemented in the latest trunk version.</p>
-</div>
-<div class="section" id="mailing-list">
-<h2>Mailing list<a class="headerlink" href="#mailing-list" title="Permalink to this headline">¶</a></h2>
-<p>Questions? Suggestions? Code to contribute? We have a <a class="reference external" href="http://lxml.de/mailinglist/">mailing list</a>.</p>
-<p>You can search the archive with <a class="reference external" href="http://blog.gmane.org/gmane.comp.python.lxml.devel">Gmane</a> or <a class="reference external" href="http://www.google.com/webhp?q=site:comments.gmane.org%2Fgmane.comp.python.lxml.devel+">Google</a>.</p>
-</div>
-<div class="section" id="bug-tracker">
-<h2>Bug tracker<a class="headerlink" href="#bug-tracker" title="Permalink to this headline">¶</a></h2>
-<p>lxml uses the <a class="reference external" href="https://launchpad.net/lxml/">launchpad bug tracker</a>.  If you are sure you found a
-bug in lxml, please file a bug report there.  If you are not sure
-whether some unexpected behaviour of lxml is a bug or not, please
-check the documentation and ask on the <a class="reference external" href="http://lxml.de/mailinglist/">mailing list</a> first.  Do not
-forget to search the archive (e.g. with <a class="reference external" href="http://blog.gmane.org/gmane.comp.python.lxml.devel">Gmane</a>)!</p>
-</div>
-<div class="section" id="license">
-<h2>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h2>
-<p>The lxml library is shipped under a <a class="reference external" href="https://github.com/lxml/lxml/blob/master/doc/licenses/BSD.txt">BSD license</a>. libxml2 and libxslt2
-itself are shipped under the <a class="reference external" href="http://www.opensource.org/licenses/mit-license.html">MIT license</a>. There should therefore be no
-obstacle to using lxml in your codebase.</p>
-</div>
-<div class="section" id="old-versions">
-<h2>Old Versions<a class="headerlink" href="#old-versions" title="Permalink to this headline">¶</a></h2>
-<p>See the web sites of lxml <a class="reference external" href="http://lxml.de/1.3/">1.3</a>, <a class="reference external" href="http://lxml.de/2.0/">2.0</a>, <a class="reference external" href="http://lxml.de/2.1/">2.1</a>, <a class="reference external" href="http://lxml.de/2.2/">2.2</a> and the <a class="reference external" href="http://lxml.de/dev/">latest in-development version</a></p>
-<ul class="simple">
-<li><a class="reference external" href="/files/lxml-2.3beta1.tgz">lxml 2.3beta1</a>, released 2010-09-06 (<a class="reference external" href="/changes-2.3beta1.html">changes for 2.3beta1</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3alpha2.tgz">lxml 2.3alpha2</a>, released 2010-07-24 (<a class="reference external" href="/changes-2.3alpha2.html">changes for 2.3alpha2</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3alpha1.tgz">lxml 2.3alpha1</a>, released 2010-06-19 (<a class="reference external" href="/changes-2.3alpha1.html">changes for 2.3alpha1</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.8.tgz">lxml 2.2.8</a>, released 2010-09-02 (<a class="reference external" href="/changes-2.2.8.html">changes for 2.2.8</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.7.tgz">lxml 2.2.7</a>, released 2010-07-24 (<a class="reference external" href="/changes-2.2.7.html">changes for 2.2.7</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.6.tgz">lxml 2.2.6</a>, released 2010-03-02 (<a class="reference external" href="/changes-2.2.6.html">changes for 2.2.6</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.5.tgz">lxml 2.2.5</a>, released 2010-02-28 (<a class="reference external" href="/changes-2.2.5.html">changes for 2.2.5</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.4.tgz">lxml 2.2.4</a>, released 2009-11-11 (<a class="reference external" href="/changes-2.2.4.html">changes for 2.2.4</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.3.tgz">lxml 2.2.3</a>, released 2009-10-30 (<a class="reference external" href="/changes-2.2.3.html">changes for 2.2.3</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.2.tgz">lxml 2.2.2</a>, released 2009-06-21 (<a class="reference external" href="/changes-2.2.2.html">changes for 2.2.2</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.1.tgz">lxml 2.2.1</a>, released 2009-06-02 (<a class="reference external" href="/changes-2.2.1.html">changes for 2.2.1</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.2.tgz">lxml 2.2</a>, released 2009-03-21 (<a class="reference external" href="/changes-2.2.html">changes for 2.2</a>)</li>
-<li><a class="reference external" href="http://lxml.de/2.2/#old-versions">older releases</a></li>
-</ul>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="#">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="#">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">lxml</a><ul>
-<li><a class="reference internal" href="#introduction">Introduction</a></li>
-<li><a class="reference internal" href="#documentation">Documentation</a></li>
-<li><a class="reference internal" href="#download">Download</a></li>
-<li><a class="reference internal" href="#mailing-list">Mailing list</a></li>
-<li><a class="reference internal" href="#bug-tracker">Bug tracker</a></li>
-<li><a class="reference internal" href="#license">License</a></li>
-<li><a class="reference internal" href="#old-versions">Old Versions</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/main.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="#">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/memorymanagement.html b/doc/sphinx/memorymanagement.html
deleted file mode 100644 (file)
index 3f81706..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Memory management &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="shortcut icon" href="_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="memory-management">
-<h1>Memory management<a class="headerlink" href="#memory-management" title="Permalink to this headline">¶</a></h1>
-<p>There can be two types of nodes:</p>
-<ul class="simple">
-<li>those connected to an existing tree</li>
-<li>those unconnected. These may be the top node of a tree</li>
-</ul>
-<p>Nodes consist of a C-level libxml2 node, Node for short, and
-optionally a Python-level proxy node, Proxy. Zero, one or more Proxies can
-exist for a single Node.</p>
-<p>Proxies are garbage collected automatically by Python. Nodes are not
-garbage collected at all. Instead, explicit mechanisms exist for
-Nodes to clear them and the tree they may be the top of.</p>
-<p>A Node can be safely freed when:</p>
-<ul class="simple">
-<li>no Proxy is connected to this Node</li>
-<li>no Proxy cannot be created for this Node</li>
-</ul>
-<p>A Proxy cannot be created to a CNode when:</p>
-<ul class="simple">
-<li>no Proxy exist for nodes that are connected to that Node</li>
-</ul>
-<p>This is the case when:</p>
-<ul class="simple">
-<li>the Node is in a tree that has no Proxy connected to any of the nodes.</li>
-</ul>
-<p>This means that the whole tree in such a condition can be freed.</p>
-<p>Detecting whether a Node is in a tree thas has no Proxies connected to
-it can be done by relying on Python&#8217;s garbage collection
-algorithm. Each Proxy can have a reference to the Proxy that points to
-the top of the tree. In case of a document tree, this reference is to
-the Document Proxy. When no more references exist in the system to the
-top Proxy, this means no more Proxies exist that point to the Node
-tree the top Proxy is the top of. If this Node tree is unconnected;
-i.e. it is not a subtree, this means that tree can be safely garbage
-collected.</p>
-<p>A special case exists for document references. Each Proxy will always
-have a reference to the Document Proxy, as any Node will have such a
-reference to the Document Node. This means that a Document Node can
-only be garbage collected when no more Proxies at all exist anymore
-which refer to the Document. This is a separate system from the
-top-Node references, even though the top-node in many cases will be
-the Document. This because there is no way to get to a node that is
-not connected to the Document tree from a Document Proxy.</p>
-<p>This approach requires a system that can keep track of the top of the
-tree in any case. Usually this is simple: when a Proxy gets connected,
-the tree top becomes the tree top of whatever node it is connected
-to.</p>
-<p>Sometimes this is more difficult: a Proxy may exist pointing to a node
-in a subtree that just got connected. The top reference cannot be
-updated. This is a problem in the following case:</p>
-<blockquote>
-<blockquote>
-a</blockquote>
-<p>b    c         h</p>
-</blockquote>
-<dl class="docutils">
-<dt>d  e  f  g     i  j</dt>
-<dd>k</dd>
-</dl>
-<p>now imagine we have a proxy to k, K, and a proxy of i, I. They both
-have a pointer to proxy H.</p>
-<p>Now imagine i gets moved under g through proxy I. Proxy I will have an
-updated pointer to proxy A. However, proxy K cannot be updated and still
-points to H, from which it is now in fact disconnected.</p>
-<p>proxy H cannot be removed now until proxy A is removed. In addition,
-proxy A has a refcount that is too low because proxy K doesn&#8217;t point
-to it but should.</p>
-<p>Another strategy involves having a reference count on the underlying
-nodes, one per proxy. A node can only be freed if there is no
-descendant-or-self that has the refcount higher than 0. A node, when
-no more Python references to it exist, will check for refcounts first.
-The drawback of this is potentially heavy tree-walking each time a proxy
-can be removed.</p>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="_sources/memorymanagement.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/objectify.html b/doc/sphinx/objectify.html
deleted file mode 100644 (file)
index 3d8a511..0000000
+++ /dev/null
@@ -1,1317 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>lxml.objectify &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="lxml-objectify">
-<h1><a class="toc-backref" href="#id1">lxml.objectify</a><a class="headerlink" href="#lxml-objectify" title="Permalink to this headline">¶</a></h1>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name">Authors:</th><td class="field-body">Stefan Behnel, Holger Joukl</td>
-</tr>
-</tbody>
-</table>
-<p>lxml supports an alternative API similar to the <a class="reference external" href="http://uche.ogbuji.net/tech/4suite/amara/">Amara</a> bindery or
-<a class="reference external" href="http://gnosis.cx/download/">gnosis.xml.objectify</a> through a custom Element implementation.  The main idea
-is to hide the usage of XML behind normal Python objects, sometimes referred
-to as data-binding.  It allows you to use XML as if you were dealing with a
-normal Python object hierarchy.</p>
-<p>Accessing the children of an XML element deploys object attribute access.  If
-there are multiple children with the same name, slicing and indexing can be
-used.  Python data types are extracted from XML content automatically and made
-available to the normal Python operators.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#lxml-objectify" id="id1">lxml.objectify</a><ul>
-<li><a class="reference internal" href="#the-lxml-objectify-api" id="id2">The lxml.objectify API</a><ul>
-<li><a class="reference internal" href="#creating-objectify-trees" id="id3">Creating objectify trees</a></li>
-<li><a class="reference internal" href="#element-access-through-object-attributes" id="id4">Element access through object attributes</a></li>
-<li><a class="reference internal" href="#tree-generation-with-the-e-factory" id="id5">Tree generation with the E-factory</a></li>
-<li><a class="reference internal" href="#namespace-handling" id="id6">Namespace handling</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#asserting-a-schema" id="id7">Asserting a Schema</a></li>
-<li><a class="reference internal" href="#objectpath" id="id8">ObjectPath</a></li>
-<li><a class="reference internal" href="#python-data-types" id="id9">Python data types</a><ul>
-<li><a class="reference internal" href="#recursive-tree-dump" id="id10">Recursive tree dump</a></li>
-<li><a class="reference internal" href="#recursive-string-representation-of-elements" id="id11">Recursive string representation of elements</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#how-data-types-are-matched" id="id12">How data types are matched</a><ul>
-<li><a class="reference internal" href="#type-annotations" id="id13">Type annotations</a></li>
-<li><a class="reference internal" href="#xml-schema-datatype-annotation" id="id14">XML Schema datatype annotation</a></li>
-<li><a class="reference internal" href="#the-dataelement-factory" id="id15">The DataElement factory</a></li>
-<li><a class="reference internal" href="#defining-additional-data-classes" id="id16">Defining additional data classes</a></li>
-<li><a class="reference internal" href="#advanced-element-class-lookup" id="id17">Advanced element class lookup</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#what-is-different-from-lxml-etree" id="id18">What is different from lxml.etree?</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<p>To set up and use <tt class="docutils literal"><span class="pre">objectify</span></tt>, you need both the <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>
-module and <tt class="docutils literal"><span class="pre">lxml.objectify</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">objectify</span>
-</pre></div>
-</div>
-<p>The objectify API is very different from the ElementTree API.  If it
-is used, it should not be mixed with other element implementations
-(such as trees parsed with <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>), to avoid non-obvious
-behaviour.</p>
-<p>The <a class="reference external" href="performance.html#lxml-objectify">benchmark page</a> has some hints on performance optimisation of
-code using lxml.objectify.</p>
-<p>To make the doctests in this document look a little nicer, we also use
-this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.usedoctest</span>
-</pre></div>
-</div>
-<p>Imported from within a doctest, this relieves us from caring about the exact
-formatting of XML output.</p>
-<div class="section" id="the-lxml-objectify-api">
-<h2><a class="toc-backref" href="#id2">The lxml.objectify API</a><a class="headerlink" href="#the-lxml-objectify-api" title="Permalink to this headline">¶</a></h2>
-<p>In <tt class="docutils literal"><span class="pre">lxml.objectify</span></tt>, element trees provide an API that models the behaviour
-of normal Python object trees as closely as possible.</p>
-<div class="section" id="creating-objectify-trees">
-<h3><a class="toc-backref" href="#id3">Creating objectify trees</a><a class="headerlink" href="#creating-objectify-trees" title="Permalink to this headline">¶</a></h3>
-<p>As with <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>, you can either create an <tt class="docutils literal"><span class="pre">objectify</span></tt> tree by
-parsing an XML document or by building one from scratch.  To parse a
-document, just use the <tt class="docutils literal"><span class="pre">parse()</span></tt> or <tt class="docutils literal"><span class="pre">fromstring()</span></tt> functions of
-the module:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">fileobject</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;test/&gt;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">fileobject</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&lt;test/&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>To build a new tree in memory, <tt class="docutils literal"><span class="pre">objectify</span></tt> replicates the standard
-factory function <tt class="docutils literal"><span class="pre">Element()</span></tt> from <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">obj_el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;new&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>After creating such an Element, you can use the <a class="reference external" href="tutorial.html#the-element-class">usual API</a> of
-lxml.etree to add SubElements to the tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="s">&quot;newchild&quot;</span><span class="p">,</span> <span class="n">attr</span><span class="o">=</span><span class="s">&quot;value&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>New subelements will automatically inherit the objectify behaviour
-from their tree.  However, all independent elements that you create
-through the <tt class="docutils literal"><span class="pre">Element()</span></tt> factory of lxml.etree (instead of objectify)
-will not support the <tt class="docutils literal"><span class="pre">objectify</span></tt> API by themselves:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">obj_el</span><span class="p">,</span> <span class="s">&quot;sub&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">subel</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">independent_el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;new&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">independent_el</span><span class="p">,</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">))</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="element-access-through-object-attributes">
-<h3><a class="toc-backref" href="#id4">Element access through object attributes</a><a class="headerlink" href="#element-access-through-object-attributes" title="Permalink to this headline">¶</a></h3>
-<p>The main idea behind the <tt class="docutils literal"><span class="pre">objectify</span></tt> API is to hide XML element access
-behind the usual object attribute access pattern.  Asking an element for an
-attribute will return the sequence of children with corresponding tag names:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-<span class="go">0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
-<span class="go">1</span>
-</pre></div>
-</div>
-<p>For convenience, you can omit the index &#8216;0&#8217; to access the first child:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="p">)</span>
-<span class="go">0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span>
-</pre></div>
-</div>
-<p>Iteration and slicing also obey the requested tag:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">x1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;x&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">x2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;x&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">x3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;x&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="p">]</span>
-<span class="go">[&#39;x&#39;, &#39;x&#39;, &#39;x&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">3</span><span class="p">]</span> <span class="p">]</span>
-<span class="go">[&#39;x&#39;, &#39;x&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">:]</span> <span class="p">]</span>
-<span class="go">[&#39;x&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">root</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="p">]</span>
-<span class="go">[&#39;x&#39;, &#39;x&#39;]</span>
-</pre></div>
-</div>
-<p>If you want to iterate over all children or need to provide a specific
-namespace for the tag, use the <tt class="docutils literal"><span class="pre">iterchildren()</span></tt> method.  Like the other
-methods for iteration, it supports an optional tag keyword argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">()</span> <span class="p">]</span>
-<span class="go">[&#39;b&#39;, &#39;x&#39;, &#39;x&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterchildren</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="s">&#39;b&#39;</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;b&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span> <span class="p">]</span>
-<span class="go">[&#39;b&#39;]</span>
-</pre></div>
-</div>
-<p>XML attributes are accessed as in the normal ElementTree API:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;c&quot;</span><span class="p">,</span> <span class="n">myattr</span><span class="o">=</span><span class="s">&quot;someval&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;myattr&quot;</span><span class="p">))</span>
-<span class="go">someval</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">&quot;c&quot;</span><span class="p">,</span> <span class="s">&quot;oh-oh&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;c&quot;</span><span class="p">))</span>
-<span class="go">oh-oh</span>
-</pre></div>
-</div>
-<p>In addition to the normal ElementTree API for appending elements to trees,
-subtrees can also be added by assigning them to object attributes.  In this
-case, the subtree is automatically deep copied and the tag name of its root is
-updated to match the attribute name:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;yet_another_child&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">new_child</span> <span class="o">=</span> <span class="n">el</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">new_child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">new_child</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">yet_another_child</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="p">[</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;y&quot;</span><span class="p">),</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;y&quot;</span><span class="p">)</span> <span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="p">]</span>
-<span class="go">[&#39;y&#39;, &#39;y&#39;]</span>
-</pre></div>
-</div>
-<p>The latter is a short form for operations on the full slice:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">y</span><span class="p">[:]</span> <span class="o">=</span> <span class="p">[</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;y&quot;</span><span class="p">)</span> <span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">y</span> <span class="p">]</span>
-<span class="go">[&#39;y&#39;]</span>
-</pre></div>
-</div>
-<p>You can also replace children that way:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;new_child&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">&quot;sub&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">child</span> <span class="o">=</span> <span class="n">el</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">sub</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">sub</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">child</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">el</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">child</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">sub</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">sub</span>
-</pre></div>
-</div>
-<p>Note that special care must be taken when changing the tag name of an element:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="s">&quot;notB&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">notB</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">notB</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="tree-generation-with-the-e-factory">
-<h3><a class="toc-backref" href="#id5">Tree generation with the E-factory</a><a class="headerlink" href="#tree-generation-with-the-e-factory" title="Permalink to this headline">¶</a></h3>
-<p>To simplify the generation of trees even further, you can use the E-factory:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">E</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">E</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">root</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">a</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="mf">6.1</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">c</span><span class="p">(</span><span class="bp">True</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">d</span><span class="p">(</span><span class="s">&quot;how&quot;</span><span class="p">,</span> <span class="n">tell</span><span class="o">=</span><span class="s">&quot;me&quot;</span><span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns:py=&quot;http://codespeak.net/lxml/objectify/pytype&quot;&gt;</span>
-<span class="go">  &lt;a py:pytype=&quot;int&quot;&gt;5&lt;/a&gt;</span>
-<span class="go">  &lt;b py:pytype=&quot;float&quot;&gt;6.1&lt;/b&gt;</span>
-<span class="go">  &lt;c py:pytype=&quot;bool&quot;&gt;true&lt;/c&gt;</span>
-<span class="go">  &lt;d py:pytype=&quot;str&quot; tell=&quot;me&quot;&gt;how&lt;/d&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p>This allows you to write up a specific language in tags:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ROOT</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="o">.</span><span class="n">root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">TITLE</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="o">.</span><span class="n">title</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">HOWMANY</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">E</span><span class="p">,</span> <span class="s">&quot;how-many&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">ROOT</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">TITLE</span><span class="p">(</span><span class="s">&quot;The title&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="n">HOWMANY</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns:py=&quot;http://codespeak.net/lxml/objectify/pytype&quot;&gt;</span>
-<span class="go">  &lt;title py:pytype=&quot;str&quot;&gt;The title&lt;/title&gt;</span>
-<span class="go">  &lt;how-many py:pytype=&quot;int&quot;&gt;5&lt;/how-many&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p><tt class="docutils literal"><span class="pre">objectify.E</span></tt> is an instance of <tt class="docutils literal"><span class="pre">objectify.ElementMaker</span></tt>.  By default, it
-creates pytype annotated Elements without a namespace.  You can switch off the
-pytype annotation by passing False to the <tt class="docutils literal"><span class="pre">annotate</span></tt> keyword argument of the
-constructor.  You can also pass a default namespace and an <tt class="docutils literal"><span class="pre">nsmap</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">myE</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ElementMaker</span><span class="p">(</span><span class="n">annotate</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
-<span class="gp">... </span>          <span class="n">namespace</span><span class="o">=</span><span class="s">&quot;http://my/ns&quot;</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="s">&quot;http://my/ns&quot;</span><span class="p">})</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">myE</span><span class="o">.</span><span class="n">root</span><span class="p">(</span> <span class="n">myE</span><span class="o">.</span><span class="n">someint</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns=&quot;http://my/ns&quot;&gt;</span>
-<span class="go">  &lt;someint&gt;2&lt;/someint&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="namespace-handling">
-<h3><a class="toc-backref" href="#id6">Namespace handling</a><a class="headerlink" href="#namespace-handling" title="Permalink to this headline">¶</a></h3>
-<p>During tag lookups, namespaces are handled mostly behind the scenes.
-If you access a child of an Element without specifying a namespace,
-the lookup will use the namespace of the parent:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;{http://ns/}root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://ns/}b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://other/}c&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-</pre></div>
-</div>
-<p>Note that the <tt class="docutils literal"><span class="pre">SubElement()</span></tt> factory of <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> does not
-inherit any namespaces when creating a new subelement.  Element
-creation must be explicit about the namespace, and is simplified
-through the E-factory as described above.</p>
-<p>Lookups, however, inherit namespaces implicitly:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-    <span class="o">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://ns/}c</span>
-</pre></div>
-</div>
-<p>To access an element in a different namespace than its parent, you can
-use <tt class="docutils literal"><span class="pre">getattr()</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://other/}c&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://other/}c</span>
-</pre></div>
-</div>
-<p>For convenience, there is also a quick way through item access:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">c</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="s">&quot;{http://other/}c&quot;</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://other/}c</span>
-</pre></div>
-</div>
-<p>The same approach must be used to access children with tag names that are not
-valid Python identifiers:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://ns/}tag-name&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}tag-name</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">new_el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;{http://ns/}new-element&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s">&quot;{http://ns/}child&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s">&quot;{http://ns/}child&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">new_el</span><span class="p">,</span> <span class="s">&quot;{http://ns/}child&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> <span class="n">new_el</span><span class="p">,</span> <span class="n">new_el</span> <span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">]))</span>
-<span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}tag-name</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="p">))</span>
-<span class="go">3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}child</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;tag-name&quot;</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}child</span>
-</pre></div>
-</div>
-<p>or for names that have a special meaning in lxml.objectify:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;text&gt;TEXT&lt;/text&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError</span>: <span class="n">&#39;NoneType&#39; object has no attribute &#39;text&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="s">&quot;text&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">TEXT</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="asserting-a-schema">
-<h2><a class="toc-backref" href="#id7">Asserting a Schema</a><a class="headerlink" href="#asserting-a-schema" title="Permalink to this headline">¶</a></h2>
-<p>When dealing with XML documents from different sources, you will often
-require them to follow a common schema.  In lxml.objectify, this
-directly translates to enforcing a specific object tree, i.e. expected
-object attributes are ensured to be there and to have the expected
-type.  This can easily be achieved through XML Schema validation at
-parse time.  Also see the <a class="reference external" href="validation.html">documentation on validation</a> on this
-topic.</p>
-<p>First of all, we need a parser that knows our schema, so let&#8217;s say we
-parse the schema from a file-like object (or file or filename):</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">  &lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:element name=&quot;a&quot; type=&quot;AType&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:complexType name=&quot;AType&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;xsd:element name=&quot;b&quot; type=&quot;xsd:string&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;/xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsd:complexType&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsd:schema&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schema</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSchema</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="n">f</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>When creating the validating parser, we must make sure it <a class="reference external" href="#advance-element-class-lookup">returns
-objectify trees</a>.  This is best done with the <tt class="docutils literal"><span class="pre">makeparser()</span></tt>
-function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">makeparser</span><span class="p">(</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Now we can use it to parse a valid document:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&quot;&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;/a&gt;&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">b</span><span class="p">)</span>
-<span class="go">test</span>
-</pre></div>
-</div>
-<p>Or an invalid document:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&quot;&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="gr">lxml.etree.XMLSyntaxError: Element &#39;c&#39;</span>: <span class="n">This element is not expected.</span>
-</pre></div>
-</div>
-<p>Note that the same works for parse-time DTD validation, except that
-DTDs do not support any data types by design.</p>
-</div>
-<div class="section" id="objectpath">
-<h2><a class="toc-backref" href="#id8">ObjectPath</a><a class="headerlink" href="#objectpath" title="Permalink to this headline">¶</a></h2>
-<p>For both convenience and speed, objectify supports its own path language,
-represented by the <tt class="docutils literal"><span class="pre">ObjectPath</span></tt> class:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;{http://ns/}root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://ns/}b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">b1</span><span class="p">,</span>   <span class="s">&quot;{http://ns/}c&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://ns/}b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;{http://other/}d&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;root.b.c&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
-<span class="go">root.b.c</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}c</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;root.b.c&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}c</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;root.{http://other/}d&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://other/}d</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;root.{not}there&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{not}there</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;{not}there&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">ValueError: root element does not match</span>: <span class="n">need {not}there, got {http://ns/}root</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;root.b[1]&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;root.{http://ns/}b[1]&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-</pre></div>
-</div>
-<p>Apart from strings, ObjectPath also accepts lists of path segments:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s">&#39;root&#39;</span><span class="p">,</span> <span class="s">&#39;b&#39;</span><span class="p">,</span> <span class="s">&#39;c&#39;</span><span class="p">])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}c</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s">&#39;root&#39;</span><span class="p">,</span> <span class="s">&#39;{http://ns/}b[1]&#39;</span><span class="p">])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-</pre></div>
-</div>
-<p>You can also use relative paths starting with a &#8216;.&#8217; to ignore the actual root
-element and only inherit its namespace:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;.b[1]&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">([</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;b[1]&#39;</span><span class="p">])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}b</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;.unknown[1]&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://ns/}unknown</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;.{http://other/}unknown[1]&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://other/}unknown</span>
-</pre></div>
-</div>
-<p>For convenience, a single dot represents the empty ObjectPath (identity):</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;.&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://ns/}root</span>
-</pre></div>
-</div>
-<p>ObjectPath objects can be used to manipulate trees:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;{http://ns/}root&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;.some.child.{http://other/}unknown&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://ns/}some</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;my value&quot;</span><span class="p">)</span> <span class="c"># creates children as necessary</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">my value</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">some</span><span class="o">.</span><span class="n">child</span><span class="p">[</span><span class="s">&quot;{http://other/}unknown&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">my value</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">))</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">addattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;my new value&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">))</span>
-<span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;my value&#39;, &#39;my new value&#39;]</span>
-</pre></div>
-</div>
-<p>As with attribute assignment, <tt class="docutils literal"><span class="pre">setattr()</span></tt> accepts lists:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="p">[</span><span class="s">&quot;v1&quot;</span><span class="p">,</span> <span class="s">&quot;v2&quot;</span><span class="p">,</span> <span class="s">&quot;v3&quot;</span><span class="p">])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">el</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;v1&#39;, &#39;v2&#39;, &#39;v3&#39;]</span>
-</pre></div>
-</div>
-<p>Note, however, that indexing is only supported in this context if the children
-exist.  Indexing of non existing children will not extend or create a list of
-such children but raise an exception:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">path</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">&quot;.{non}existing[1]&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;my value&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">TypeError</span>: <span class="n">creating indexed path attributes is not supported</span>
-</pre></div>
-</div>
-<p>It is worth noting that ObjectPath does not depend on the <tt class="docutils literal"><span class="pre">objectify</span></tt> module
-or the ObjectifiedElement implementation.  It can also be used in combination
-with Elements from the normal lxml.etree API.</p>
-</div>
-<div class="section" id="python-data-types">
-<h2><a class="toc-backref" href="#id9">Python data types</a><a class="headerlink" href="#python-data-types" title="Permalink to this headline">¶</a></h2>
-<p>The objectify module knows about Python data types and tries its best to let
-element content behave like them.  For example, they support the normal math
-operators:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">&quot;&lt;root&gt;&lt;a&gt;5&lt;/a&gt;&lt;b&gt;11&lt;/b&gt;&lt;c&gt;true&lt;/c&gt;&lt;d&gt;hoi&lt;/d&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span>
-<span class="go">16</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+=</span> <span class="n">root</span><span class="o">.</span><span class="n">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span>
-<span class="go">16</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="mi">2</span><span class="p">)</span>
-<span class="go">4</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span>
-<span class="go">3</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">c</span> <span class="o">=</span> <span class="bp">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;false!&quot;</span><span class="p">)</span>
-<span class="go">false!</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">+</span> <span class="s">&quot; test !&quot;</span><span class="p">)</span>
-<span class="go">hoi test !</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">d</span> <span class="o">%</span> <span class="p">(</span><span class="mi">1234</span><span class="p">,</span> <span class="mi">12345</span><span class="p">))</span>
-<span class="go">1234 - 12345</span>
-</pre></div>
-</div>
-<p>However, data elements continue to provide the objectify API.  This means that
-sequence operations such as <tt class="docutils literal"><span class="pre">len()</span></tt>, slicing and indexing (e.g. of strings)
-cannot behave as the Python types.  Like all other tree elements, they show
-the normal slicing behaviour of objectify elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;toast&lt;/b&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="s">&#39; me&#39;</span><span class="p">)</span> <span class="c"># behaves like a string, right?</span>
-<span class="go">test me</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span> <span class="c"># but there&#39;s only one &#39;a&#39; element!</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">a</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="p">]</span>
-<span class="go">[&#39;a&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">a</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span>
-<span class="go">test</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="nb">str</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="p">]</span>
-<span class="go">[&#39;test&#39;]</span>
-</pre></div>
-</div>
-<p>If you need to run sequence operations on data types, you must ask the API for
-the <em>real</em> Python value.  The string value is always available through the
-normal ElementTree <tt class="docutils literal"><span class="pre">.text</span></tt> attribute.  Additionally, all data classes
-provide a <tt class="docutils literal"><span class="pre">.pyval</span></tt> attribute that returns the value as plain Python type:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;test&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">pyval</span>
-<span class="go">&#39;test&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;5&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">pyval</span>
-<span class="go">5</span>
-</pre></div>
-</div>
-<p>Note, however, that both attributes are read-only in objectify.  If you want
-to change values, just assign them directly to the attribute:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">text</span>  <span class="o">=</span> <span class="s">&quot;25&quot;</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">TypeError</span>: <span class="n">attribute &#39;text&#39; of &#39;StringElement&#39; objects is not writable</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">pyval</span> <span class="o">=</span> <span class="mi">25</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">TypeError</span>: <span class="n">attribute &#39;pyval&#39; of &#39;StringElement&#39; objects is not writable</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="mi">25</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span>
-<span class="go">25</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">pyval</span><span class="p">)</span>
-<span class="go">25</span>
-</pre></div>
-</div>
-<p>In other words, <tt class="docutils literal"><span class="pre">objectify</span></tt> data elements behave like immutable Python
-types.  You can replace them, but not modify them.</p>
-<div class="section" id="recursive-tree-dump">
-<h3><a class="toc-backref" href="#id10">Recursive tree dump</a><a class="headerlink" href="#recursive-tree-dump" title="Permalink to this headline">¶</a></h3>
-<p>To see the data types that are currently used, you can call the module level
-<tt class="docutils literal"><span class="pre">dump()</span></tt> function that returns a recursive string representation for
-elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&quot;&quot;</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a attr1=&quot;foo&quot; attr2=&quot;bar&quot;&gt;1&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;1.2&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;1&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;true&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;c&gt;what?&lt;/c&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:nil=&quot;true&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&quot;&quot;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = 1 [IntElement]</span>
-<span class="go">      * attr1 = &#39;foo&#39;</span>
-<span class="go">      * attr2 = &#39;bar&#39;</span>
-<span class="go">    a = 1.2 [FloatElement]</span>
-<span class="go">    b = 1 [IntElement]</span>
-<span class="go">    b = True [BoolElement]</span>
-<span class="go">    c = &#39;what?&#39; [StringElement]</span>
-<span class="go">    d = None [NoneElement]</span>
-<span class="go">      * xsi:nil = &#39;true&#39;</span>
-</pre></div>
-</div>
-<p>You can freely switch between different types for the same child:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;5&lt;/a&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = 5 [IntElement]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="s">&#39;nice string!&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = &#39;nice string!&#39; [StringElement]</span>
-<span class="go">      * py:pytype = &#39;str&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="bp">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = True [BoolElement]</span>
-<span class="go">      * py:pytype = &#39;bool&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = 1 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">    a = 2 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">    a = 3 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = 1 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">    a = 2 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">    a = 3 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="recursive-string-representation-of-elements">
-<h3><a class="toc-backref" href="#id11">Recursive string representation of elements</a><a class="headerlink" href="#recursive-string-representation-of-elements" title="Permalink to this headline">¶</a></h3>
-<p>Normally, elements use the standard string representation for str() that is
-provided by lxml.etree.  You can enable a pretty-print representation for
-objectify elements like this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">enable_recursive_str</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&quot;&quot;</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a attr1=&quot;foo&quot; attr2=&quot;bar&quot;&gt;1&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;1.2&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;1&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b&gt;true&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;c&gt;what?&lt;/c&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:nil=&quot;true&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&quot;&quot;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = 1 [IntElement]</span>
-<span class="go">      * attr1 = &#39;foo&#39;</span>
-<span class="go">      * attr2 = &#39;bar&#39;</span>
-<span class="go">    a = 1.2 [FloatElement]</span>
-<span class="go">    b = 1 [IntElement]</span>
-<span class="go">    b = True [BoolElement]</span>
-<span class="go">    c = &#39;what?&#39; [StringElement]</span>
-<span class="go">    d = None [NoneElement]</span>
-<span class="go">      * xsi:nil = &#39;true&#39;</span>
-</pre></div>
-</div>
-<p>This behaviour can be switched off in the same way:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">enable_recursive_str</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="how-data-types-are-matched">
-<h2><a class="toc-backref" href="#id12">How data types are matched</a><a class="headerlink" href="#how-data-types-are-matched" title="Permalink to this headline">¶</a></h2>
-<p>Objectify uses two different types of Elements.  Structural Elements (or tree
-Elements) represent the object tree structure.  Data Elements represent the
-data containers at the leafs.  You can explicitly create tree Elements with
-the <tt class="docutils literal"><span class="pre">objectify.Element()</span></tt> factory and data Elements with the
-<tt class="docutils literal"><span class="pre">objectify.DataElement()</span></tt> factory.</p>
-<p>When Element objects are created, lxml.objectify must determine which
-implementation class to use for them.  This is relatively easy for tree
-Elements and less so for data Elements.  The algorithm is as follows:</p>
-<ol class="arabic simple">
-<li>If an element has children, use the default tree class.</li>
-<li>If an element is defined as xsi:nil, use the NoneElement class.</li>
-<li>If a &#8220;Python type hint&#8221; attribute is given, use this to determine the element
-class, see below.</li>
-<li>If an XML Schema xsi:type hint is given, use this to determine the element
-class, see below.</li>
-<li>Try to determine the element class from the text content type by trial and
-error.</li>
-<li>If the element is a root node then use the default tree class.</li>
-<li>Otherwise, use the default class for empty data classes.</li>
-</ol>
-<p>You can change the default classes for tree Elements and empty data Elements
-at setup time.  The <tt class="docutils literal"><span class="pre">ObjectifyElementClassLookup()</span></tt> call accepts two keyword
-arguments, <tt class="docutils literal"><span class="pre">tree_class</span></tt> and <tt class="docutils literal"><span class="pre">empty_data_class</span></tt>, that determine the Element
-classes used in these cases.  By default, <tt class="docutils literal"><span class="pre">tree_class</span></tt> is a class called
-<tt class="docutils literal"><span class="pre">ObjectifiedElement</span></tt> and <tt class="docutils literal"><span class="pre">empty_data_class</span></tt> is a <tt class="docutils literal"><span class="pre">StringElement</span></tt>.</p>
-<div class="section" id="type-annotations">
-<h3><a class="toc-backref" href="#id13">Type annotations</a><a class="headerlink" href="#type-annotations" title="Permalink to this headline">¶</a></h3>
-<p>The &#8220;type hint&#8221; mechanism deploys an XML attribute defined as
-<tt class="docutils literal"><span class="pre">lxml.objectify.PYTYPE_ATTRIBUTE</span></tt>.  It may contain any of the following
-string values: int, long, float, str, unicode, NoneType:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">PYTYPE_ATTRIBUTE</span><span class="p">)</span>
-<span class="go">{http://codespeak.net/lxml/objectify/pytype}pytype</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ns</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">PYTYPE_ATTRIBUTE</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;}&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&quot;&quot;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:py=&#39;</span><span class="si">%s</span><span class="s">&#39;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a py:pytype=&#39;str&#39;&gt;5&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;b py:pytype=&#39;int&#39;&gt;5&lt;/b&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;c py:pytype=&#39;NoneType&#39; /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&quot;&quot;&quot;</span> <span class="o">%</span> <span class="n">ns</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span> <span class="o">+</span> <span class="mi">10</span><span class="p">)</span>
-<span class="go">510</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">b</span> <span class="o">+</span> <span class="mi">10</span><span class="p">)</span>
-<span class="go">15</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="p">)</span>
-<span class="go">None</span>
-</pre></div>
-</div>
-<p>Note that you can change the name and namespace used for this
-attribute through the <tt class="docutils literal"><span class="pre">set_pytype_attribute_tag(tag)</span></tt> module
-function, in case your application ever needs to.  There is also a
-utility function <tt class="docutils literal"><span class="pre">annotate()</span></tt> that recursively generates this
-attribute for the elements of a tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = &#39;test&#39; [StringElement]</span>
-<span class="go">    b = 5 [IntElement]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = &#39;test&#39; [StringElement]</span>
-<span class="go">      * py:pytype = &#39;str&#39;</span>
-<span class="go">    b = 5 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="xml-schema-datatype-annotation">
-<h3><a class="toc-backref" href="#id14">XML Schema datatype annotation</a><a class="headerlink" href="#xml-schema-datatype-annotation" title="Permalink to this headline">¶</a></h3>
-<p>A second way of specifying data type information uses XML Schema types as
-element annotations.  Objectify knows those that can be mapped to normal
-Python types:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;root xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
-<span class="gp">... </span><span class="s">         xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;d xsi:type=&quot;xsd:double&quot;&gt;5&lt;/d&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;i xsi:type=&quot;xsd:int&quot;   &gt;5&lt;/i&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;s xsi:type=&quot;xsd:string&quot;&gt;5&lt;/s&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">   &#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    d = 5.0 [FloatElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:double&#39;</span>
-<span class="go">    i = 5 [IntElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:int&#39;</span>
-<span class="go">    s = &#39;5&#39; [StringElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:string&#39;</span>
-</pre></div>
-</div>
-<p>Again, there is a utility function <tt class="docutils literal"><span class="pre">xsiannotate()</span></tt> that recursively
-generates the &#8220;xsi:type&#8221; attribute for the elements of a tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;root&gt;&lt;a&gt;test&lt;/a&gt;&lt;b&gt;5&lt;/b&gt;&lt;c&gt;true&lt;/c&gt;&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">   &#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = &#39;test&#39; [StringElement]</span>
-<span class="go">    b = 5 [IntElement]</span>
-<span class="go">    c = True [BoolElement]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">xsiannotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    a = &#39;test&#39; [StringElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:string&#39;</span>
-<span class="go">    b = 5 [IntElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:integer&#39;</span>
-<span class="go">    c = True [BoolElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:boolean&#39;</span>
-</pre></div>
-</div>
-<p>Note, however, that <tt class="docutils literal"><span class="pre">xsiannotate()</span></tt> will always use the first XML Schema
-datatype that is defined for any given Python type, see also
-<a class="reference internal" href="#defining-additional-data-classes">Defining additional data classes</a>.</p>
-<p>The utility function <tt class="docutils literal"><span class="pre">deannotate()</span></tt> can be used to get rid of &#8216;py:pytype&#8217;
-and/or &#8216;xsi:type&#8217; information:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
-<span class="gp">... </span><span class="s">      xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:type=&quot;xsd:double&quot;&gt;5&lt;/d&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;i xsi:type=&quot;xsd:int&quot;   &gt;5&lt;/i&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;s xsi:type=&quot;xsd:string&quot;&gt;5&lt;/s&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    d = 5.0 [FloatElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:double&#39;</span>
-<span class="go">      * py:pytype = &#39;float&#39;</span>
-<span class="go">    i = 5 [IntElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:int&#39;</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">    s = &#39;5&#39; [StringElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:string&#39;</span>
-<span class="go">      * py:pytype = &#39;str&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">deannotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    d = 5 [IntElement]</span>
-<span class="go">    i = 5 [IntElement]</span>
-<span class="go">    s = 5 [IntElement]</span>
-</pre></div>
-</div>
-<p>You can control which type attributes should be de-annotated with the keyword
-arguments &#8216;pytype&#8217; (default: True) and &#8216;xsi&#8217; (default: True).
-<tt class="docutils literal"><span class="pre">deannotate()</span></tt> can also remove &#8216;xsi:nil&#8217; attributes by setting &#8216;xsi_nil=True&#8217;
-(default: False):</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
-<span class="gp">... </span><span class="s">      xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;d xsi:type=&quot;xsd:double&quot;&gt;5&lt;/d&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;i xsi:type=&quot;xsd:int&quot;   &gt;5&lt;/i&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;s xsi:type=&quot;xsd:string&quot;&gt;5&lt;/s&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;n xsi:nil=&quot;true&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    d = 5.0 [FloatElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:double&#39;</span>
-<span class="go">      * py:pytype = &#39;float&#39;</span>
-<span class="go">    i = 5 [IntElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:int&#39;</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">    s = &#39;5&#39; [StringElement]</span>
-<span class="go">      * xsi:type = &#39;xsd:string&#39;</span>
-<span class="go">      * py:pytype = &#39;str&#39;</span>
-<span class="go">    n = None [NoneElement]</span>
-<span class="go">      * xsi:nil = &#39;true&#39;</span>
-<span class="go">      * py:pytype = &#39;NoneType&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">deannotate</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">xsi_nil</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    d = 5 [IntElement]</span>
-<span class="go">    i = 5 [IntElement]</span>
-<span class="go">    s = 5 [IntElement]</span>
-<span class="go">    n = u&#39;&#39; [StringElement]</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-dataelement-factory">
-<h3><a class="toc-backref" href="#id15">The DataElement factory</a><a class="headerlink" href="#the-dataelement-factory" title="Permalink to this headline">¶</a></h3>
-<p>For convenience, the <tt class="docutils literal"><span class="pre">DataElement()</span></tt> factory creates an Element with a
-Python value in one step.  You can pass the required Python type name or the
-XSI type name:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_pytype</span><span class="o">=</span><span class="s">&quot;int&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    x = 5 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_pytype</span><span class="o">=</span><span class="s">&quot;str&quot;</span><span class="p">,</span> <span class="n">myattr</span><span class="o">=</span><span class="s">&quot;someval&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    x = &#39;5&#39; [StringElement]</span>
-<span class="go">      * py:pytype = &#39;str&#39;</span>
-<span class="go">      * myattr = &#39;someval&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">&quot;integer&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">root = None [ObjectifiedElement]</span>
-<span class="go">    x = 5 [IntElement]</span>
-<span class="go">      * py:pytype = &#39;int&#39;</span>
-<span class="go">      * xsi:type = &#39;xsd:integer&#39;</span>
-</pre></div>
-</div>
-<p>XML Schema types reside in the XML schema namespace thus <tt class="docutils literal"><span class="pre">DataElement()</span></tt>
-tries to correctly prefix the xsi:type attribute value for you:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">s</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">&quot;string&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">deannotate</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">xsi</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns:py=&quot;http://codespeak.net/lxml/objectify/pytype&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;</span>
-<span class="go">  &lt;s xsi:type=&quot;xsd:string&quot;&gt;5&lt;/s&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p><tt class="docutils literal"><span class="pre">DataElement()</span></tt> uses a default nsmap to set these prefixes:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">&#39;5&#39;</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">&#39;string&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">nsmap</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span> <span class="ow">in</span> <span class="n">namespaces</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
-<span class="go">py - http://codespeak.net/lxml/objectify/pytype</span>
-<span class="go">xsd - http://www.w3.org/2001/XMLSchema</span>
-<span class="go">xsi - http://www.w3.org/2001/XMLSchema-instance</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;{http://www.w3.org/2001/XMLSchema-instance}type&quot;</span><span class="p">))</span>
-<span class="go">xsd:string</span>
-</pre></div>
-</div>
-<p>While you can set custom namespace prefixes, it is necessary to provide valid
-namespace information if you choose to do so:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">&#39;5&#39;</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">&#39;foo:string&#39;</span><span class="p">,</span>
-<span class="gp">... </span>         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;foo&#39;</span><span class="p">:</span> <span class="s">&#39;http://www.w3.org/2001/XMLSchema&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">nsmap</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span> <span class="ow">in</span> <span class="n">namespaces</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
-<span class="go">foo - http://www.w3.org/2001/XMLSchema</span>
-<span class="go">py - http://codespeak.net/lxml/objectify/pytype</span>
-<span class="go">xsi - http://www.w3.org/2001/XMLSchema-instance</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;{http://www.w3.org/2001/XMLSchema-instance}type&quot;</span><span class="p">))</span>
-<span class="go">foo:string</span>
-</pre></div>
-</div>
-<p>Note how lxml chose a default prefix for the XML Schema Instance
-namespace.  We can override it as in the following example:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">&#39;5&#39;</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">&#39;foo:string&#39;</span><span class="p">,</span>
-<span class="gp">... </span>         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;foo&#39;</span><span class="p">:</span> <span class="s">&#39;http://www.w3.org/2001/XMLSchema&#39;</span><span class="p">,</span>
-<span class="gp">... </span>                <span class="s">&#39;myxsi&#39;</span><span class="p">:</span> <span class="s">&#39;http://www.w3.org/2001/XMLSchema-instance&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">nsmap</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">namespaces</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span> <span class="ow">in</span> <span class="n">namespaces</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">namespace</span><span class="p">))</span>
-<span class="go">foo - http://www.w3.org/2001/XMLSchema</span>
-<span class="go">myxsi - http://www.w3.org/2001/XMLSchema-instance</span>
-<span class="go">py - http://codespeak.net/lxml/objectify/pytype</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">el</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;{http://www.w3.org/2001/XMLSchema-instance}type&quot;</span><span class="p">))</span>
-<span class="go">foo:string</span>
-</pre></div>
-</div>
-<p>Care must be taken if different namespace prefixes have been used for the same
-namespace.  Namespace information gets merged to avoid duplicate definitions
-when adding a new sub-element to a tree, but this mechanism does not adapt the
-prefixes of attribute values:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&quot;&quot;&lt;root xmlns:schema=&quot;http://www.w3.org/2001/XMLSchema&quot;/&gt;&quot;&quot;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns:schema=&quot;http://www.w3.org/2001/XMLSchema&quot;/&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">DataElement</span><span class="p">(</span><span class="s">&quot;17&quot;</span><span class="p">,</span> <span class="n">_xsi</span><span class="o">=</span><span class="s">&quot;string&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;value xmlns:py=&quot;http://codespeak.net/lxml/objectify/pytype&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; py:pytype=&quot;str&quot; xsi:type=&quot;xsd:string&quot;&gt;17&lt;/value&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">s</span> <span class="o">=</span> <span class="n">s</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns:schema=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="go">  &lt;s xmlns:py=&quot;http://codespeak.net/lxml/objectify/pytype&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; py:pytype=&quot;str&quot; xsi:type=&quot;xsd:string&quot;&gt;17&lt;/s&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p>It is your responsibility to fix the prefixes of attribute values if you
-choose to deviate from the standard prefixes.  A convenient way to do this for
-xsi:type attributes is to use the <tt class="docutils literal"><span class="pre">xsiannotate()</span></tt> utility:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">objectify</span><span class="o">.</span><span class="n">xsiannotate</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root xmlns:schema=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="go">  &lt;s xmlns:py=&quot;http://codespeak.net/lxml/objectify/pytype&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; py:pytype=&quot;str&quot; xsi:type=&quot;schema:string&quot;&gt;17&lt;/s&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p>Of course, it is discouraged to use different prefixes for one and the same
-namespace when building up an objectify tree.</p>
-</div>
-<div class="section" id="defining-additional-data-classes">
-<h3><a class="toc-backref" href="#id16">Defining additional data classes</a><a class="headerlink" href="#defining-additional-data-classes" title="Permalink to this headline">¶</a></h3>
-<p>You can plug additional data classes into objectify that will be used in
-exactly the same way as the predefined types.  Data classes can either inherit
-from <tt class="docutils literal"><span class="pre">ObjectifiedDataElement</span></tt> directly or from one of the specialised
-classes like <tt class="docutils literal"><span class="pre">NumberElement</span></tt> or <tt class="docutils literal"><span class="pre">BoolElement</span></tt>.  The numeric types require
-an initial call to the NumberElement method <tt class="docutils literal"><span class="pre">self._setValueParser(function)</span></tt>
-to set their type conversion function (string -&gt; numeric Python type).  This
-call should be placed into the element <tt class="docutils literal"><span class="pre">_init()</span></tt> method.</p>
-<p>The registration of data classes uses the <tt class="docutils literal"><span class="pre">PyType</span></tt> class:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">ChristmasDate</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedDataElement</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">call_santa</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;Ho ho ho!&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">checkChristmasDate</span><span class="p">(</span><span class="n">date_string</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="ow">not</span> <span class="n">date_string</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;24.12.&#39;</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">raise</span> <span class="ne">ValueError</span> <span class="c"># or TypeError</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">PyType</span><span class="p">(</span><span class="s">&#39;date&#39;</span><span class="p">,</span> <span class="n">checkChristmasDate</span><span class="p">,</span> <span class="n">ChristmasDate</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>The PyType constructor takes a string type name, an (optional) callable type
-check and the custom data class.  If a type check is provided it must accept a
-string as argument and raise ValueError or TypeError if it cannot handle the
-string value.</p>
-<p>PyTypes are used if an element carries a <tt class="docutils literal"><span class="pre">py:pytype</span></tt> attribute denoting its
-data type or, in absence of such an attribute, if the given type check callable
-does not raise a ValueError/TypeError exception when applied to the element
-text.</p>
-<p>If you want, you can also register this type under an XML Schema type name:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span><span class="o">.</span><span class="n">xmlSchemaTypes</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;date&quot;</span><span class="p">,)</span>
-</pre></div>
-</div>
-<p>XML Schema types will be considered if the element has an <tt class="docutils literal"><span class="pre">xsi:type</span></tt>
-attribute that specifies its data type.  The line above binds the XSD type
-<tt class="docutils literal"><span class="pre">date</span></tt> to the newly defined Python type.  Note that this must be done before
-the next step, which is to register the type.  Then you can use it:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span><span class="o">.</span><span class="n">register</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">&quot;&lt;root&gt;&lt;a&gt;24.12.2000&lt;/a&gt;&lt;b&gt;12.24.2000&lt;/b&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
-<span class="go">Ho ho ho!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">call_santa</span>
-</pre></div>
-</div>
-<p>If you need to specify dependencies between the type check functions, you can
-pass a sequence of type names through the <tt class="docutils literal"><span class="pre">before</span></tt> and <tt class="docutils literal"><span class="pre">after</span></tt> keyword
-arguments of the <tt class="docutils literal"><span class="pre">register()</span></tt> method.  The PyType will then try to register
-itself before or after the respective types, as long as they are currently
-registered.  Note that this only impacts the currently registered types at the
-time of registration.  Types that are registered later on will not care about
-the dependencies of already registered types.</p>
-<p>If you provide XML Schema type information, this will override the type check
-function defined above:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">   &lt;root xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;</span>
-<span class="gp">... </span><span class="s">     &lt;a xsi:type=&quot;date&quot;&gt;12.24.2000&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">   &#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="p">)</span>
-<span class="go">12.24.2000</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
-<span class="go">Ho ho ho!</span>
-</pre></div>
-</div>
-<p>To unregister a type, call its <tt class="docutils literal"><span class="pre">unregister()</span></tt> method:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
-<span class="go">Ho ho ho!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmas_type</span><span class="o">.</span><span class="n">unregister</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">call_santa</span>
-</pre></div>
-</div>
-<p>Be aware, though, that this does not immediately apply to elements to which
-there already is a Python reference.  Their Python class will only be changed
-after all references are gone and the Python object is garbage collected.</p>
-</div>
-<div class="section" id="advanced-element-class-lookup">
-<h3><a class="toc-backref" href="#id17">Advanced element class lookup</a><a class="headerlink" href="#advanced-element-class-lookup" title="Permalink to this headline">¶</a></h3>
-<p>In some cases, the normal data class setup is not enough.  Being based
-on <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>, however, <tt class="docutils literal"><span class="pre">lxml.objectify</span></tt> supports very
-fine-grained control over the Element classes used in a tree.  All you
-have to do is configure a different <a class="reference external" href="element_classes.html">class lookup</a> mechanism (or
-write one yourself).</p>
-<p>The first step for the setup is to create a new parser that builds
-objectify documents.  The objectify API is meant for data-centric XML
-(as opposed to document XML with mixed content).  Therefore, we
-configure the parser to let it remove whitespace-only text from the
-parsed document if it is not enclosed by an XML element.  Note that
-this alters the document infoset, so if you consider the removed
-spaces as data in your specific use case, you should go with a normal
-parser and just set the element class lookup.  Most applications,
-however, will work fine with the following setup:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">makeparser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>What this does internally, is:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifyElementClassLookup</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>If you want to change the lookup scheme, say, to get additional
-support for <a class="reference external" href="element_classes.html#namespace-class-lookup">namespace specific classes</a>, you can register the
-objectify lookup as a fallback of the namespace lookup.  In this case,
-however, you have to take care that the namespace classes inherit from
-<tt class="docutils literal"><span class="pre">objectify.ObjectifiedElement</span></tt>, not only from the normal
-<tt class="docutils literal"><span class="pre">lxml.etree.ElementBase</span></tt>, so that they support the <tt class="docutils literal"><span class="pre">objectify</span></tt>
-API.  The above setup code then becomes:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">(</span>
-<span class="gp">... </span>                  <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifyElementClassLookup</span><span class="p">()</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>See the documentation on <a class="reference external" href="element_classes.html">class lookup</a> schemes for more information.</p>
-</div>
-</div>
-<div class="section" id="what-is-different-from-lxml-etree">
-<h2><a class="toc-backref" href="#id18">What is different from lxml.etree?</a><a class="headerlink" href="#what-is-different-from-lxml-etree" title="Permalink to this headline">¶</a></h2>
-<p>Such a different Element API obviously implies some side effects to the normal
-behaviour of the rest of the API.</p>
-<ul class="simple">
-<li>len(&lt;element&gt;) returns the sibling count, not the number of children of
-&lt;element&gt;. You can retrieve the number of children with the
-<tt class="docutils literal"><span class="pre">countchildren()</span></tt> method.</li>
-<li>Iteration over elements does not yield the children, but the siblings.  You
-can access all children with the <tt class="docutils literal"><span class="pre">iterchildren()</span></tt> method on elements or
-retrieve a list by calling the <tt class="docutils literal"><span class="pre">getchildren()</span></tt> method.</li>
-<li>The find, findall and findtext methods require a different implementation
-based on ETXPath.  In <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>, they use a Python implementation based
-on the original iteration scheme.  This has the disadvantage that they may
-not be 100% backwards compatible, and the additional advantage that they now
-support any XPath expression.</li>
-</ul>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">lxml.objectify</a><ul>
-<li><a class="reference internal" href="#the-lxml-objectify-api">The lxml.objectify API</a><ul>
-<li><a class="reference internal" href="#creating-objectify-trees">Creating objectify trees</a></li>
-<li><a class="reference internal" href="#element-access-through-object-attributes">Element access through object attributes</a></li>
-<li><a class="reference internal" href="#tree-generation-with-the-e-factory">Tree generation with the E-factory</a></li>
-<li><a class="reference internal" href="#namespace-handling">Namespace handling</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#asserting-a-schema">Asserting a Schema</a></li>
-<li><a class="reference internal" href="#objectpath">ObjectPath</a></li>
-<li><a class="reference internal" href="#python-data-types">Python data types</a><ul>
-<li><a class="reference internal" href="#recursive-tree-dump">Recursive tree dump</a></li>
-<li><a class="reference internal" href="#recursive-string-representation-of-elements">Recursive string representation of elements</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#how-data-types-are-matched">How data types are matched</a><ul>
-<li><a class="reference internal" href="#type-annotations">Type annotations</a></li>
-<li><a class="reference internal" href="#xml-schema-datatype-annotation">XML Schema datatype annotation</a></li>
-<li><a class="reference internal" href="#the-dataelement-factory">The DataElement factory</a></li>
-<li><a class="reference internal" href="#defining-additional-data-classes">Defining additional data classes</a></li>
-<li><a class="reference internal" href="#advanced-element-class-lookup">Advanced element class lookup</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/objectify.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/parsing.html b/doc/sphinx/parsing.html
deleted file mode 100644 (file)
index bee052f..0000000
+++ /dev/null
@@ -1,814 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Parsing XML and HTML with lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="parsing-xml-and-html-with-lxml">
-<h1><a class="toc-backref" href="#id1">Parsing XML and HTML with lxml</a><a class="headerlink" href="#parsing-xml-and-html-with-lxml" title="Permalink to this headline">¶</a></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
-event-driven API (currently only for XML).</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#parsing-xml-and-html-with-lxml" id="id1">Parsing XML and HTML with lxml</a><ul>
-<li><a class="reference internal" href="#parsers" id="id2">Parsers</a><ul>
-<li><a class="reference internal" href="#parser-options" id="id3">Parser options</a></li>
-<li><a class="reference internal" href="#error-log" id="id4">Error log</a></li>
-<li><a class="reference internal" href="#parsing-html" id="id5">Parsing HTML</a></li>
-<li><a class="reference internal" href="#doctype-information" id="id6">Doctype information</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#the-target-parser-interface" id="id7">The target parser interface</a></li>
-<li><a class="reference internal" href="#the-feed-parser-interface" id="id8">The feed parser interface</a></li>
-<li><a class="reference internal" href="#iterparse-and-iterwalk" id="id9">iterparse and iterwalk</a><ul>
-<li><a class="reference internal" href="#selective-tag-events" id="id10">Selective tag events</a></li>
-<li><a class="reference internal" href="#comments-and-pis" id="id11">Comments and PIs</a></li>
-<li><a class="reference internal" href="#modifying-the-tree" id="id12">Modifying the tree</a></li>
-<li><a class="reference internal" href="#iterwalk" id="id13">iterwalk</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#python-unicode-strings" id="id14">Python unicode strings</a><ul>
-<li><a class="reference internal" href="#serialising-to-unicode-strings" id="id15">Serialising to Unicode strings</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<p>The usual setup procedure:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-</pre></div>
-</div>
-<div class="section" id="parsers">
-<h2><a class="toc-backref" href="#id2">Parsers</a><a class="headerlink" href="#parsers" title="Permalink to this headline">¶</a></h2>
-<p>Parsers are represented by parser objects.  There is support for parsing both
-XML and (broken) HTML.  Note that XHTML is best parsed as XML, parsing it with
-the HTML parser can lead to unexpected results.  Here is a simple example for
-parsing XML from an in-memory string:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&lt;a xmlns=&quot;test&quot;&gt;&lt;b xmlns=&quot;test&quot;/&gt;&lt;/a&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;a xmlns=&quot;test&quot;&gt;&lt;b xmlns=&quot;test&quot;/&gt;&lt;/a&gt;&#39;</span>
-</pre></div>
-</div>
-<p>To read from a file or file-like object, you can use the <tt class="docutils literal"><span class="pre">parse()</span></tt> function,
-which returns an <tt class="docutils literal"><span class="pre">ElementTree</span></tt> object:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">())</span>
-<span class="go">b&#39;&lt;a xmlns=&quot;test&quot;&gt;&lt;b xmlns=&quot;test&quot;/&gt;&lt;/a&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Note how the <tt class="docutils literal"><span class="pre">parse()</span></tt> function reads from a file-like object here.  If
-parsing is done from a real file, it is more common (and also somewhat more
-efficient) to pass a filename:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;doc/test.xml&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>lxml can parse from a local file, an HTTP URL or an FTP URL.  It also
-auto-detects and reads gzip-compressed XML files (.gz).</p>
-<p>If you want to parse from memory and still provide a base URL for the document
-(e.g. to support relative paths in an XInclude), you can pass the <tt class="docutils literal"><span class="pre">base_url</span></tt>
-keyword argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">base_url</span><span class="o">=</span><span class="s">&quot;http://where.it/is/from.xml&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<div class="section" id="parser-options">
-<h3><a class="toc-backref" href="#id3">Parser options</a><a class="headerlink" href="#parser-options" title="Permalink to this headline">¶</a></h3>
-<p>The parsers accept a number of setup options as keyword arguments.  The above
-example is easily extended to clean up namespaces during parsing:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">ns_clean</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span>   <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">())</span>
-<span class="go">b&#39;&lt;a xmlns=&quot;test&quot;&gt;&lt;b/&gt;&lt;/a&gt;&#39;</span>
-</pre></div>
-</div>
-<p>The keyword arguments in the constructor are mainly based on the libxml2
-parser configuration.  A DTD will also be loaded if validation or attribute
-default values are requested.</p>
-<p>Available boolean keyword arguments:</p>
-<ul class="simple">
-<li>attribute_defaults - read the DTD (if referenced by the document) and add
-the default attributes from it</li>
-<li>dtd_validation - validate while parsing (if a DTD was referenced)</li>
-<li>load_dtd - load and parse the DTD while parsing (no validation is performed)</li>
-<li>no_network - prevent network access when looking up external
-documents (on by default)</li>
-<li>ns_clean - try to clean up redundant namespace declarations</li>
-<li>recover - try hard to parse through broken XML</li>
-<li>remove_blank_text - discard blank text nodes between tags (best used
-together with a DTD)</li>
-<li>remove_comments - discard comments</li>
-<li>remove_pis - discard processing instructions</li>
-<li>strip_cdata - replace CDATA sections by normal text content (on by
-default)</li>
-<li>resolve_entities - replace entities by their text value (on by
-default)</li>
-<li>huge_tree - disable security restrictions and support very deep trees
-and very long text content (only affects libxml2 2.7+)</li>
-<li>compact - use compact storage for short text content (on by default)</li>
-</ul>
-<p>Other keyword arguments:</p>
-<ul class="simple">
-<li>encoding - override the document encoding</li>
-<li>target - a parser target object that will receive the parse events
-(see <a class="reference internal" href="#the-target-parser-interface">The target parser interface</a>)</li>
-<li>schema   - an XMLSchema to validate against (see <a class="reference external" href="validation.html#xmlschema">validation</a>)</li>
-</ul>
-</div>
-<div class="section" id="error-log">
-<h3><a class="toc-backref" href="#id4">Error log</a><a class="headerlink" href="#error-log" title="Permalink to this headline">¶</a></h3>
-<p>Parsers have an <tt class="docutils literal"><span class="pre">error_log</span></tt> property that lists the errors and
-warnings of the last parser run:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">error_log</span><span class="p">))</span>
-<span class="go">0</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;/b&gt;&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XMLSyntaxError: Opening and ending tag mismatch</span>: <span class="n">root line 1 and b, line 1, column 11</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">error_log</span><span class="p">))</span>
-<span class="go">1</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">error</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">error_log</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
-<span class="go">Opening and ending tag mismatch: root line 1 and b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">line</span><span class="p">)</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">column</span><span class="p">)</span>
-<span class="go">11</span>
-</pre></div>
-</div>
-<p>Each entry in the log has the following properties:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">message</span></tt>: the message text</li>
-<li><tt class="docutils literal"><span class="pre">domain</span></tt>: the domain ID (see the lxml.etree.ErrorDomains class)</li>
-<li><tt class="docutils literal"><span class="pre">type</span></tt>: the message type ID (see the lxml.etree.ErrorTypes class)</li>
-<li><tt class="docutils literal"><span class="pre">level</span></tt>: the log level ID (see the lxml.etree.ErrorLevels class)</li>
-<li><tt class="docutils literal"><span class="pre">line</span></tt>: the line at which the message originated (if applicable)</li>
-<li><tt class="docutils literal"><span class="pre">column</span></tt>: the character column at which the message originated (if applicable)</li>
-<li><tt class="docutils literal"><span class="pre">filename</span></tt>: the name of the file in which the message originated (if applicable)</li>
-</ul>
-<p>For convenience, there are also three properties that provide readable
-names for the ID values:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">domain_name</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">type_name</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">level_name</span></tt></li>
-</ul>
-<p>To filter for a specific kind of message, use the different
-<tt class="docutils literal"><span class="pre">filter_*()</span></tt> methods on the error log (see the
-lxml.etree._ListErrorLog class).</p>
-</div>
-<div class="section" id="parsing-html">
-<h3><a class="toc-backref" href="#id5">Parsing HTML</a><a class="headerlink" href="#parsing-html" title="Permalink to this headline">¶</a></h3>
-<p>HTML parsing is similarly simple.  The parsers have a <tt class="docutils literal"><span class="pre">recover</span></tt>
-keyword argument that the HTMLParser sets by default.  It lets libxml2
-try its best to return a valid HTML tree with all content it can
-manage to parse.  It will not raise an exception on parser errors.
-You should use libxml2 version 2.6.21 or newer to take advantage of
-this feature.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">broken_html</span> <span class="o">=</span> <span class="s">&quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;body&gt;&lt;h1&gt;page title&lt;/h3&gt;&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">HTMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span>   <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">broken_html</span><span class="p">),</span> <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span>
-<span class="gp">... </span>                        <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">    &lt;title&gt;test&lt;/title&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;h1&gt;page title&lt;/h1&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>Lxml has an HTML function, similar to the XML shortcut known from
-ElementTree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">HTML</span><span class="p">(</span><span class="n">broken_html</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">    &lt;title&gt;test&lt;/title&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;h1&gt;page title&lt;/h1&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>The support for parsing broken HTML depends entirely on libxml2&#8217;s recovery
-algorithm.  It is <em>not</em> the fault of lxml if you find documents that are so
-heavily broken that the parser cannot handle them.  There is also no guarantee
-that the resulting tree will contain all data from the original document.  The
-parser may have to drop seriously broken parts when struggling to keep
-parsing.  Especially misplaced meta tags can suffer from this, which may lead
-to encoding problems.</p>
-<p>Note that the result is a valid HTML tree, but it may not be a
-well-formed XML tree.  For example, XML forbids double hyphens in
-comments, which the HTML parser will happily accept in recovery mode.
-Therefore, if your goal is to serialise an HTML document as an
-XML/XHTML document after parsing, you may have to apply some manual
-preprocessing first.</p>
-<p>Also note that the HTML parser is meant to parse HTML documents.  For
-XHTML documents, use the XML parser, which is namespace aware.</p>
-</div>
-<div class="section" id="doctype-information">
-<h3><a class="toc-backref" href="#id6">Doctype information</a><a class="headerlink" href="#doctype-information" title="Permalink to this headline">¶</a></h3>
-<p>The use of the libxml2 parsers makes some additional information available at
-the API level.  Currently, ElementTree objects can access the DOCTYPE
-information provided by a parsed document, as well as the XML version and the
-original encoding:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">pub_id</span>  <span class="o">=</span> <span class="s">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sys_url</span> <span class="o">=</span> <span class="s">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doctype_string</span> <span class="o">=</span> <span class="s">&#39;&lt;!DOCTYPE html PUBLIC &quot;</span><span class="si">%s</span><span class="s">&quot; &quot;</span><span class="si">%s</span><span class="s">&quot;&gt;&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">pub_id</span><span class="p">,</span> <span class="n">sys_url</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xml_header</span> <span class="o">=</span> <span class="s">&#39;&lt;?xml version=&quot;1.0&quot; encoding=&quot;ascii&quot;?&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">xml_header</span> <span class="o">+</span> <span class="n">doctype_string</span> <span class="o">+</span> <span class="s">&#39;&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xhtml</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">docinfo</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">docinfo</span><span class="o">.</span><span class="n">public_id</span><span class="p">)</span>
-<span class="go">-//W3C//DTD XHTML 1.0 Transitional//EN</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">docinfo</span><span class="o">.</span><span class="n">system_url</span><span class="p">)</span>
-<span class="go">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">docinfo</span><span class="o">.</span><span class="n">doctype</span> <span class="o">==</span> <span class="n">doctype_string</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">docinfo</span><span class="o">.</span><span class="n">xml_version</span><span class="p">)</span>
-<span class="go">1.0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">docinfo</span><span class="o">.</span><span class="n">encoding</span><span class="p">)</span>
-<span class="go">ascii</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="the-target-parser-interface">
-<h2><a class="toc-backref" href="#id7">The target parser interface</a><a class="headerlink" href="#the-target-parser-interface" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">As in ElementTree</a>, and similar to a SAX event handler, you can pass
-a target object to the parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">EchoTarget</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;start </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;end </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;data </span><span class="si">%r</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">data</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;comment </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;close&quot;</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">&quot;closed!&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">EchoTarget</span><span class="p">())</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>
-<span class="go">start element {}</span>
-<span class="go">data u&#39;some&#39;</span>
-<span class="go">comment comment</span>
-<span class="go">data u&#39;text&#39;</span>
-<span class="go">end element</span>
-<span class="go">close</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">closed!</span>
-</pre></div>
-</div>
-<p>It is important for the <tt class="docutils literal"><span class="pre">.close()</span></tt> method to reset the parser target
-to a usable state, so that you can reuse the parser as often as you
-like:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>
-<span class="go">start element {}</span>
-<span class="go">data u&#39;some&#39;</span>
-<span class="go">comment comment</span>
-<span class="go">data u&#39;text&#39;</span>
-<span class="go">end element</span>
-<span class="go">close</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">closed!</span>
-</pre></div>
-</div>
-<p>Starting with lxml 2.3, the <tt class="docutils literal"><span class="pre">.close()</span></tt> method will also be called in
-the error case.  This diverges from the behaviour of ElementTree, but
-allows target objects to clean up their state in all situations, so
-that the parser can reuse them afterwards.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">CollectorTarget</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;start </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;end </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">tag</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;data </span><span class="si">%r</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">data</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;comment </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;close&quot;</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="s">&quot;closed!&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">CollectorTarget</span><span class="p">())</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;element&gt;some&lt;/error&gt;&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>        
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Opening and ending tag mismatch...</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">target</span><span class="o">.</span><span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
-<span class="go">start element {}</span>
-<span class="go">data u&#39;some&#39;</span>
-<span class="go">close</span>
-</pre></div>
-</div>
-<p>Note that the parser does <em>not</em> build a tree when using a parser
-target.  The result of the parser run is whatever the target object
-returns from its <tt class="docutils literal"><span class="pre">.close()</span></tt> method.  If you want to return an XML
-tree here, you have to create it programmatically in the target
-object.  An example for a parser target that builds a tree is the
-<tt class="docutils literal"><span class="pre">TreeBuilder</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">TreeBuilder</span><span class="p">())</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;element&gt;some&lt;!--comment--&gt;text&lt;/element&gt;&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">element</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">comment</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-feed-parser-interface">
-<h2><a class="toc-backref" href="#id8">The feed parser interface</a><a class="headerlink" href="#the-feed-parser-interface" title="Permalink to this headline">¶</a></h2>
-<p>Since lxml 2.0, the parsers have a feed parser interface that is
-compatible to the <a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">ElementTree parsers</a>.  You can use it to feed data
-into the parser in a controlled step-by-step way.</p>
-<p>In lxml.etree, you can use both interfaces to a parser at the same
-time: the <tt class="docutils literal"><span class="pre">parse()</span></tt> or <tt class="docutils literal"><span class="pre">XML()</span></tt> functions, and the feed parser
-interface.  Both are independent and will not conflict (except if used
-in conjunction with a parser target object as described above).</p>
-<p>To start parsing with a feed parser, just call its <tt class="docutils literal"><span class="pre">feed()</span></tt> method
-to feed it some data.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;&lt;?xml versio&#39;</span><span class="p">,</span> <span class="s">&#39;n=&quot;1.0&quot;?&#39;</span><span class="p">,</span> <span class="s">&#39;&gt;&lt;roo&#39;</span><span class="p">,</span> <span class="s">&#39;t&gt;&lt;a&#39;</span><span class="p">,</span> <span class="s">&#39;/&gt;&lt;/root&gt;&#39;</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>When you are done parsing, you <strong>must</strong> call the <tt class="docutils literal"><span class="pre">close()</span></tt> method to
-retrieve the root Element of the parse result document, and to unlock the
-parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">a</span>
-</pre></div>
-</div>
-<p>If you do not call <tt class="docutils literal"><span class="pre">close()</span></tt>, the parser will stay locked and
-subsequent feeds will keep appending data, usually resulting in a non
-well-formed document and an unexpected parser error.  So make sure you
-always close the parser after use, also in the exception case.</p>
-<p>Another way of achieving the same step-by-step parsing is by writing your own
-file-like object that returns a chunk of data on each <tt class="docutils literal"><span class="pre">read()</span></tt> call.  Where
-the feed parser interface allows you to actively pass data chunks into the
-parser, a file-like object passively responds to <tt class="docutils literal"><span class="pre">read()</span></tt> requests of the
-parser itself.  Depending on the data source, either way may be more natural.</p>
-<p>Note that the feed parser has its own error log called
-<tt class="docutils literal"><span class="pre">feed_error_log</span></tt>.  Errors in the feed parser do not show up in the
-normal <tt class="docutils literal"><span class="pre">error_log</span></tt> and vice versa.</p>
-<p>You can also combine the feed parser interface with the target parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span> <span class="o">=</span> <span class="n">EchoTarget</span><span class="p">())</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;&lt;eleme&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;nt&gt;some text&lt;/elem&quot;</span><span class="p">)</span>
-<span class="go">start element {}</span>
-<span class="go">data u&#39;some text&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;ent&gt;&quot;</span><span class="p">)</span>
-<span class="go">end element</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-<span class="go">close</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">closed!</span>
-</pre></div>
-</div>
-<p>Again, this prevents the automatic creation of an XML tree and leaves
-all the event handling to the target object.  The <tt class="docutils literal"><span class="pre">close()</span></tt> method
-of the parser forwards the return value of the target&#8217;s <tt class="docutils literal"><span class="pre">close()</span></tt>
-method.</p>
-</div>
-<div class="section" id="iterparse-and-iterwalk">
-<h2><a class="toc-backref" href="#id9">iterparse and iterwalk</a><a class="headerlink" href="#iterparse-and-iterwalk" title="Permalink to this headline">¶</a></h2>
-<p>As known from ElementTree, the <tt class="docutils literal"><span class="pre">iterparse()</span></tt> utility function
-returns an iterator that generates parser events for an XML file (or
-file-like object), while building the tree.  The values are tuples
-<tt class="docutils literal"><span class="pre">(event-type,</span> <span class="pre">object)</span></tt>.  The event types supported by ElementTree
-and lxml.etree are the strings &#8216;start&#8217;, &#8216;end&#8217;, &#8216;start-ns&#8217; and
-&#8216;end-ns&#8217;.</p>
-<p>The &#8216;start&#8217; and &#8216;end&#8217; events represent opening and closing elements.
-They are accompanied by the respective Element instance.  By default,
-only &#8216;end&#8217; events are generated:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;element key=&#39;value&#39;&gt;text&lt;/element&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;element&gt;text&lt;/element&gt;tail</span>
-<span class="gp">... </span><span class="s">  &lt;empty-element xmlns=&quot;http://testns/&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">end: element</span>
-<span class="go">end: element</span>
-<span class="go">end: {http://testns/}empty-element</span>
-<span class="go">end: root</span>
-</pre></div>
-</div>
-<p>The resulting tree is available through the <tt class="docutils literal"><span class="pre">root</span></tt> property of the iterator:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">context</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;root&#39;</span>
-</pre></div>
-</div>
-<p>The other event types can be activated with the <tt class="docutils literal"><span class="pre">events</span></tt> keyword argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">events</span><span class="o">=</span><span class="n">events</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">start: root</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start: {http://testns/}empty-element</span>
-<span class="go">end: {http://testns/}empty-element</span>
-<span class="go">end: root</span>
-</pre></div>
-</div>
-<p>The &#8216;start-ns&#8217; and &#8216;end-ns&#8217; events notify about namespace
-declarations.  They do not come with Elements.  Instead, the value of
-the &#8216;start-ns&#8217; event is a tuple <tt class="docutils literal"><span class="pre">(prefix,</span> <span class="pre">namespaceURI)</span></tt> that
-designates the beginning of a prefix-namespace mapping.  The
-corresponding <tt class="docutils literal"><span class="pre">end-ns</span></tt> event does not have a value (None).  It is
-common practice to use a list as namespace stack and pop the last
-entry on the &#8216;end-ns&#8217; event.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">xml</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;element key=&#39;value&#39;&gt;text&lt;/element&gt;</span>
-<span class="go">  &lt;element&gt;text&lt;/element&gt;tail</span>
-<span class="go">  &lt;empty-element xmlns=&quot;http://testns/&quot; /&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">,</span> <span class="s">&quot;start-ns&quot;</span><span class="p">,</span> <span class="s">&quot;end-ns&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">events</span><span class="o">=</span><span class="n">events</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">action</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;start&#39;</span><span class="p">,</span> <span class="s">&#39;end&#39;</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="s">&#39;start-ns&#39;</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">else</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="n">action</span><span class="p">)</span>
-<span class="go">start: root</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start-ns: (&#39;&#39;, &#39;http://testns/&#39;)</span>
-<span class="go">start: {http://testns/}empty-element</span>
-<span class="go">end: {http://testns/}empty-element</span>
-<span class="go">end-ns</span>
-<span class="go">end: root</span>
-</pre></div>
-</div>
-<div class="section" id="selective-tag-events">
-<h3><a class="toc-backref" href="#id10">Selective tag events</a><a class="headerlink" href="#selective-tag-events" title="Permalink to this headline">¶</a></h3>
-<p>As an extension over ElementTree, lxml.etree accepts a <tt class="docutils literal"><span class="pre">tag</span></tt> keyword
-argument just like <tt class="docutils literal"><span class="pre">element.iter(tag)</span></tt>.  This restricts events to a
-specific tag or namespace:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s">&quot;element&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">end: element</span>
-<span class="go">end: element</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">events</span><span class="o">=</span><span class="n">events</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s">&quot;{http://testns/}*&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">start: {http://testns/}empty-element</span>
-<span class="go">end: {http://testns/}empty-element</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="comments-and-pis">
-<h3><a class="toc-backref" href="#id11">Comments and PIs</a><a class="headerlink" href="#comments-and-pis" title="Permalink to this headline">¶</a></h3>
-<p>As an extension over ElementTree, the <tt class="docutils literal"><span class="pre">iterparse()</span></tt> function in
-lxml.etree also supports the event types &#8216;comment&#8217; and &#8216;pi&#8217; for the
-respective XML structures.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">commented_xml</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;?some pi ?&gt;</span>
-<span class="gp">... </span><span class="s">&lt;!-- a comment --&gt;</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;element key=&#39;value&#39;&gt;text&lt;/element&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;!-- another comment --&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;element&gt;text&lt;/element&gt;tail</span>
-<span class="gp">... </span><span class="s">  &lt;empty-element xmlns=&quot;http://testns/&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">,</span> <span class="s">&quot;comment&quot;</span><span class="p">,</span> <span class="s">&quot;pi&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">commented_xml</span><span class="p">),</span> <span class="n">events</span><span class="o">=</span><span class="n">events</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">action</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;start&#39;</span><span class="p">,</span> <span class="s">&#39;end&#39;</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="s">&#39;pi&#39;</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: -</span><span class="si">%s</span><span class="s">=</span><span class="si">%s</span><span class="s">-&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">target</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">else</span><span class="p">:</span> <span class="c"># &#39;comment&#39;</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: -</span><span class="si">%s</span><span class="s">-&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">pi: -some=pi -</span>
-<span class="go">comment: - a comment -</span>
-<span class="go">start: root</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">comment: - another comment -</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start: {http://testns/}empty-element</span>
-<span class="go">end: {http://testns/}empty-element</span>
-<span class="go">end: root</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="modifying-the-tree">
-<h3><a class="toc-backref" href="#id12">Modifying the tree</a><a class="headerlink" href="#modifying-the-tree" title="Permalink to this headline">¶</a></h3>
-<p>You can modify the element and its descendants when handling the &#8216;end&#8217; event.
-To save memory, for example, you can remove subtrees that are no longer
-needed:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">elem</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="n">elem</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
-<span class="go">0</span>
-<span class="go">0</span>
-<span class="go">0</span>
-<span class="go">3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">getchildren</span><span class="p">()</span>
-<span class="go">[]</span>
-</pre></div>
-</div>
-<p><strong>WARNING</strong>: During the &#8216;start&#8217; event, any content of the element,
-such as the descendants, following siblings or text, is not yet
-available and should not be accessed.  Only attributes are guaranteed
-to be set.  During the &#8216;end&#8217; event, the element and its descendants
-can be freely modified, but its following siblings should not be
-accessed.  During either of the two events, you <strong>must not</strong> modify or
-move the ancestors (parents) of the current element.  You should also
-avoid moving or discarding the element itself.  The golden rule is: do
-not touch anything that will have to be touched again by the parser
-later on.</p>
-<p>If you have elements with a long list of children in your XML file and want to
-save more memory during parsing, you can clean up the preceding siblings of
-the current element:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">)):</span>
-<span class="gp">... </span>    <span class="c"># ... do something with the element</span>
-<span class="gp">... </span>    <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>                 <span class="c"># clean up children</span>
-<span class="gp">... </span>    <span class="k">while</span> <span class="n">element</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">del</span> <span class="n">element</span><span class="o">.</span><span class="n">getparent</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>  <span class="c"># clean up preceding siblings</span>
-</pre></div>
-</div>
-<p>The <tt class="docutils literal"><span class="pre">while</span></tt> loop deletes multiple siblings in a row.  This is only necessary
-if you skipped over some of them using the <tt class="docutils literal"><span class="pre">tag</span></tt> keyword argument.
-Otherwise, a simple <tt class="docutils literal"><span class="pre">if</span></tt> should do.  The more selective your tag is,
-however, the more thought you will have to put into finding the right way to
-clean up the elements that were skipped.  Therefore, it is sometimes easier to
-traverse all elements and do the tag selection by hand in the event handler
-code.</p>
-</div>
-<div class="section" id="iterwalk">
-<h3><a class="toc-backref" href="#id13">iterwalk</a><a class="headerlink" href="#iterwalk" title="Permalink to this headline">¶</a></h3>
-<p>A second extension over ElementTree is the <tt class="docutils literal"><span class="pre">iterwalk()</span></tt> function.  It
-behaves exactly like <tt class="docutils literal"><span class="pre">iterparse()</span></tt>, but works on Elements and ElementTrees:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterwalk</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="n">root</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s">&quot;element&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="n">f</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s">&quot;element&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">action</span><span class="p">,</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-<span class="go">start: element</span>
-<span class="go">end: element</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="python-unicode-strings">
-<h2><a class="toc-backref" href="#id14">Python unicode strings</a><a class="headerlink" href="#python-unicode-strings" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree has broader support for Python unicode strings than the ElementTree
-library.  First of all, where ElementTree would raise an exception, the
-parsers in lxml.etree can handle unicode strings straight away.  This is most
-helpful for XML snippets embedded in source code using the <tt class="docutils literal"><span class="pre">XML()</span></tt>
-function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">uxml</span> <span class="o">=</span> <span class="s">u&#39;&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s"> + </span><span class="se">\uf8d2</span><span class="s"> &lt;/test&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">uxml</span>
-<span class="go">u&#39;&lt;test&gt; \uf8d1 + \uf8d2 &lt;/test&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">uxml</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This requires, however, that unicode strings do not specify a conflicting
-encoding themselves and thus lie about their real encoding:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s">u&#39;&lt;?xml version=&quot;1.0&quot; encoding=&quot;ASCII&quot;?&gt;</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="n">uxml</span> <span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">ValueError</span>: <span class="n">Unicode strings with encoding declaration are not supported.</span>
-</pre></div>
-</div>
-<p>Similarly, you will get errors when you try the same with HTML data in a
-unicode string that specifies a charset in a meta tag of the header.  You
-should generally avoid converting XML/HTML data to unicode before passing it
-into the parsers.  It is both slower and error prone.</p>
-<div class="section" id="serialising-to-unicode-strings">
-<h3><a class="toc-backref" href="#id15">Serialising to Unicode strings</a><a class="headerlink" href="#serialising-to-unicode-strings" title="Permalink to this headline">¶</a></h3>
-<p>To serialize the result, you would normally use the <tt class="docutils literal"><span class="pre">tostring()</span></tt>
-module function, which serializes to plain ASCII by default or a
-number of other byte encodings if asked for:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;test&gt; &amp;#63697; + &amp;#63698; &lt;/test&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&#39;UTF-8&#39;</span><span class="p">,</span> <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="go">b&#39;&lt;test&gt; \xef\xa3\x91 + \xef\xa3\x92 &lt;/test&gt;&#39;</span>
-</pre></div>
-</div>
-<p>As an extension, lxml.etree recognises the unicode type as an argument to the
-encoding parameter to build a Python unicode representation of a tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="go">u&#39;&lt;test&gt; \uf8d1 + \uf8d2 &lt;/test&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">el</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;test&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="go">u&#39;&lt;test/&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">subel</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="s">&quot;subtest&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">el</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="go">u&#39;&lt;test&gt;&lt;subtest/&gt;&lt;/test&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">)</span>
-<span class="go">u&#39;&lt;test&gt;&lt;subtest/&gt;&lt;/test&gt;&#39;</span>
-</pre></div>
-</div>
-<p>The result of <tt class="docutils literal"><span class="pre">tostring(encoding=unicode)</span></tt> can be treated like any
-other Python unicode string and then passed back into the parsers.
-However, if you want to save the result to a file or pass it over the
-network, you should use <tt class="docutils literal"><span class="pre">write()</span></tt> or <tt class="docutils literal"><span class="pre">tostring()</span></tt> with a byte
-encoding (typically UTF-8) to serialize the XML.  The main reason is
-that unicode strings returned by <tt class="docutils literal"><span class="pre">tostring(encoding=unicode)</span></tt> are
-not byte streams and they never have an XML declaration to specify
-their encoding.  These strings are most likely not parsable by other
-XML libraries.</p>
-<p>For normal byte encodings, the <tt class="docutils literal"><span class="pre">tostring()</span></tt> function automatically
-adds a declaration as needed that reflects the encoding of the
-returned string.  This makes it possible for other parsers to
-correctly parse the XML byte stream.  Note that using <tt class="docutils literal"><span class="pre">tostring()</span></tt>
-with UTF-8 is also considerably faster in most cases.</p>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Parsing XML and HTML with lxml</a><ul>
-<li><a class="reference internal" href="#parsers">Parsers</a><ul>
-<li><a class="reference internal" href="#parser-options">Parser options</a></li>
-<li><a class="reference internal" href="#error-log">Error log</a></li>
-<li><a class="reference internal" href="#parsing-html">Parsing HTML</a></li>
-<li><a class="reference internal" href="#doctype-information">Doctype information</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#the-target-parser-interface">The target parser interface</a></li>
-<li><a class="reference internal" href="#the-feed-parser-interface">The feed parser interface</a></li>
-<li><a class="reference internal" href="#iterparse-and-iterwalk">iterparse and iterwalk</a><ul>
-<li><a class="reference internal" href="#selective-tag-events">Selective tag events</a></li>
-<li><a class="reference internal" href="#comments-and-pis">Comments and PIs</a></li>
-<li><a class="reference internal" href="#modifying-the-tree">Modifying the tree</a></li>
-<li><a class="reference internal" href="#iterwalk">iterwalk</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#python-unicode-strings">Python unicode strings</a><ul>
-<li><a class="reference internal" href="#serialising-to-unicode-strings">Serialising to Unicode strings</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/parsing.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/performance.html b/doc/sphinx/performance.html
deleted file mode 100644 (file)
index 6fe7aab..0000000
+++ /dev/null
@@ -1,835 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <meta content="Performance evaluation of lxml and ElementTree: fast operations, common pitfalls and optimisation hints." name="description" />
-<meta content="Python XML parser performance, XML processing, performance comparison, lxml performance, lxml.etree, lxml.objectify, benchmarks, ElementTree" name="keywords" />
-
-    <title>Benchmarks and Speed &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="benchmarks-and-speed">
-<h1><a class="toc-backref" href="#id1">Benchmarks and Speed</a><a class="headerlink" href="#benchmarks-and-speed" title="Permalink to this headline">¶</a></h1>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name">Author:</th><td class="field-body">Stefan Behnel</td>
-</tr>
-</tbody>
-</table>
-<p>lxml.etree is a very fast XML library.  Most of this is due to the
-speed of libxml2, e.g. the parser and serialiser, or the XPath engine.
-Other areas of lxml were specifically written for high performance in
-high-level operations, such as the tree iterators.</p>
-<p>On the other hand, the simplicity of lxml sometimes hides internal
-operations that are more costly than the API suggests.  If you are not
-aware of these cases, lxml may not always perform as you expect.  A
-common example in the Python world is the Python list type.  New users
-often expect it to be a linked list, while it actually is implemented
-as an array, which results in a completely different complexity for
-common operations.</p>
-<p>Similarly, the tree model of libxml2 is more complex than what lxml&#8217;s
-ElementTree API projects into Python space, so some operations may
-show unexpected performance.  Rest assured that most lxml users will
-not notice this in real life, as lxml is very fast in absolute
-numbers.  It is definitely fast enough for most applications, so lxml
-is probably somewhere between &#8216;fast enough&#8217; and &#8216;the best choice&#8217; for
-yours.  Read some <a class="reference external" href="http://permalink.gmane.org/gmane.comp.python.lxml.devel/3250">messages</a> from <a class="reference external" href="http://article.gmane.org/gmane.comp.python.lxml.devel/3246">happy</a> <a class="reference external" href="http://thread.gmane.org/gmane.comp.python.lxml.devel/3244/focus=3244">users</a> to see what we mean.</p>
-<p>This text describes where lxml.etree (abbreviated to &#8216;lxe&#8217;) excels, gives
-hints on some performance traps and compares the overall performance to the
-original <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a> (ET) and <a class="reference external" href="http://effbot.org/zone/celementtree.htm">cElementTree</a> (cET) libraries by Fredrik Lundh.
-The cElementTree library is a fast C-implementation of the original
-ElementTree.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#benchmarks-and-speed" id="id1">Benchmarks and Speed</a><ul>
-<li><a class="reference internal" href="#general-notes" id="id2">General notes</a></li>
-<li><a class="reference internal" href="#how-to-read-the-timings" id="id3">How to read the timings</a></li>
-<li><a class="reference internal" href="#parsing-and-serialising" id="id4">Parsing and Serialising</a></li>
-<li><a class="reference internal" href="#the-elementtree-api" id="id5">The ElementTree API</a><ul>
-<li><a class="reference internal" href="#child-access" id="id6">Child access</a></li>
-<li><a class="reference internal" href="#element-creation" id="id7">Element creation</a></li>
-<li><a class="reference internal" href="#merging-different-sources" id="id8">Merging different sources</a></li>
-<li><a class="reference internal" href="#deepcopy" id="id9">deepcopy</a></li>
-<li><a class="reference internal" href="#tree-traversal" id="id10">Tree traversal</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xpath" id="id11">XPath</a></li>
-<li><a class="reference internal" href="#a-longer-example" id="id12">A longer example</a></li>
-<li><a class="reference internal" href="#lxml-objectify" id="id13">lxml.objectify</a><ul>
-<li><a class="reference internal" href="#objectpath" id="id14">ObjectPath</a></li>
-<li><a class="reference internal" href="#caching-elements" id="id15">Caching Elements</a></li>
-<li><a class="reference internal" href="#further-optimisations" id="id16">Further optimisations</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="general-notes">
-<h2><a class="toc-backref" href="#id2">General notes</a><a class="headerlink" href="#general-notes" title="Permalink to this headline">¶</a></h2>
-<p>First thing to say: there <em>is</em> an overhead involved in having a DOM-like C
-library mimic the ElementTree API.  As opposed to ElementTree, lxml has to
-generate Python representations of tree nodes on the fly when asked for them,
-and the internal tree structure of libxml2 results in a higher maintenance
-overhead than the simpler top-down structure of ElementTree.  What this means
-is: the more of your code runs in Python, the less you can benefit from the
-speed of lxml and libxml2.  Note, however, that this is true for most
-performance critical Python applications.  No one would implement fourier
-transformations in pure Python when you can use NumPy.</p>
-<p>The up side then is that lxml provides powerful tools like tree iterators,
-XPath and XSLT, that can handle complex operations at the speed of C.  Their
-pythonic API in lxml makes them so flexible that most applications can easily
-benefit from them.</p>
-</div>
-<div class="section" id="how-to-read-the-timings">
-<h2><a class="toc-backref" href="#id3">How to read the timings</a><a class="headerlink" href="#how-to-read-the-timings" title="Permalink to this headline">¶</a></h2>
-<p>The statements made here are backed by the (micro-)benchmark scripts
-<a class="reference external" href="http://codespeak.net/svn/lxml/trunk/benchmark/bench_etree.py">bench_etree.py</a>, <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/benchmark/bench_xpath.py">bench_xpath.py</a> and <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/benchmark/bench_objectify.py">bench_objectify.py</a> that come with
-the lxml source distribution.  They are distributed under the same BSD license
-as lxml itself, and the lxml project would like to promote them as a general
-benchmarking suite for all ElementTree implementations.  New benchmarks are
-very easy to add as tiny test methods, so if you write a performance test for
-a specific part of the API yourself, please consider sending it to the lxml
-mailing list.</p>
-<p>The timings cited below compare lxml 2.3 (with libxml2 2.7.6) to the
-latest developer versions of ElementTree (1.3beta2) and cElementTree
-(1.0.6a3).  They were run single-threaded on a 2.5GHz 64bit Intel Core
-Duo machine under Ubuntu Linux 9.10 (Karmic).  The C libraries were
-compiled with the same platform specific optimisation flags.  The
-Python interpreter (2.6.4) was also manually compiled for the
-platform.  Note that many of the following ElementTree timings are
-therefore better then what a normal Python installation with the
-standard library (c)ElementTree modules would yield.</p>
-<p>The scripts run a number of simple tests on the different libraries, using
-different XML tree configurations: different tree sizes (T1-4), with or
-without attributes (-/A), with or without ASCII string or unicode text
-(-/S/U), and either against a tree or its serialised XML form (T/X).  In the
-result extracts cited below, T1 refers to a 3-level tree with many children at
-the third level, T2 is swapped around to have many children below the root
-element, T3 is a deep tree with few children at each level and T4 is a small
-tree, slightly broader than deep.  If repetition is involved, this usually
-means running the benchmark in a loop over all children of the tree root,
-otherwise, the operation is run on the root node (C/R).</p>
-<p>As an example, the character code <tt class="docutils literal"><span class="pre">(SATR</span> <span class="pre">T1)</span></tt> states that the benchmark was
-running for tree T1, with plain string text (S) and attributes (A).  It was
-run against the root element (R) in the tree structure of the data (T).</p>
-<p>Note that very small operations are repeated in integer loops to make them
-measurable.  It is therefore not always possible to compare the absolute
-timings of, say, a single access benchmark (which usually loops) and a &#8216;get
-all in one step&#8217; benchmark, which already takes enough time to be measurable
-and is therefore measured as is.  An example is the index access to a single
-child, which cannot be compared to the timings for <tt class="docutils literal"><span class="pre">getchildren()</span></tt>.  Take a
-look at the concrete benchmarks in the scripts to understand how the numbers
-compare.</p>
-</div>
-<div class="section" id="parsing-and-serialising">
-<h2><a class="toc-backref" href="#id4">Parsing and Serialising</a><a class="headerlink" href="#parsing-and-serialising" title="Permalink to this headline">¶</a></h2>
-<p>Serialisation is an area where lxml excels.  The reason is that it
-executes entirely at the C level, without any interaction with Python
-code.  The results are rather impressive, especially for UTF-8, which
-is native to libxml2.  While 20 to 40 times faster than (c)ElementTree
-1.2 (which is part of the standard library since Python 2.5), lxml is
-still more than 7 times as fast as the much improved ElementTree 1.3:</p>
-<div class="highlight-python"><pre>lxe: tostring_utf16  (S-TR T1)    9.8219 msec/pass
-cET: tostring_utf16  (S-TR T1)   88.7740 msec/pass
-ET : tostring_utf16  (S-TR T1)   99.6690 msec/pass
-
-lxe: tostring_utf16  (UATR T1)   10.3750 msec/pass
-cET: tostring_utf16  (UATR T1)   90.7581 msec/pass
-ET : tostring_utf16  (UATR T1)  102.3569 msec/pass
-
-lxe: tostring_utf16  (S-TR T2)   10.2711 msec/pass
-cET: tostring_utf16  (S-TR T2)   93.5340 msec/pass
-ET : tostring_utf16  (S-TR T2)  105.8500 msec/pass
-
-lxe: tostring_utf8   (S-TR T2)    7.1261 msec/pass
-cET: tostring_utf8   (S-TR T2)   93.4091 msec/pass
-ET : tostring_utf8   (S-TR T2)  105.5419 msec/pass
-
-lxe: tostring_utf8   (U-TR T3)    1.4591 msec/pass
-cET: tostring_utf8   (U-TR T3)   29.6180 msec/pass
-ET : tostring_utf8   (U-TR T3)   31.9080 msec/pass</pre>
-</div>
-<p>The same applies to plain text serialisation.  Note that the
-cElementTree version in the standard library does not currently
-support this, as it is a new feature in ET 1.3 and lxml.etree 2.0:</p>
-<div class="highlight-python"><pre>lxe: tostring_text_ascii     (S-TR T1)    1.9400 msec/pass
-cET: tostring_text_ascii     (S-TR T1)   41.6231 msec/pass
-ET : tostring_text_ascii     (S-TR T1)   52.7501 msec/pass
-
-lxe: tostring_text_ascii     (S-TR T3)    0.5331 msec/pass
-cET: tostring_text_ascii     (S-TR T3)   12.9712 msec/pass
-ET : tostring_text_ascii     (S-TR T3)   15.3620 msec/pass
-
-lxe: tostring_text_utf16     (S-TR T1)    3.2430 msec/pass
-cET: tostring_text_utf16     (S-TR T1)   41.9259 msec/pass
-ET : tostring_text_utf16     (S-TR T1)   53.4091 msec/pass
-
-lxe: tostring_text_utf16     (U-TR T1)    3.6838 msec/pass
-cET: tostring_text_utf16     (U-TR T1)   38.7859 msec/pass
-ET : tostring_text_utf16     (U-TR T1)   50.8440 msec/pass</pre>
-</div>
-<p>Unlike ElementTree, the <tt class="docutils literal"><span class="pre">tostring()</span></tt> function in lxml also supports
-serialisation to a Python unicode string object:</p>
-<div class="highlight-python"><pre>lxe: tostring_text_unicode   (S-TR T1)    2.4869 msec/pass
-lxe: tostring_text_unicode   (U-TR T1)    3.0370 msec/pass
-lxe: tostring_text_unicode   (S-TR T3)    0.6518 msec/pass
-lxe: tostring_text_unicode   (U-TR T3)    0.7300 msec/pass</pre>
-</div>
-<p>For parsing, lxml.etree and cElementTree compete for the medal.
-Depending on the input, either of the two can be faster.  The (c)ET
-libraries use a very thin layer on top of the expat parser, which is
-known to be very fast.  Here are some timings from the benchmarking
-suite:</p>
-<div class="highlight-python"><pre>lxe: parse_stringIO  (SAXR T1)   19.9990 msec/pass
-cET: parse_stringIO  (SAXR T1)    8.4970 msec/pass
-ET : parse_stringIO  (SAXR T1)  183.9781 msec/pass
-
-lxe: parse_stringIO  (S-XR T3)    2.0790 msec/pass
-cET: parse_stringIO  (S-XR T3)    2.7430 msec/pass
-ET : parse_stringIO  (S-XR T3)   47.4229 msec/pass
-
-lxe: parse_stringIO  (UAXR T3)   11.1630 msec/pass
-cET: parse_stringIO  (UAXR T3)   15.0940 msec/pass
-ET : parse_stringIO  (UAXR T3)   92.6890 msec/pass</pre>
-</div>
-<p>And another couple of timings <a class="reference external" href="http://svn.effbot.org/public/elementtree-1.3/benchmark.py">from a benchmark</a> that Fredrik Lundh
-<a class="reference external" href="http://effbot.org/zone/celementtree.htm#benchmarks">used to promote cElementTree</a>, comparing a number of different
-parsers.  First, parsing a 280KB XML file containing Shakespeare&#8217;s
-Hamlet:</p>
-<div class="highlight-python"><pre>lxml.etree.parse done in 0.005 seconds
-cElementTree.parse done in 0.012 seconds
-elementtree.ElementTree.parse done in 0.136 seconds
-elementtree.XMLTreeBuilder: 6636 nodes read in 0.243 seconds
-elementtree.SimpleXMLTreeBuilder: 6636 nodes read in 0.314 seconds
-elementtree.SgmlopXMLTreeBuilder: 6636 nodes read in 0.104 seconds
-minidom tree read in 0.137 seconds</pre>
-</div>
-<p>And a 3.4MB XML file containing the Old Testament:</p>
-<div class="highlight-python"><pre>lxml.etree.parse done in 0.031 seconds
-cElementTree.parse done in 0.039 seconds
-elementtree.ElementTree.parse done in 0.537 seconds
-elementtree.XMLTreeBuilder: 25317 nodes read in 0.577 seconds
-elementtree.SimpleXMLTreeBuilder: 25317 nodes read in 1.265 seconds
-elementtree.SgmlopXMLTreeBuilder: 25317 nodes read in 0.331 seconds
-minidom tree read in 0.643 seconds</pre>
-</div>
-<p>For plain parser performance, lxml.etree and cElementTree tend to stay
-rather close to each other, usually within a factor of two, with
-winners well distributed over both sides.  Similar timings can be
-observed for the <tt class="docutils literal"><span class="pre">iterparse()</span></tt> function:</p>
-<div class="highlight-python"><pre>lxe: iterparse_stringIO  (SAXR T1)   24.8621 msec/pass
-cET: iterparse_stringIO  (SAXR T1)   17.3280 msec/pass
-ET : iterparse_stringIO  (SAXR T1)  199.1270 msec/pass
-
-lxe: iterparse_stringIO  (UAXR T3)   12.3630 msec/pass
-cET: iterparse_stringIO  (UAXR T3)   17.5190 msec/pass
-ET : iterparse_stringIO  (UAXR T3)   95.8610 msec/pass</pre>
-</div>
-<p>However, if you benchmark the complete round-trip of a serialise-parse
-cycle, the numbers will look similar to these:</p>
-<div class="highlight-python"><pre>lxe: write_utf8_parse_stringIO  (S-TR T1)   27.5791 msec/pass
-cET: write_utf8_parse_stringIO  (S-TR T1)  158.9060 msec/pass
-ET : write_utf8_parse_stringIO  (S-TR T1)  347.8320 msec/pass
-
-lxe: write_utf8_parse_stringIO  (UATR T2)   34.4141 msec/pass
-cET: write_utf8_parse_stringIO  (UATR T2)  187.7041 msec/pass
-ET : write_utf8_parse_stringIO  (UATR T2)  388.9449 msec/pass
-
-lxe: write_utf8_parse_stringIO  (S-TR T3)    3.7861 msec/pass
-cET: write_utf8_parse_stringIO  (S-TR T3)   52.4600 msec/pass
-ET : write_utf8_parse_stringIO  (S-TR T3)  101.4550 msec/pass
-
-lxe: write_utf8_parse_stringIO  (SATR T4)    0.5522 msec/pass
-cET: write_utf8_parse_stringIO  (SATR T4)    3.8941 msec/pass
-ET : write_utf8_parse_stringIO  (SATR T4)    5.9431 msec/pass</pre>
-</div>
-<p>For applications that require a high parser throughput of large files,
-and that do little to no serialization, both cET and lxml.etree are a
-good choice.  The cET library is particularly fast for iterparse
-applications that extract small amounts of data or aggregate
-information from large XML data sets that do not fit into memory.  If
-it comes to round-trip performance, however, lxml is multiple times
-faster in total.  So, whenever the input documents are not
-considerably larger than the output, lxml is the clear winner.</p>
-<p>Again, note that the cET/ET timings are not based on the standard
-library versions in Python 2.6, but on vastly improved, unreleased
-developer versions.  Especially the serialiser in the standard library
-modules is several times slower than the benchmarked one, and at least
-20 times slower than the one in lxml.etree.</p>
-<p>Regarding HTML parsing, Ian Bicking has done some <a class="reference external" href="http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/">benchmarking on
-lxml&#8217;s HTML parser</a>, comparing it to a number of other famous HTML
-parser tools for Python.  lxml wins this contest by quite a length.
-To give an idea, the numbers suggest that lxml.html can run a couple
-of parse-serialise cycles in the time that other tools need for
-parsing alone.  The comparison even shows some very favourable results
-regarding memory consumption.</p>
-<p>Liza Daly has written an article that presents a couple of tweaks to
-get the most out of lxml&#8217;s parser for very large XML documents.  She
-quite favourably positions <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> as a tool for
-<a class="reference external" href="http://www.ibm.com/developerworks/xml/library/x-hiperfparse/">high-performance XML parsing</a>.</p>
-<p>Finally, <a class="reference external" href="http://www.xml.com/">xml.com</a> has a couple of publications about XML parser
-performance.  Farwick and Hafner have written two interesting articles
-that compare the parser of libxml2 to some major Java based XML
-parsers.  One deals with <a class="reference external" href="http://www.xml.com/lpt/a/1702">event-driven parser performance</a>, the other
-one presents <a class="reference external" href="http://www.xml.com/lpt/a/1703">benchmark results comparing DOM parsers</a>.  Both
-comparisons suggest that libxml2&#8217;s parser performance is largely
-superiour to all commonly used Java parsers in almost all cases.  Note
-that the C parser benchmark results are based on <a class="reference external" href="http://xmlbench.sourceforge.net/">xmlbench</a>, which uses
-a simpler setup for libxml2 than lxml does.</p>
-</div>
-<div class="section" id="the-elementtree-api">
-<h2><a class="toc-backref" href="#id5">The ElementTree API</a><a class="headerlink" href="#the-elementtree-api" title="Permalink to this headline">¶</a></h2>
-<p>Since all three libraries implement the same API, their performance is
-easy to compare in this area.  A major disadvantage for lxml&#8217;s
-performance is the different tree model that underlies libxml2.  It
-allows lxml to provide parent pointers for elements and full XPath
-support, but also increases the overhead of tree building and
-restructuring.  This can be seen from the tree setup times of the
-benchmark (given in seconds):</p>
-<div class="highlight-python"><pre>lxe:       --     S-     U-     -A     SA     UA
-     T1: 0.0407 0.0470 0.0506 0.0396 0.0464 0.0504
-     T2: 0.0480 0.0557 0.0584 0.0520 0.0608 0.0627
-     T3: 0.0118 0.0132 0.0136 0.0319 0.0322 0.0319
-     T4: 0.0002 0.0002 0.0002 0.0006 0.0006 0.0006
-cET:       --     S-     U-     -A     SA     UA
-     T1: 0.0045 0.0043 0.0043 0.0045 0.0043 0.0043
-     T2: 0.0068 0.0069 0.0066 0.0078 0.0070 0.0069
-     T3: 0.0040 0.0040 0.0040 0.0050 0.0052 0.0067
-     T4: 0.0000 0.0000 0.0000 0.0001 0.0001 0.0001
-ET :       --     S-     U-     -A     SA     UA
-     T1: 0.0479 0.1051 0.1279 0.0487 0.1597 0.0484
-     T2: 0.1995 0.0553 0.2297 0.2550 0.0550 0.2881
-     T3: 0.0177 0.0169 0.0174 0.0185 0.2895 0.0189
-     T4: 0.0003 0.0002 0.0003 0.0003 0.0014 0.0003</pre>
-</div>
-<p>While lxml is still a lot faster than ET in most cases, cET can be
-several times faster than lxml here.  One of the reasons is that lxml
-must encode incoming string data and tag names into UTF-8, and
-additionally discard the created Python elements after their use, when
-they are no longer referenced.  ET and cET represent the tree itself
-through these objects, which reduces the overhead in creating them.</p>
-<div class="section" id="child-access">
-<h3><a class="toc-backref" href="#id6">Child access</a><a class="headerlink" href="#child-access" title="Permalink to this headline">¶</a></h3>
-<p>The same reason makes operations like collecting children as in
-<tt class="docutils literal"><span class="pre">list(element)</span></tt> more costly in lxml.  Where ET and cET can quickly
-create a shallow copy of their list of children, lxml has to create a
-Python object for each child and collect them in a list:</p>
-<div class="highlight-python"><pre>lxe: root_list_children        (--TR T1)    0.0079 msec/pass
-cET: root_list_children        (--TR T1)    0.0029 msec/pass
-ET : root_list_children        (--TR T1)    0.0100 msec/pass
-
-lxe: root_list_children        (--TR T2)    0.0849 msec/pass
-cET: root_list_children        (--TR T2)    0.0110 msec/pass
-ET : root_list_children        (--TR T2)    0.1481 msec/pass</pre>
-</div>
-<p>This handicap is also visible when accessing single children:</p>
-<div class="highlight-python"><pre>lxe: first_child               (--TR T2)    0.0699 msec/pass
-cET: first_child               (--TR T2)    0.0608 msec/pass
-ET : first_child               (--TR T2)    0.3419 msec/pass
-
-lxe: last_child                (--TR T1)    0.0710 msec/pass
-cET: last_child                (--TR T1)    0.0648 msec/pass
-ET : last_child                (--TR T1)    0.3309 msec/pass</pre>
-</div>
-<p>... unless you also add the time to find a child index in a bigger
-list.  ET and cET use Python lists here, which are based on arrays.
-The data structure used by libxml2 is a linked tree, and thus, a
-linked list of children:</p>
-<div class="highlight-python"><pre>lxe: middle_child              (--TR T1)    0.0989 msec/pass
-cET: middle_child              (--TR T1)    0.0598 msec/pass
-ET : middle_child              (--TR T1)    0.3390 msec/pass
-
-lxe: middle_child              (--TR T2)    2.7599 msec/pass
-cET: middle_child              (--TR T2)    0.0620 msec/pass
-ET : middle_child              (--TR T2)    0.3610 msec/pass</pre>
-</div>
-</div>
-<div class="section" id="element-creation">
-<h3><a class="toc-backref" href="#id7">Element creation</a><a class="headerlink" href="#element-creation" title="Permalink to this headline">¶</a></h3>
-<p>As opposed to ET, libxml2 has a notion of documents that each element must be
-in.  This results in a major performance difference for creating independent
-Elements that end up in independently created documents:</p>
-<div class="highlight-python"><pre>lxe: create_elements           (--TC T2)    1.1640 msec/pass
-cET: create_elements           (--TC T2)    0.0808 msec/pass
-ET : create_elements           (--TC T2)    0.5801 msec/pass</pre>
-</div>
-<p>Therefore, it is always preferable to create Elements for the document they
-are supposed to end up in, either as SubElements of an Element or using the
-explicit <tt class="docutils literal"><span class="pre">Element.makeelement()</span></tt> call:</p>
-<div class="highlight-python"><pre>lxe: makeelement               (--TC T2)    1.2751 msec/pass
-cET: makeelement               (--TC T2)    0.1469 msec/pass
-ET : makeelement               (--TC T2)    0.7451 msec/pass
-
-lxe: create_subelements        (--TC T2)    1.1470 msec/pass
-cET: create_subelements        (--TC T2)    0.1080 msec/pass
-ET : create_subelements        (--TC T2)    1.4369 msec/pass</pre>
-</div>
-<p>So, if the main performance bottleneck of an application is creating large XML
-trees in memory through calls to Element and SubElement, cET is the best
-choice.  Note, however, that the serialisation performance may even out this
-advantage, especially for smaller trees and trees with many attributes.</p>
-</div>
-<div class="section" id="merging-different-sources">
-<h3><a class="toc-backref" href="#id8">Merging different sources</a><a class="headerlink" href="#merging-different-sources" title="Permalink to this headline">¶</a></h3>
-<p>A critical action for lxml is moving elements between document contexts.  It
-requires lxml to do recursive adaptations throughout the moved tree structure.</p>
-<p>The following benchmark appends all root children of the second tree to the
-root of the first tree:</p>
-<div class="highlight-python"><pre>lxe: append_from_document      (--TR T1,T2)    2.0740 msec/pass
-cET: append_from_document      (--TR T1,T2)    0.1271 msec/pass
-ET : append_from_document      (--TR T1,T2)    0.4020 msec/pass
-
-lxe: append_from_document      (--TR T3,T4)    0.0229 msec/pass
-cET: append_from_document      (--TR T3,T4)    0.0088 msec/pass
-ET : append_from_document      (--TR T3,T4)    0.0291 msec/pass</pre>
-</div>
-<p>Although these are fairly small numbers compared to parsing, this easily shows
-the different performance classes for lxml and (c)ET.  Where the latter do not
-have to care about parent pointers and tree structures, lxml has to deep
-traverse the appended tree.  The performance difference therefore increases
-with the size of the tree that is moved.</p>
-<p>This difference is not always as visible, but applies to most parts of the
-API, like inserting newly created elements:</p>
-<div class="highlight-python"><pre>lxe: insert_from_document       (--TR T1,T2)    7.2598 msec/pass
-cET: insert_from_document       (--TR T1,T2)    0.1578 msec/pass
-ET : insert_from_document       (--TR T1,T2)    0.5150 msec/pass</pre>
-</div>
-<p>or replacing the child slice by a newly created element:</p>
-<div class="highlight-python"><pre>lxe: replace_children_element   (--TC T1)    0.1149 msec/pass
-cET: replace_children_element   (--TC T1)    0.0110 msec/pass
-ET : replace_children_element   (--TC T1)    0.0558 msec/pass</pre>
-</div>
-<p>as opposed to replacing the slice with an existing element from the
-same document:</p>
-<div class="highlight-python"><pre>lxe: replace_children           (--TC T1)    0.0091 msec/pass
-cET: replace_children           (--TC T1)    0.0060 msec/pass
-ET : replace_children           (--TC T1)    0.0188 msec/pass</pre>
-</div>
-<p>While these numbers are too small to provide a major performance
-impact in practice, you should keep this difference in mind when you
-merge very large trees.</p>
-</div>
-<div class="section" id="deepcopy">
-<h3><a class="toc-backref" href="#id9">deepcopy</a><a class="headerlink" href="#deepcopy" title="Permalink to this headline">¶</a></h3>
-<p>Deep copying a tree is fast in lxml:</p>
-<div class="highlight-python"><pre>lxe: deepcopy_all              (--TR T1)    5.0900 msec/pass
-cET: deepcopy_all              (--TR T1)   57.9181 msec/pass
-ET : deepcopy_all              (--TR T1)  499.1000 msec/pass
-
-lxe: deepcopy_all              (-ATR T2)    6.3980 msec/pass
-cET: deepcopy_all              (-ATR T2)   65.6390 msec/pass
-ET : deepcopy_all              (-ATR T2)  526.5379 msec/pass
-
-lxe: deepcopy_all              (S-TR T3)    1.4491 msec/pass
-cET: deepcopy_all              (S-TR T3)   14.7018 msec/pass
-ET : deepcopy_all              (S-TR T3)  123.5120 msec/pass</pre>
-</div>
-<p>So, for example, if you have a database-like scenario where you parse in a
-large tree and then search and copy independent subtrees from it for further
-processing, lxml is by far the best choice here.</p>
-</div>
-<div class="section" id="tree-traversal">
-<h3><a class="toc-backref" href="#id10">Tree traversal</a><a class="headerlink" href="#tree-traversal" title="Permalink to this headline">¶</a></h3>
-<p>Another area where lxml is very fast is iteration for tree traversal.  If your
-algorithms can benefit from step-by-step traversal of the XML tree and
-especially if few elements are of interest or the target element tag name is
-known, lxml is a good choice:</p>
-<div class="highlight-python"><pre>lxe: getiterator_all      (--TR T1)    1.6890 msec/pass
-cET: getiterator_all      (--TR T1)   23.8621 msec/pass
-ET : getiterator_all      (--TR T1)   11.1070 msec/pass
-
-lxe: getiterator_islice   (--TR T2)    0.0188 msec/pass
-cET: getiterator_islice   (--TR T2)    0.1841 msec/pass
-ET : getiterator_islice   (--TR T2)   11.7059 msec/pass
-
-lxe: getiterator_tag      (--TR T2)    0.0119 msec/pass
-cET: getiterator_tag      (--TR T2)    0.3560 msec/pass
-ET : getiterator_tag      (--TR T2)   10.6668 msec/pass
-
-lxe: getiterator_tag_all  (--TR T2)    0.2429 msec/pass
-cET: getiterator_tag_all  (--TR T2)   20.3710 msec/pass
-ET : getiterator_tag_all  (--TR T2)   10.6280 msec/pass</pre>
-</div>
-<p>This translates directly into similar timings for <tt class="docutils literal"><span class="pre">Element.findall()</span></tt>:</p>
-<div class="highlight-python"><pre>lxe: findall              (--TR T2)    2.4588 msec/pass
-cET: findall              (--TR T2)   24.1358 msec/pass
-ET : findall              (--TR T2)   13.0949 msec/pass
-
-lxe: findall              (--TR T3)    0.5939 msec/pass
-cET: findall              (--TR T3)    6.9802 msec/pass
-ET : findall              (--TR T3)    3.8991 msec/pass
-
-lxe: findall_tag          (--TR T2)    0.2789 msec/pass
-cET: findall_tag          (--TR T2)   20.5719 msec/pass
-ET : findall_tag          (--TR T2)   10.8678 msec/pass
-
-lxe: findall_tag          (--TR T3)    0.1638 msec/pass
-cET: findall_tag          (--TR T3)    5.0790 msec/pass
-ET : findall_tag          (--TR T3)    2.5120 msec/pass</pre>
-</div>
-<p>Note that all three libraries currently use the same Python
-implementation for <tt class="docutils literal"><span class="pre">.findall()</span></tt>, except for their native tree
-iterator (<tt class="docutils literal"><span class="pre">element.iter()</span></tt>).</p>
-</div>
-</div>
-<div class="section" id="xpath">
-<h2><a class="toc-backref" href="#id11">XPath</a><a class="headerlink" href="#xpath" title="Permalink to this headline">¶</a></h2>
-<p>The following timings are based on the benchmark script <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/benchmark/bench_xpath.py">bench_xpath.py</a>.</p>
-<p>This part of lxml does not have an equivalent in ElementTree.  However, lxml
-provides more than one way of accessing it and you should take care which part
-of the lxml API you use.  The most straight forward way is to call the
-<tt class="docutils literal"><span class="pre">xpath()</span></tt> method on an Element or ElementTree:</p>
-<div class="highlight-python"><pre>lxe: xpath_method         (--TC T1)    0.7598 msec/pass
-lxe: xpath_method         (--TC T2)   12.6798 msec/pass
-lxe: xpath_method         (--TC T3)    0.0758 msec/pass
-lxe: xpath_method         (--TC T4)    0.6182 msec/pass</pre>
-</div>
-<p>This is well suited for testing and when the XPath expressions are as diverse
-as the trees they are called on.  However, if you have a single XPath
-expression that you want to apply to a larger number of different elements,
-the <tt class="docutils literal"><span class="pre">XPath</span></tt> class is the most efficient way to do it:</p>
-<div class="highlight-python"><pre>lxe: xpath_class          (--TC T1)    0.2189 msec/pass
-lxe: xpath_class          (--TC T2)    1.4110 msec/pass
-lxe: xpath_class          (--TC T3)    0.0319 msec/pass
-lxe: xpath_class          (--TC T4)    0.0880 msec/pass</pre>
-</div>
-<p>Note that this still allows you to use variables in the expression, so you can
-parse it once and then adapt it through variables at call time.  In other
-cases, where you have a fixed Element or ElementTree and want to run different
-expressions on it, you should consider the <tt class="docutils literal"><span class="pre">XPathEvaluator</span></tt>:</p>
-<div class="highlight-python"><pre>lxe: xpath_element        (--TR T1)    0.1669 msec/pass
-lxe: xpath_element        (--TR T2)    6.9060 msec/pass
-lxe: xpath_element        (--TR T3)    0.0451 msec/pass
-lxe: xpath_element        (--TR T4)    0.1681 msec/pass</pre>
-</div>
-<p>While it looks slightly slower, creating an XPath object for each of the
-expressions generates a much higher overhead here:</p>
-<div class="highlight-python"><pre>lxe: xpath_class_repeat   (--TC T1)    0.7451 msec/pass
-lxe: xpath_class_repeat   (--TC T2)   12.2290 msec/pass
-lxe: xpath_class_repeat   (--TC T3)    0.0730 msec/pass
-lxe: xpath_class_repeat   (--TC T4)    0.5970 msec/pass</pre>
-</div>
-</div>
-<div class="section" id="a-longer-example">
-<h2><a class="toc-backref" href="#id12">A longer example</a><a class="headerlink" href="#a-longer-example" title="Permalink to this headline">¶</a></h2>
-<p>... based on lxml 1.3.</p>
-<p>A while ago, Uche Ogbuji posted a <a class="reference external" href="http://www.onlamp.com/pub/wlg/6291">benchmark proposal</a> that would
-read in a 3MB XML version of the <a class="reference external" href="http://www.ibiblio.org/bosak/xml/eg/religion.2.00.xml.zip">Old Testament</a> of the Bible and
-look for the word <em>begat</em> in all verses.  Apparently, it is contained
-in 120 out of almost 24000 verses.  This is easy to implement in
-ElementTree using <tt class="docutils literal"><span class="pre">findall()</span></tt>.  However, the fastest and most memory
-friendly way to do this is obviously <tt class="docutils literal"><span class="pre">iterparse()</span></tt>, as most of the
-data is not of any interest.</p>
-<p>Now, Uche&#8217;s original proposal was more or less the following:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">bench_ET</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">ElementTree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;ot.xml&quot;</span><span class="p">)</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&quot;//v&quot;</span><span class="p">):</span>
-        <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-        <span class="k">if</span> <span class="s">&#39;begat&#39;</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
-            <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
-    <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>which takes about one second on my machine today.  The faster <tt class="docutils literal"><span class="pre">iterparse()</span></tt>
-variant looks like this:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">bench_ET_iterparse</span><span class="p">():</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ElementTree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="s">&quot;ot.xml&quot;</span><span class="p">):</span>
-        <span class="k">if</span> <span class="n">v</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s">&#39;v&#39;</span><span class="p">:</span>
-            <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-            <span class="k">if</span> <span class="s">&#39;begat&#39;</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
-                <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
-        <span class="n">v</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
-    <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>The improvement is about 10%.  At the time I first tried (early 2006), lxml
-didn&#8217;t have <tt class="docutils literal"><span class="pre">iterparse()</span></tt> support, but the <tt class="docutils literal"><span class="pre">findall()</span></tt> variant was already
-faster than ElementTree.  This changes immediately when you switch to
-cElementTree.  The latter only needs 0.17 seconds to do the trick today and
-only some impressive 0.10 seconds when running the iterparse version.  And
-even back then, it was quite a bit faster than what lxml could achieve.</p>
-<p>Since then, lxml has matured a lot and has gotten much faster.  The iterparse
-variant now runs in 0.14 seconds, and if you remove the <tt class="docutils literal"><span class="pre">v.clear()</span></tt>, it is
-even a little faster (which isn&#8217;t the case for cElementTree).</p>
-<p>One of the many great tools in lxml is XPath, a swiss army knife for finding
-things in XML documents.  It is possible to move the whole thing to a pure
-XPath implementation, which looks like this:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">bench_lxml_xpath_all</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;ot.xml&quot;</span><span class="p">)</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//v[contains(., &#39;begat&#39;)]/text()&quot;</span><span class="p">)</span>
-    <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This runs in about 0.13 seconds and is about the shortest possible
-implementation (in lines of Python code) that I could come up with.  Now, this
-is already a rather complex XPath expression compared to the simple &#8220;//v&#8221;
-ElementPath expression we started with.  Since this is also valid XPath, let&#8217;s
-try this instead:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">bench_lxml_xpath</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;ot.xml&quot;</span><span class="p">)</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//v&quot;</span><span class="p">):</span>
-        <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-        <span class="k">if</span> <span class="s">&#39;begat&#39;</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
-            <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
-    <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This gets us down to 0.12 seconds, thus showing that a generic XPath
-evaluation engine cannot always compete with a simpler, tailored solution.
-However, since this is not much different from the original findall variant,
-we can remove the complexity of the XPath call completely and just go with
-what we had in the beginning.  Under lxml, this runs in the same 0.12 seconds.</p>
-<p>But there is one thing left to try.  We can replace the simple ElementPath
-expression with a native tree iterator:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">bench_lxml_getiterator</span><span class="p">():</span>
-    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;ot.xml&quot;</span><span class="p">)</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
-    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">getiterator</span><span class="p">(</span><span class="s">&quot;v&quot;</span><span class="p">):</span>
-        <span class="n">text</span> <span class="o">=</span> <span class="n">v</span><span class="o">.</span><span class="n">text</span>
-        <span class="k">if</span> <span class="s">&#39;begat&#39;</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
-            <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
-    <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This implements the same thing, just without the overhead of parsing and
-evaluating a path expression.  And this makes it another bit faster, down to
-0.11 seconds.  For comparison, cElementTree runs this version in 0.17 seconds.</p>
-<p>So, what have we learned?</p>
-<ul class="simple">
-<li>Python code is not slow.  The pure XPath solution was not even as fast as
-the first shot Python implementation.  In general, a few more lines in
-Python make things more readable, which is much more important than the last
-5% of performance.</li>
-<li>It&#8217;s important to know the available options - and it&#8217;s worth starting with
-the most simple one.  In this case, a programmer would then probably have
-started with <tt class="docutils literal"><span class="pre">getiterator(&quot;v&quot;)</span></tt> or <tt class="docutils literal"><span class="pre">iterparse()</span></tt>.  Either of them would
-already have been the most efficient, depending on which library is used.</li>
-<li>It&#8217;s important to know your tool.  lxml and cElementTree are both very fast
-libraries, but they do not have the same performance characteristics.  The
-fastest solution in one library can be comparatively slow in the other.  If
-you optimise, optimise for the specific target platform.</li>
-<li>It&#8217;s not always worth optimising.  After all that hassle we got from 0.12
-seconds for the initial implementation to 0.11 seconds.  Switching over to
-cElementTree and writing an <tt class="docutils literal"><span class="pre">iterparse()</span></tt> based version would have given
-us 0.10 seconds - not a big difference for 3MB of XML.</li>
-<li>Take care what operation is really dominating in your use case.  If we split
-up the operations, we can see that lxml is slightly slower than cElementTree
-on <tt class="docutils literal"><span class="pre">parse()</span></tt> (both about 0.06 seconds), but more visibly slower on
-<tt class="docutils literal"><span class="pre">iterparse()</span></tt>: 0.07 versus 0.10 seconds.  However, tree iteration in lxml
-is increadibly fast, so it can be better to parse the whole tree and then
-iterate over it rather than using <tt class="docutils literal"><span class="pre">iterparse()</span></tt> to do both in one step.
-Or, you can just wait for the lxml developers to optimise iterparse in one
-of the next releases...</li>
-</ul>
-</div>
-<div class="section" id="lxml-objectify">
-<h2><a class="toc-backref" href="#id13">lxml.objectify</a><a class="headerlink" href="#lxml-objectify" title="Permalink to this headline">¶</a></h2>
-<p>The following timings are based on the benchmark script <a class="reference external" href="http://codespeak.net/svn/lxml/trunk/benchmark/bench_objectify.py">bench_objectify.py</a>.</p>
-<p>Objectify is a data-binding API for XML based on lxml.etree, that was added in
-version 1.1.  It uses standard Python attribute access to traverse the XML
-tree.  It also features ObjectPath, a fast path language based on the same
-meme.</p>
-<p>Just like lxml.etree, lxml.objectify creates Python representations of
-elements on the fly.  To save memory, the normal Python garbage collection
-mechanisms will discard them when their last reference is gone.  In cases
-where deeply nested elements are frequently accessed through the objectify
-API, the create-discard cycles can become a bottleneck, as elements have to be
-instantiated over and over again.</p>
-<div class="section" id="objectpath">
-<h3><a class="toc-backref" href="#id14">ObjectPath</a><a class="headerlink" href="#objectpath" title="Permalink to this headline">¶</a></h3>
-<p>ObjectPath can be used to speed up the access to elements that are deep in the
-tree.  It avoids step-by-step Python element instantiations along the path,
-which can substantially improve the access time:</p>
-<div class="highlight-python"><pre>lxe: attribute                  (--TR T1)    4.8928 msec/pass
-lxe: attribute                  (--TR T2)   25.5480 msec/pass
-lxe: attribute                  (--TR T4)    4.6349 msec/pass
-
-lxe: objectpath                 (--TR T1)    1.4842 msec/pass
-lxe: objectpath                 (--TR T2)   21.1990 msec/pass
-lxe: objectpath                 (--TR T4)    1.4892 msec/pass
-
-lxe: attributes_deep            (--TR T1)   11.9710 msec/pass
-lxe: attributes_deep            (--TR T2)   32.4290 msec/pass
-lxe: attributes_deep            (--TR T4)   11.4839 msec/pass
-
-lxe: objectpath_deep            (--TR T1)    4.8139 msec/pass
-lxe: objectpath_deep            (--TR T2)   24.6511 msec/pass
-lxe: objectpath_deep            (--TR T4)    4.7588 msec/pass</pre>
-</div>
-<p>Note, however, that parsing ObjectPath expressions is not for free either, so
-this is most effective for frequently accessing the same element.</p>
-</div>
-<div class="section" id="caching-elements">
-<h3><a class="toc-backref" href="#id15">Caching Elements</a><a class="headerlink" href="#caching-elements" title="Permalink to this headline">¶</a></h3>
-<p>A way to improve the normal attribute access time is static instantiation of
-the Python objects, thus trading memory for speed.  Just create a cache
-dictionary and run:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">cache</span><span class="p">[</span><span class="n">root</span><span class="p">]</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">())</span>
-</pre></div>
-</div>
-<p>after parsing and:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">del</span> <span class="n">cache</span><span class="p">[</span><span class="n">root</span><span class="p">]</span>
-</pre></div>
-</div>
-<p>when you are done with the tree.  This will keep the Python element
-representations of all elements alive and thus avoid the overhead of repeated
-Python object creation.  You can also consider using filters or generator
-expressions to be more selective.  By choosing the right trees (or even
-subtrees and elements) to cache, you can trade memory usage against access
-speed:</p>
-<div class="highlight-python"><pre>lxe: attribute_cached           (--TR T1)    3.8228 msec/pass
-lxe: attribute_cached           (--TR T2)   23.7138 msec/pass
-lxe: attribute_cached           (--TR T4)    3.5269 msec/pass
-
-lxe: attributes_deep_cached     (--TR T1)    4.6771 msec/pass
-lxe: attributes_deep_cached     (--TR T2)   24.8699 msec/pass
-lxe: attributes_deep_cached     (--TR T4)    4.3321 msec/pass
-
-lxe: objectpath_deep_cached     (--TR T1)    1.1430 msec/pass
-lxe: objectpath_deep_cached     (--TR T2)   19.7470 msec/pass
-lxe: objectpath_deep_cached     (--TR T4)    1.1740 msec/pass</pre>
-</div>
-<p>Things to note: you cannot currently use <tt class="docutils literal"><span class="pre">weakref.WeakKeyDictionary</span></tt> objects
-for this as lxml&#8217;s element objects do not support weak references (which are
-costly in terms of memory).  Also note that new element objects that you add
-to these trees will not turn up in the cache automatically and will therefore
-still be garbage collected when all their Python references are gone, so this
-is most effective for largely immutable trees.  You should consider using a
-set instead of a list in this case and add new elements by hand.</p>
-</div>
-<div class="section" id="further-optimisations">
-<h3><a class="toc-backref" href="#id16">Further optimisations</a><a class="headerlink" href="#further-optimisations" title="Permalink to this headline">¶</a></h3>
-<p>Here are some more things to try if optimisation is required:</p>
-<ul class="simple">
-<li>A lot of time is usually spent in tree traversal to find the addressed
-elements in the tree.  If you often work in subtrees, do what you would also
-do with deep Python objects: assign the parent of the subtree to a variable
-or pass it into functions instead of starting at the root.  This allows
-accessing its descendents more directly.</li>
-<li>Try assigning data values directly to attributes instead of passing them
-through DataElement.</li>
-<li>If you use custom data types that are costly to parse, try running
-<tt class="docutils literal"><span class="pre">objectify.annotate()</span></tt> over read-only trees to speed up the attribute type
-inference on read access.</li>
-</ul>
-<p>Note that none of these measures is guaranteed to speed up your application.
-As usual, you should prefer readable code over premature optimisations and
-profile your expected use cases before bothering to apply optimisations at
-random.</p>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Benchmarks and Speed</a><ul>
-<li><a class="reference internal" href="#general-notes">General notes</a></li>
-<li><a class="reference internal" href="#how-to-read-the-timings">How to read the timings</a></li>
-<li><a class="reference internal" href="#parsing-and-serialising">Parsing and Serialising</a></li>
-<li><a class="reference internal" href="#the-elementtree-api">The ElementTree API</a><ul>
-<li><a class="reference internal" href="#child-access">Child access</a></li>
-<li><a class="reference internal" href="#element-creation">Element creation</a></li>
-<li><a class="reference internal" href="#merging-different-sources">Merging different sources</a></li>
-<li><a class="reference internal" href="#deepcopy">deepcopy</a></li>
-<li><a class="reference internal" href="#tree-traversal">Tree traversal</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xpath">XPath</a></li>
-<li><a class="reference internal" href="#a-longer-example">A longer example</a></li>
-<li><a class="reference internal" href="#lxml-objectify">lxml.objectify</a><ul>
-<li><a class="reference internal" href="#objectpath">ObjectPath</a></li>
-<li><a class="reference internal" href="#caching-elements">Caching Elements</a></li>
-<li><a class="reference internal" href="#further-optimisations">Further optimisations</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/performance.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/resolvers.html b/doc/sphinx/resolvers.html
deleted file mode 100644 (file)
index 53f51a8..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Document loading and URL resolving &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="document-loading-and-url-resolving">
-<h1><a class="toc-backref" href="#id2">Document loading and URL resolving</a><a class="headerlink" href="#document-loading-and-url-resolving" title="Permalink to this headline">¶</a></h1>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#document-loading-and-url-resolving" id="id2">Document loading and URL resolving</a><ul>
-<li><a class="reference internal" href="#xml-catalogs" id="id3">XML Catalogs</a></li>
-<li><a class="reference internal" href="#uri-resolvers" id="id4">URI Resolvers</a></li>
-<li><a class="reference internal" href="#document-loading-in-context" id="id5">Document loading in context</a></li>
-<li><a class="reference internal" href="#i-o-access-control-in-xslt" id="id6">I/O access control in XSLT</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<p>The normal way to load external entities (such as DTDs) is by using
-XML catalogs.  Lxml also has support for user provided document
-loaders in both the parsers and XSL transformations.  These so-called
-resolvers are subclasses of the etree.Resolver class.</p>
-<div class="section" id="xml-catalogs">
-<h2><a class="toc-backref" href="#id3">XML Catalogs</a><a class="headerlink" href="#xml-catalogs" title="Permalink to this headline">¶</a></h2>
-<p>When loading an external entity for a document, e.g. a DTD, the parser
-is normally configured to prevent network access (see the
-<tt class="docutils literal"><span class="pre">no_network</span></tt> parser option).  Instead, it will try to load the
-entity from their local file system path or, in the most common case
-that the entity uses a network URL as reference, from a local XML
-catalog.</p>
-<p><a class="reference external" href="http://www.oasis-open.org/committees/entity/spec.html">XML catalogs</a> are the preferred and agreed-on mechanism to load
-external entities from XML processors.  Most tools will use them, so
-it is worth configuring them properly on a system.  Many Linux
-installations use them by default, but on other systems they may need
-to get enabled manually.  The <a class="reference external" href="http://xmlsoft.org/">libxml2 site</a> has some documentation
-on <a class="reference external" href="http://xmlsoft.org/catalog.html">how to set up XML catalogs</a></p>
-</div>
-<div class="section" id="uri-resolvers">
-<h2><a class="toc-backref" href="#id4">URI Resolvers</a><a class="headerlink" href="#uri-resolvers" title="Permalink to this headline">¶</a></h2>
-<p>Here is an example of a custom resolver:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">DTDResolver</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Resolver</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">resolve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;Resolving URL &#39;</span><span class="si">%s</span><span class="s">&#39;&quot;</span> <span class="o">%</span> <span class="n">url</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">resolve_string</span><span class="p">(</span>
-<span class="gp">... </span>            <span class="s">&#39;&lt;!ENTITY myentity &quot;[resolved text: </span><span class="si">%s</span><span class="s">]&quot;&gt;&#39;</span> <span class="o">%</span> <span class="n">url</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This defines a resolver that always returns a dynamically generated DTD
-fragment defining an entity.  The <tt class="docutils literal"><span class="pre">url</span></tt> argument passes the system URL of
-the requested document, the <tt class="docutils literal"><span class="pre">id</span></tt> argument is the public ID.  Note that any
-of these may be None.  The context object is not normally used by client code.</p>
-<p>Resolving is based on the methods of the Resolver object that build
-internal representations of the result document.  The following
-methods exist:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">resolve_string</span></tt> takes a parsable string as result document</li>
-<li><tt class="docutils literal"><span class="pre">resolve_filename</span></tt> takes a filename</li>
-<li><tt class="docutils literal"><span class="pre">resolve_file</span></tt> takes an open file-like object that has at least a read() method</li>
-<li><tt class="docutils literal"><span class="pre">resolve_empty</span></tt> resolves into an empty document</li>
-</ul>
-<p>The <tt class="docutils literal"><span class="pre">resolve()</span></tt> method may choose to return None, in which case the next
-registered resolver (or the default resolver) is consulted.  Resolving always
-terminates if <tt class="docutils literal"><span class="pre">resolve()</span></tt> returns the result of any of the above
-<tt class="docutils literal"><span class="pre">resolve_*()</span></tt> methods.</p>
-<p>Resolvers are registered local to a parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">load_dtd</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">DTDResolver</span><span class="p">()</span> <span class="p">)</span>
-</pre></div>
-</div>
-<p>Note that we instantiate a parser that loads the DTD.  This is not done by the
-default parser, which does no validation.  When we use this parser to parse a
-document that requires resolving a URL, it will call our custom resolver:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">&#39;&lt;!DOCTYPE doc SYSTEM &quot;MissingDTD.dtd&quot;&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml</span><span class="p">),</span> <span class="n">parser</span><span class="p">)</span>
-<span class="go">Resolving URL &#39;MissingDTD.dtd&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">[resolved text: MissingDTD.dtd]</span>
-</pre></div>
-</div>
-<p>The entity in the document was correctly resolved by the generated DTD
-fragment.</p>
-</div>
-<div class="section" id="document-loading-in-context">
-<h2><a class="toc-backref" href="#id5">Document loading in context</a><a class="headerlink" href="#document-loading-in-context" title="Permalink to this headline">¶</a></h2>
-<p>XML documents memorise their initial parser (and its resolvers) during their
-life-time.  This means that a lookup process related to a document will use
-the resolvers of the document&#8217;s parser.  We can demonstrate this with a
-resolver that only responds to a specific prefix:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">PrefixResolver</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Resolver</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">result_xml</span> <span class="o">=</span> <span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">             &lt;xsl:stylesheet</span>
-<span class="gp">... </span><span class="s">                    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">               &lt;test xmlns=&quot;testNS&quot;&gt;</span><span class="si">%s</span><span class="s">-TEST&lt;/test&gt;</span>
-<span class="gp">... </span><span class="s">             &lt;/xsl:stylesheet&gt;</span>
-<span class="gp">... </span><span class="s">             &#39;&#39;&#39;</span> <span class="o">%</span> <span class="n">prefix</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">resolve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">pubid</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="n">url</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="p">):</span>
-<span class="gp">... </span>            <span class="k">print</span><span class="p">(</span><span class="s">&quot;Resolved url </span><span class="si">%s</span><span class="s"> as prefix </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="p">))</span>
-<span class="gp">... </span>            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">resolve_string</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">result_xml</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>We demonstrate this in XSLT and use the following stylesheet as an example:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml_text</span> <span class="o">=</span> <span class="s">&quot;&quot;&quot;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">   xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;xsl:include href=&quot;honk:test&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;test&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;xsl:value-of select=&quot;document(&#39;hoi:test&#39;)/*/*/text()&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/test&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;</span>
-<span class="gp">... </span><span class="s">&quot;&quot;&quot;</span>
-</pre></div>
-</div>
-<p>Note that it needs to resolve two URIs: <tt class="docutils literal"><span class="pre">honk:test</span></tt> when compiling the XSLT
-document (i.e. when resolving <tt class="docutils literal"><span class="pre">xsl:import</span></tt> and <tt class="docutils literal"><span class="pre">xsl:include</span></tt> elements) and
-<tt class="docutils literal"><span class="pre">hoi:test</span></tt> at transformation time, when calls to the <tt class="docutils literal"><span class="pre">document</span></tt> function
-are resolved.  If we now register different resolvers with two different
-parsers, we can parse our document twice in different resolver contexts:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">normal_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml_text</span><span class="p">),</span> <span class="n">hoi_parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s">&quot;hoi&quot;</span><span class="p">)</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">hoi_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml_text</span><span class="p">),</span> <span class="n">hoi_parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s">&quot;honk&quot;</span><span class="p">)</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">honk_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="n">xml_text</span><span class="p">),</span> <span class="n">honk_parser</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>These contexts are important for the further behaviour of the documents.  They
-memorise their original parser so that the correct set of resolvers is used in
-subsequent lookups.  To compile the stylesheet, XSLT must resolve the
-<tt class="docutils literal"><span class="pre">honk:test</span></tt> URI in the <tt class="docutils literal"><span class="pre">xsl:include</span></tt> element.  The <tt class="docutils literal"><span class="pre">hoi</span></tt> resolver cannot
-do that:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">normal_doc</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTParseError</span>: <span class="n">Cannot resolve URI honk:test</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">hoi_doc</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTParseError</span>: <span class="n">Cannot resolve URI honk:test</span>
-</pre></div>
-</div>
-<p>However, if we use the <tt class="docutils literal"><span class="pre">honk</span></tt> resolver associated with the respective
-document, everything works fine:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">honk_doc</span><span class="p">)</span>
-<span class="go">Resolved url honk:test as prefix honk</span>
-</pre></div>
-</div>
-<p>Running the transform accesses the same parser context again, but since it now
-needs to resolve the <tt class="docutils literal"><span class="pre">hoi</span></tt> URI in the call to the document function, its
-<tt class="docutils literal"><span class="pre">honk</span></tt> resolver will fail to do so:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">normal_doc</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTApplyError</span>: <span class="n">Cannot resolve URI hoi:test</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">hoi_doc</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTApplyError</span>: <span class="n">Cannot resolve URI hoi:test</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">honk_doc</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTApplyError</span>: <span class="n">Cannot resolve URI hoi:test</span>
-</pre></div>
-</div>
-<p>This can only be solved by adding a <tt class="docutils literal"><span class="pre">hoi</span></tt> resolver to the original parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">honk_parser</span><span class="o">.</span><span class="n">resolvers</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="n">PrefixResolver</span><span class="p">(</span><span class="s">&quot;hoi&quot;</span><span class="p">)</span> <span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">honk_doc</span><span class="p">)</span>
-<span class="go">Resolved url hoi:test as prefix hoi</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
-<span class="go">&lt;?xml version=&quot;1.0&quot;?&gt;</span>
-<span class="go">&lt;test&gt;hoi-TEST&lt;/test&gt;</span>
-</pre></div>
-</div>
-<p>We can see that the <tt class="docutils literal"><span class="pre">hoi</span></tt> resolver was called to generate a document that
-was then inserted into the result document by the XSLT transformation.  Note
-that this is completely independent of the XML file you transform, as the URI
-is resolved from within the stylesheet context:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">normal_doc</span><span class="p">)</span>
-<span class="go">Resolved url hoi:test as prefix hoi</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
-<span class="go">&lt;?xml version=&quot;1.0&quot;?&gt;</span>
-<span class="go">&lt;test&gt;hoi-TEST&lt;/test&gt;</span>
-</pre></div>
-</div>
-<p>It may be seen as a matter of taste what resolvers the generated document
-inherits.  For XSLT, the output document inherits the resolvers of the input
-document and not those of the stylesheet.  Therefore, the last result does not
-inherit any resolvers at all.</p>
-</div>
-<div class="section" id="i-o-access-control-in-xslt">
-<h2><a class="toc-backref" href="#id6">I/O access control in XSLT</a><a class="headerlink" href="#i-o-access-control-in-xslt" title="Permalink to this headline">¶</a></h2>
-<p>By default, XSLT supports all extension functions from libxslt and libexslt as
-well as Python regular expressions through EXSLT.  Some extensions enable
-style sheets to read and write files on the local file system.</p>
-<p>XSLT has a mechanism to control the access to certain I/O operations during
-the transformation process.  This is most interesting where XSL scripts come
-from potentially insecure sources and must be prevented from modifying the
-local file system.  Note, however, that there is no way to keep them from
-eating up your precious CPU time, so this should not stop you from thinking
-about what XSLT you execute.</p>
-<p>Access control is configured using the <tt class="docutils literal"><span class="pre">XSLTAccessControl</span></tt> class.  It can be
-called with a number of keyword arguments that allow or deny specific
-operations:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">honk_doc</span><span class="p">)</span>
-<span class="go">Resolved url honk:test as prefix honk</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">normal_doc</span><span class="p">)</span>
-<span class="go">Resolved url hoi:test as prefix hoi</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">ac</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLTAccessControl</span><span class="p">(</span><span class="n">read_network</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">honk_doc</span><span class="p">,</span> <span class="n">access_control</span><span class="o">=</span><span class="n">ac</span><span class="p">)</span>
-<span class="go">Resolved url honk:test as prefix honk</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">normal_doc</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTApplyError: xsltLoadDocument</span>: <span class="n">read rights for hoi:test denied</span>
-</pre></div>
-</div>
-<p>There are a few things to keep in mind:</p>
-<ul class="simple">
-<li>XSL parsing (<tt class="docutils literal"><span class="pre">xsl:import</span></tt>, etc.) is not affected by this mechanism</li>
-<li><tt class="docutils literal"><span class="pre">read_file=False</span></tt> does not imply <tt class="docutils literal"><span class="pre">write_file=False</span></tt>, all controls are
-independent.</li>
-<li><tt class="docutils literal"><span class="pre">read_file</span></tt> only applies to files in the file system.  Any other scheme
-for URLs is controlled by the <tt class="docutils literal"><span class="pre">*_network</span></tt> keywords.</li>
-<li>If you need more fine-grained control than switching access on and off, you
-should consider writing a custom document loader that returns empty
-documents or raises exceptions if access is denied.</li>
-</ul>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Document loading and URL resolving</a><ul>
-<li><a class="reference internal" href="#xml-catalogs">XML Catalogs</a></li>
-<li><a class="reference internal" href="#uri-resolvers">URI Resolvers</a></li>
-<li><a class="reference internal" href="#document-loading-in-context">Document loading in context</a></li>
-<li><a class="reference internal" href="#i-o-access-control-in-xslt">I/O access control in XSLT</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/resolvers.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/s5/lxml-ep2008.html b/doc/sphinx/s5/lxml-ep2008.html
deleted file mode 100644 (file)
index d008706..0000000
+++ /dev/null
@@ -1,1176 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Implementing XML languages with lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/underscore.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="../index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="implementing-xml-languages-with-lxml">
-<h1>Implementing XML languages with lxml<a class="headerlink" href="#implementing-xml-languages-with-lxml" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="dr-stefan-behnel">
-<h2>Dr. Stefan Behnel<a class="headerlink" href="#dr-stefan-behnel" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="center">
-<em class="property">class </em><tt class="descname">center</tt><a class="headerlink" href="#center" title="Permalink to this definition">¶</a></dt>
-<dd><p><a class="reference external" href="http://codespeak.net/lxml/">http://codespeak.net/lxml/</a></p>
-<p><a class="reference external" href="mailto:lxml-dev&#37;&#52;&#48;codespeak&#46;net">lxml-dev<span>&#64;</span>codespeak<span>&#46;</span>net</a></p>
-<img alt="../_images/tagpython.png" src="../_images/tagpython.png" />
-</dd></dl>
-
-<div class="section" id="what-is-an-xml-language">
-<h3>What is an Â»XML language«?<a class="headerlink" href="#what-is-an-xml-language" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>a language in XML notation</li>
-<li>aka Â»XML dialect«<ul>
-<li>except that it&#8217;s not a dialect</li>
-</ul>
-</li>
-<li>Examples:<ul>
-<li>XML Schema</li>
-<li>Atom/RSS</li>
-<li>(X)HTML</li>
-<li>Open Document Format</li>
-<li>SOAP</li>
-<li>... add your own one here</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="popular-mistakes-to-avoid-1">
-<h3>Popular mistakes to avoid (1)<a class="headerlink" href="#popular-mistakes-to-avoid-1" title="Permalink to this headline">¶</a></h3>
-<p>&#8220;That&#8217;s easy, I can use regular expressions!&#8221;</p>
-<dl class="class">
-<dt>
-<tt class="descname">incremental center</tt></dt>
-<dd><p>No, you can&#8217;t.</p>
-</dd></dl>
-
-</div>
-<div class="section" id="popular-mistakes-to-avoid-2">
-<h3>Popular mistakes to avoid (2)<a class="headerlink" href="#popular-mistakes-to-avoid-2" title="Permalink to this headline">¶</a></h3>
-<p>&#8220;This is tree data, I&#8217;ll take the DOM!&#8221;</p>
-</div>
-<div class="section" id="id1">
-<h3>Popular mistakes to avoid (2)<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
-<p>&#8220;This is tree data, I&#8217;ll take the DOM!&#8221;</p>
-<ul class="simple">
-<li>DOM is ubiquitous, but it&#8217;s as complicated as Java</li>
-<li>uglify your application with tons of DOM code to<ul>
-<li>walk over non-element nodes to find the data you need</li>
-<li>convert text content to other data types</li>
-<li>modify the XML tree in memory</li>
-</ul>
-</li>
-</ul>
-<p>=&gt; write verbose, redundant, hard-to-maintain code</p>
-</div>
-<div class="section" id="popular-mistakes-to-avoid-3">
-<h3>Popular mistakes to avoid (3)<a class="headerlink" href="#popular-mistakes-to-avoid-3" title="Permalink to this headline">¶</a></h3>
-<p>&#8220;SAX is <em>so</em> fast and consumes <em>no</em> memory!&#8221;</p>
-</div>
-<div class="section" id="id2">
-<h3>Popular mistakes to avoid (3)<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
-<p>&#8220;SAX is <em>so</em> fast and consumes <em>no</em> memory!&#8221;</p>
-<ul class="simple">
-<li>but <em>writing</em> SAX code is <em>not</em> fast!</li>
-<li>write error-prone, state-keeping SAX code to<ul>
-<li>figure out where you are</li>
-<li>find the sections you need</li>
-<li>convert text content to other data types</li>
-<li>copy the XML data into custom data classes</li>
-<li>... and don&#8217;t forget the way back into XML!</li>
-</ul>
-</li>
-</ul>
-<p>=&gt; write confusing state-machine code</p>
-<p>=&gt; debugging into existence</p>
-</div>
-<div class="section" id="working-with-xml">
-<h3>Working with XML<a class="headerlink" href="#working-with-xml" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<div><p><strong>Getting XML work done</strong></p>
-<p>(instead of getting time wasted)</p>
-</div></blockquote>
-</div>
-<div class="section" id="how-can-you-work-with-xml">
-<h3>How can you work with XML?<a class="headerlink" href="#how-can-you-work-with-xml" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>Preparation:<ul>
-<li>Implement usable data classes as an abstraction layer</li>
-<li>Implement a mapping from XML to the data classes</li>
-<li>Implement a mapping from the data classes to XML</li>
-</ul>
-</li>
-<li>Workflow:<ul>
-<li>parse XML data</li>
-<li>map XML data to data classes</li>
-<li>work with data classes</li>
-<li>map data classes to XML</li>
-<li>serialise XML</li>
-</ul>
-</li>
-</ul>
-<dl class="class">
-<dt id="incremental">
-<em class="property">class </em><tt class="descname">incremental</tt><a class="headerlink" href="#incremental" title="Permalink to this definition">¶</a></dt>
-<dd><ul class="simple">
-<li>Approach:<ul>
-<li>get rid of XML and do everything in your own code</li>
-</ul>
-</li>
-</ul>
-</dd></dl>
-
-</div>
-<div class="section" id="what-if-you-could-simplify-this">
-<h3>What if you could simplify this?<a class="headerlink" href="#what-if-you-could-simplify-this" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>Preparation:<ul>
-<li>Extend usable XML API classes into an abstraction layer</li>
-</ul>
-</li>
-<li>Workflow:<ul>
-<li>parse XML data into XML API classes</li>
-<li>work with XML API classes</li>
-<li>serialise XML</li>
-</ul>
-</li>
-</ul>
-<dl class="class">
-<dt>
-<em class="property">class </em><tt class="descname">incremental</tt></dt>
-<dd><ul class="simple">
-<li>Approach:<ul>
-<li>cover only the quirks of XML and make it work <em>for</em> you</li>
-</ul>
-</li>
-</ul>
-</dd></dl>
-
-</div>
-<div class="section" id="id3">
-<h3>What if you could simplify this ...<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>... without sacrificing usability or flexibility?</li>
-<li>... using a high-speed, full-featured, pythonic XML toolkit?</li>
-<li>... with the power of XPath, XSLT and XML validation?</li>
-</ul>
-<dl class="class">
-<dt>
-<tt class="descname">incremental center</tt></dt>
-<dd><p>... then Â»lxml« is your friend!</p>
-</dd></dl>
-
-</div>
-<div class="section" id="overview">
-<h3>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>What is lxml?<ul>
-<li>what &amp; who</li>
-</ul>
-</li>
-<li>How do you use it?<ul>
-<li>Lesson 0: quick API overview<ul>
-<li>ElementTree concepts and lxml features</li>
-</ul>
-</li>
-<li>Lesson 1: parse XML<ul>
-<li>how to get XML data into memory</li>
-</ul>
-</li>
-<li>Lesson 2: generate XML<ul>
-<li>how to write an XML generator for a language</li>
-</ul>
-</li>
-<li>Lesson 3: working with XML trees made easy<ul>
-<li>how to write an XML API for a language</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="what-is-lxml">
-<h3>What is lxml?<a class="headerlink" href="#what-is-lxml" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>a fast, full-featured toolkit for XML and HTML handling<ul>
-<li><a class="reference external" href="http://codespeak.net/lxml/">http://codespeak.net/lxml/</a></li>
-<li><a class="reference external" href="mailto:lxml-dev&#37;&#52;&#48;codespeak&#46;net">lxml-dev<span>&#64;</span>codespeak<span>&#46;</span>net</a></li>
-</ul>
-</li>
-<li>based on and inspired by<ul>
-<li>the C libraries libxml2 and libxslt (by Daniel Veillard)</li>
-<li>the ElementTree API (by Fredrik Lundh)</li>
-<li>the Cython compiler (by Robert Bradshaw, Greg Ewing &amp; me)</li>
-<li>the Python language (by Guido &amp; [<em>paste Misc/ACKS here</em>])</li>
-<li>user feedback, ideas and patches (by you!)<ul>
-<li>keep doing that, we love you all!</li>
-</ul>
-</li>
-</ul>
-</li>
-<li>maintained (and major parts) written by myself<ul>
-<li>initial design and implementation by Martijn Faassen</li>
-<li>extensive HTML API and tools by Ian Bicking</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="what-do-you-get-for-your-money">
-<h3>What do you get for your money?<a class="headerlink" href="#what-do-you-get-for-your-money" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>many tools in one:<ul>
-<li>Generic, ElementTree compatible XML API: <strong>lxml.etree</strong><ul>
-<li>but faster for many tasks and much more feature-rich</li>
-</ul>
-</li>
-<li>Special tool set for HTML handling: <strong>lxml.html</strong></li>
-<li>Special API for pythonic data binding: <strong>lxml.objectify</strong></li>
-<li>General purpose path languages: XPath and CSS selectors</li>
-<li>Validation: DTD, XML Schema, RelaxNG, Schematron</li>
-<li>XSLT, XInclude, C14N, ...</li>
-<li>Fast tree iteration, event-driven parsing, ...</li>
-</ul>
-</li>
-<li>it&#8217;s free, but it&#8217;s worth every â‚¬-Cent!<ul>
-<li>what users say:<ul>
-<li>»no qualification, I would recommend lxml for just about any
-HTML task«</li>
-<li>»THE tool [...] for newbies and experienced developers«</li>
-<li>»you can do pretty much anything with an intuitive API«</li>
-<li>»lxml takes all the pain out of XML«</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="lesson-0-a-quick-overview">
-<h3>Lesson 0: a quick overview<a class="headerlink" href="#lesson-0-a-quick-overview" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<div><p>why <strong>»lxml takes all the pain out of XML«</strong></p>
-<p>(a quick overview of lxml features and ElementTree concepts)</p>
-</div></blockquote>
-</div>
-<div class="section" id="namespaces-in-elementtree">
-<h3>Namespaces in ElementTree<a class="headerlink" href="#namespaces-in-elementtree" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">uses Clark notation:</p>
-<ul class="simple">
-<li>wrap namespace URI in <tt class="docutils literal"><span class="pre">{...}</span></tt></li>
-<li>append the tag name</li>
-</ul>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tag</span> <span class="o">=</span> <span class="s">&quot;{http://www.w3.org/the/namespace}tagname&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">no prefixes!</p>
-</li>
-<li><p class="first">a single, self-containing tag identifier</p>
-</li>
-</ul>
-</div>
-<div class="section" id="text-content-in-elementtree">
-<h3>Text content in ElementTree<a class="headerlink" href="#text-content-in-elementtree" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">uses <tt class="docutils literal"><span class="pre">.text</span></tt> and <tt class="docutils literal"><span class="pre">.tail</span></tt> attributes:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">div</span> <span class="o">=</span> <span class="n">html</span><span class="o">.</span><span class="n">fragment_fromstring</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="s">&quot;&lt;div&gt;&lt;p&gt;a paragraph&lt;br&gt;split in two&lt;/p&gt; parts&lt;/div&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">p</span> <span class="o">=</span> <span class="n">div</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">p</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;a paragraph&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">text</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span>
-<span class="go">&#39;split in two&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">p</span><span class="o">.</span><span class="n">tail</span>
-<span class="go">&#39; parts&#39;</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">no text nodes!</p>
-<ul class="simple">
-<li>simplifies tree traversal a lot</li>
-<li>simplifies many XML algorithms</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="attributes-in-elementtree">
-<h3>Attributes in ElementTree<a class="headerlink" href="#attributes-in-elementtree" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">uses <tt class="docutils literal"><span class="pre">.get()</span></tt> and <tt class="docutils literal"><span class="pre">.set()</span></tt> methods:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="s">&#39;&lt;root a=&quot;the value&quot; b=&quot;of an&quot; c=&quot;attribute&quot;/&gt;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;a&#39;</span><span class="p">)</span>
-<span class="go">&#39;the value&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">&#39;a&#39;</span><span class="p">,</span> <span class="s">&quot;THE value&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;a&#39;</span><span class="p">)</span>
-<span class="go">&#39;THE value&#39;</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">or the <tt class="docutils literal"><span class="pre">.attrib</span></tt> dictionary property:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">attrib</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">list</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span>
-<span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">list</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
-<span class="go">[&#39;THE value&#39;, &#39;attribute&#39;, &#39;of an&#39;]</span>
-</pre></div>
-</div>
-</li>
-</ul>
-</div>
-<div class="section" id="tree-iteration-in-lxml-etree-1">
-<h3>Tree iteration in lxml.etree (1)<a class="headerlink" href="#tree-iteration-in-lxml-etree-1" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="s">&quot;&lt;root&gt; &lt;a&gt;&lt;b/&gt;&lt;b/&gt;&lt;/a&gt; &lt;c&gt;&lt;d/&gt;&lt;e&gt;&lt;f/&gt;&lt;/e&gt;&lt;g/&gt;&lt;/c&gt; &lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="p">])</span>   <span class="c"># children</span>
-<span class="go">[&#39;a&#39;, &#39;c&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">()])</span>  <span class="c"># self and descendants</span>
-<span class="go">[&#39;root&#39;, &#39;a&#39;, &#39;b&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;, &#39;f&#39;, &#39;g&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterdescendants</span><span class="p">()])</span>
-<span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;, &#39;f&#39;, &#39;g&#39;]</span>
-
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">iter_breadth_first</span><span class="p">(</span><span class="n">root</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="n">bfs_queue</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">deque</span><span class="p">([</span><span class="n">root</span><span class="p">])</span>
-<span class="gp">... </span>    <span class="k">while</span> <span class="n">bfs_queue</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="n">el</span> <span class="o">=</span> <span class="n">bfs_queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>  <span class="c"># pop next element</span>
-<span class="gp">... </span>        <span class="n">bfs_queue</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">el</span><span class="p">)</span>      <span class="c"># append its children</span>
-<span class="gp">... </span>        <span class="k">yield</span> <span class="n">el</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">el</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">iter_breadth_first</span><span class="p">(</span><span class="n">root</span><span class="p">)])</span>
-<span class="go">[&#39;root&#39;, &#39;a&#39;, &#39;c&#39;, &#39;b&#39;, &#39;b&#39;, &#39;d&#39;, &#39;e&#39;, &#39;g&#39;, &#39;f&#39;]</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="tree-iteration-in-lxml-etree-2">
-<h3>Tree iteration in lxml.etree (2)<a class="headerlink" href="#tree-iteration-in-lxml-etree-2" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="s">&quot;&lt;root&gt; &lt;a&gt;&lt;b/&gt;&lt;b/&gt;&lt;/a&gt; &lt;c&gt;&lt;d/&gt;&lt;e&gt;&lt;f/&gt;&lt;/e&gt;&lt;g/&gt;&lt;/c&gt; &lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree_walker</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterwalk</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;start&#39;</span><span class="p">,</span> <span class="s">&#39;end&#39;</span><span class="p">))</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span> <span class="ow">in</span> <span class="n">tree_walker</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">event</span><span class="p">))</span>
-<span class="go">root (start)</span>
-<span class="go">a (start)</span>
-<span class="go">b (start)</span>
-<span class="go">b (end)</span>
-<span class="go">b (start)</span>
-<span class="go">b (end)</span>
-<span class="go">a (end)</span>
-<span class="go">c (start)</span>
-<span class="go">d (start)</span>
-<span class="go">d (end)</span>
-<span class="go">e (start)</span>
-<span class="go">f (start)</span>
-<span class="go">f (end)</span>
-<span class="go">e (end)</span>
-<span class="go">g (start)</span>
-<span class="go">g (end)</span>
-<span class="go">c (end)</span>
-<span class="go">root (end)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="path-languages-in-lxml">
-<h3>Path languages in lxml<a class="headerlink" href="#path-languages-in-lxml" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;root&gt;</span>
-  <span class="nt">&lt;speech</span> <span class="na">class=</span><span class="s">&#39;dialog&#39;</span><span class="nt">&gt;&lt;p&gt;</span>So be it!<span class="nt">&lt;/p&gt;&lt;/speech&gt;</span>
-  <span class="nt">&lt;p&gt;</span>stuff<span class="nt">&lt;/p&gt;</span>
-<span class="nt">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<ul>
-<li><p class="first">search it with XPath</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find_paragraphs</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//p&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">paragraphs</span> <span class="o">=</span> <span class="n">find_paragraphs</span><span class="p">(</span><span class="n">xml_tree</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">p</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">paragraphs</span> <span class="p">])</span>
-<span class="go">[&#39;So be it!&#39;, &#39;stuff&#39;]</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">search it with CSS selectors</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find_dialogs</span> <span class="o">=</span> <span class="n">cssselect</span><span class="o">.</span><span class="n">CSSSelector</span><span class="p">(</span><span class="s">&quot;speech.dialog p&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">paragraphs</span> <span class="o">=</span> <span class="n">find_dialogs</span><span class="p">(</span><span class="n">xml_tree</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">p</span><span class="o">.</span><span class="n">text</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">paragraphs</span> <span class="p">])</span>
-<span class="go">[&#39;So be it!&#39;]</span>
-</pre></div>
-</div>
-</li>
-</ul>
-</div>
-<div class="section" id="summary-of-lesson-0">
-<h3>Summary of lesson 0<a class="headerlink" href="#summary-of-lesson-0" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>lxml comes with various tools<ul>
-<li>that aim to hide the quirks of XML</li>
-<li>that simplify finding and handling data</li>
-<li>that make XML a pythonic tool by itself</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="lesson-1-parsing-xml-html">
-<h3>Lesson 1: parsing XML/HTML<a class="headerlink" href="#lesson-1-parsing-xml-html" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<div><p><strong>The input side</strong></p>
-<p>(a quick overview)</p>
-</div></blockquote>
-</div>
-<div class="section" id="parsing-xml-and-html-from">
-<h3>Parsing XML and HTML from ...<a class="headerlink" href="#parsing-xml-and-html-from" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>strings: <tt class="docutils literal"><span class="pre">fromstring(xml_data)</span></tt><ul>
-<li>byte strings, but also unicode strings</li>
-</ul>
-</li>
-<li>filenames: <tt class="docutils literal"><span class="pre">parse(filename)</span></tt></li>
-<li>HTTP/FTP URLs: <tt class="docutils literal"><span class="pre">parse(url)</span></tt></li>
-<li>file objects: <tt class="docutils literal"><span class="pre">parse(f)</span></tt><ul>
-<li><tt class="docutils literal"><span class="pre">f</span> <span class="pre">=</span> <span class="pre">open(filename,</span> <span class="pre">'rb')</span></tt> !</li>
-</ul>
-</li>
-<li>file-like objects: <tt class="docutils literal"><span class="pre">parse(f)</span></tt><ul>
-<li>only need a <tt class="docutils literal"><span class="pre">f.read(size)</span></tt> method</li>
-</ul>
-</li>
-<li>data chunks: <tt class="docutils literal"><span class="pre">parser.feed(xml_chunk)</span></tt><ul>
-<li><tt class="docutils literal"><span class="pre">result</span> <span class="pre">=</span> <span class="pre">parser.close()</span></tt></li>
-</ul>
-</li>
-</ul>
-<dl class="class">
-<dt>
-<tt class="descname">small right</tt></dt>
-<dd><p>(parsing from strings and filenames/URLs frees the GIL)</p>
-</dd></dl>
-
-</div>
-<div class="section" id="example-parsing-from-a-string">
-<h3>Example: parsing from a string<a class="headerlink" href="#example-parsing-from-a-string" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">using the <tt class="docutils literal"><span class="pre">fromstring()</span></tt> function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">some_xml_data</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">using the <tt class="docutils literal"><span class="pre">fromstring()</span></tt> function with a specific parser:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">HTMLParser</span><span class="p">(</span><span class="n">remove_comments</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">some_html_data</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">or the <tt class="docutils literal"><span class="pre">XML()</span></tt> and <tt class="docutils literal"><span class="pre">HTML()</span></tt> aliases for literals in code:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;child/&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root_element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">HTML</span><span class="p">(</span><span class="s">&quot;&lt;p&gt;some&lt;br&gt;paragraph&lt;/p&gt;&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-</ul>
-</div>
-<div class="section" id="parsing-xml-into">
-<h3>Parsing XML into ...<a class="headerlink" href="#parsing-xml-into" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>a tree in memory<ul>
-<li><tt class="docutils literal"><span class="pre">parse()</span></tt> and <tt class="docutils literal"><span class="pre">fromstring()</span></tt> functions</li>
-</ul>
-</li>
-<li>a tree in memory, but step-by-step with a generator<ul>
-<li><tt class="docutils literal"><span class="pre">iterparse()</span></tt> generates <tt class="docutils literal"><span class="pre">(start/end,</span> <span class="pre">element)</span></tt> events</li>
-<li>tree can be cleaned up to save space</li>
-</ul>
-</li>
-<li>SAX-like callbacks without building a tree<ul>
-<li><tt class="docutils literal"><span class="pre">parse()</span></tt> and <tt class="docutils literal"><span class="pre">fromstring()</span></tt> functions</li>
-<li>pass a <tt class="docutils literal"><span class="pre">target</span></tt> object into the parser</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="summary-of-lesson-1">
-<h3>Summary of lesson 1<a class="headerlink" href="#summary-of-lesson-1" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>parsing XML/HTML in lxml is mostly straight forward<ul>
-<li>simple functions that do the job</li>
-</ul>
-</li>
-<li>advanced use cases are pretty simple<ul>
-<li>event-driven parsing using <tt class="docutils literal"><span class="pre">iterparse()</span></tt></li>
-<li>special parser configuration with keyword arguments<ul>
-<li>configuration is generally local to a parser</li>
-</ul>
-</li>
-</ul>
-</li>
-<li>BTW: parsing is <em>very</em> fast, as is serialising<ul>
-<li>don&#8217;t hesitate to do parse-serialise-parse cycles</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="lesson-2-generating-xml">
-<h3>Lesson 2: generating XML<a class="headerlink" href="#lesson-2-generating-xml" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<div><p><strong>The output side</strong></p>
-<p>(and how to make it safe and simple)</p>
-</div></blockquote>
-</div>
-<div class="section" id="the-example-language-atom">
-<h3>The example language: Atom<a class="headerlink" href="#the-example-language-atom" title="Permalink to this headline">¶</a></h3>
-<p>The Atom XML format</p>
-<ul class="simple">
-<li>Namespace: <a class="reference external" href="http://www.w3.org/2005/Atom">http://www.w3.org/2005/Atom</a></li>
-<li>W3C recommendation derived from RSS and friends</li>
-<li>Atom feeds describe news entries and annotated links<ul>
-<li>a <tt class="docutils literal"><span class="pre">feed</span></tt> contains one or more <tt class="docutils literal"><span class="pre">entry</span></tt> elements</li>
-<li>an <tt class="docutils literal"><span class="pre">entry</span></tt> contains <tt class="docutils literal"><span class="pre">author</span></tt>, <tt class="docutils literal"><span class="pre">link</span></tt>, <tt class="docutils literal"><span class="pre">summary</span></tt> and/or <tt class="docutils literal"><span class="pre">content</span></tt></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="example-generate-xml-1">
-<h3>Example: generate XML (1)<a class="headerlink" href="#example-generate-xml-1" title="Permalink to this headline">¶</a></h3>
-<p>The ElementMaker (or <em>E-factory</em>)</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">ElementMaker</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">A</span> <span class="o">=</span> <span class="n">ElementMaker</span><span class="p">(</span><span class="n">namespace</span><span class="o">=</span><span class="s">&quot;http://www.w3.org/2005/Atom&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                 <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="s">&quot;http://www.w3.org/2005/Atom&quot;</span><span class="p">})</span>
-</pre></div>
-</div>
-<dl class="class">
-<dt>
-<em class="property">class </em><tt class="descname">incremental</tt></dt>
-<dd><div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">atom</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">author</span><span class="p">(</span> <span class="n">A</span><span class="o">.</span><span class="n">name</span><span class="p">(</span><span class="s">&quot;Stefan Behnel&quot;</span><span class="p">)</span> <span class="p">),</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">entry</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&quot;News from lxml&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">link</span><span class="p">(</span><span class="n">href</span><span class="o">=</span><span class="s">&quot;http://codespeak.net/lxml/&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">summary</span><span class="p">(</span><span class="s">&quot;See what&#39;s &lt;b&gt;fun&lt;/b&gt; about lxml...&quot;</span><span class="p">,</span>
-<span class="gp">... </span>              <span class="nb">type</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-</pre></div>
-</div>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.etree</span> <span class="kn">import</span> <span class="n">tostring</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span> <span class="n">tostring</span><span class="p">(</span><span class="n">atom</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="p">)</span>
-</pre></div>
-</div>
-</dd></dl>
-
-</div>
-<div class="section" id="example-generate-xml-2">
-<h3>Example: generate XML (2)<a class="headerlink" href="#example-generate-xml-2" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">atom</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">author</span><span class="p">(</span> <span class="n">A</span><span class="o">.</span><span class="n">name</span><span class="p">(</span><span class="s">&quot;Stefan Behnel&quot;</span><span class="p">)</span> <span class="p">),</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">entry</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&quot;News from lxml&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">link</span><span class="p">(</span><span class="n">href</span><span class="o">=</span><span class="s">&quot;http://codespeak.net/lxml/&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">summary</span><span class="p">(</span><span class="s">&quot;See what&#39;s &lt;b&gt;fun&lt;/b&gt; about lxml...&quot;</span><span class="p">,</span>
-<span class="gp">... </span>              <span class="nb">type</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-</pre></div>
-</div>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;feed</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.w3.org/2005/Atom&quot;</span><span class="nt">&gt;</span>
-  <span class="nt">&lt;author&gt;</span>
-    <span class="nt">&lt;name&gt;</span>Stefan Behnel<span class="nt">&lt;/name&gt;</span>
-  <span class="nt">&lt;/author&gt;</span>
-  <span class="nt">&lt;entry&gt;</span>
-    <span class="nt">&lt;title&gt;</span>News from lxml<span class="nt">&lt;/title&gt;</span>
-    <span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">&quot;http://codespeak.net/lxml/&quot;</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;summary</span> <span class="na">type=</span><span class="s">&quot;html&quot;</span><span class="nt">&gt;</span>See what&#39;s <span class="ni">&amp;lt;</span>b<span class="ni">&amp;gt;</span>fun<span class="ni">&amp;lt;</span>/b<span class="ni">&amp;gt;</span>
-                         about lxml...<span class="nt">&lt;/summary&gt;</span>
-  <span class="nt">&lt;/entry&gt;</span>
-<span class="nt">&lt;/feed&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="be-careful-what-you-type">
-<h3>Be careful what you type!<a class="headerlink" href="#be-careful-what-you-type" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">atom</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">author</span><span class="p">(</span> <span class="n">A</span><span class="o">.</span><span class="n">name</span><span class="p">(</span><span class="s">&quot;Stefan Behnel&quot;</span><span class="p">)</span> <span class="p">),</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">entry</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">titel</span><span class="p">(</span><span class="s">&quot;News from lxml&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">link</span><span class="p">(</span><span class="n">href</span><span class="o">=</span><span class="s">&quot;http://codespeak.net/lxml/&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">summary</span><span class="p">(</span><span class="s">&quot;See what&#39;s &lt;b&gt;fun&lt;/b&gt; about lxml...&quot;</span><span class="p">,</span>
-<span class="gp">... </span>              <span class="nb">type</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-</pre></div>
-</div>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;feed</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.w3.org/2005/Atom&quot;</span><span class="nt">&gt;</span>
-  <span class="nt">&lt;author&gt;</span>
-    <span class="nt">&lt;name&gt;</span>Stefan Behnel<span class="nt">&lt;/name&gt;</span>
-  <span class="nt">&lt;/author&gt;</span>
-  <span class="nt">&lt;entry&gt;</span>
-    <span class="nt">&lt;titel&gt;</span>News from lxml<span class="nt">&lt;/titel&gt;</span>
-    <span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">&quot;http://codespeak.net/lxml/&quot;</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;summary</span> <span class="na">type=</span><span class="s">&quot;html&quot;</span><span class="nt">&gt;</span>See what&#39;s <span class="ni">&amp;lt;</span>b<span class="ni">&amp;gt;</span>fun<span class="ni">&amp;lt;</span>/b<span class="ni">&amp;gt;</span>
-                         about lxml...<span class="nt">&lt;/summary&gt;</span>
-  <span class="nt">&lt;/entry&gt;</span>
-<span class="nt">&lt;/feed&gt;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="want-more-type-safety">
-<h3>Want more &#8216;type safety&#8217;?<a class="headerlink" href="#want-more-type-safety" title="Permalink to this headline">¶</a></h3>
-<p>Write an XML generator <em>module</em> instead:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># atomgen.py</span>
-
-<span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-<span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">ElementMaker</span>
-
-<span class="n">ATOM_NAMESPACE</span> <span class="o">=</span> <span class="s">&quot;http://www.w3.org/2005/Atom&quot;</span>
-
-<span class="n">A</span> <span class="o">=</span> <span class="n">ElementMaker</span><span class="p">(</span><span class="n">namespace</span><span class="o">=</span><span class="n">ATOM_NAMESPACE</span><span class="p">,</span>
-                 <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="n">ATOM_NAMESPACE</span><span class="p">})</span>
-
-<span class="n">feed</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">feed</span>
-<span class="n">entry</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">entry</span>
-<span class="n">title</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">title</span>
-<span class="c"># ... and so on and so forth ...</span>
-
-
-<span class="c"># plus a little validation function: isvalid()</span>
-<span class="n">isvalid</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">RelaxNG</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="s">&quot;atom.rng&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-atom-generator-module">
-<h3>The Atom generator module<a class="headerlink" href="#the-atom-generator-module" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">atomgen</span> <span class="kn">as</span> <span class="nn">A</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">atom</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">author</span><span class="p">(</span> <span class="n">A</span><span class="o">.</span><span class="n">name</span><span class="p">(</span><span class="s">&quot;Stefan Behnel&quot;</span><span class="p">)</span> <span class="p">),</span>
-<span class="gp">... </span>  <span class="n">A</span><span class="o">.</span><span class="n">entry</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">link</span><span class="p">(</span><span class="n">href</span><span class="o">=</span><span class="s">&quot;http://codespeak.net/lxml/&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&quot;News from lxml&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">A</span><span class="o">.</span><span class="n">summary</span><span class="p">(</span><span class="s">&quot;See what&#39;s &lt;b&gt;fun&lt;/b&gt; about lxml...&quot;</span><span class="p">,</span>
-<span class="gp">... </span>              <span class="nb">type</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">A</span><span class="o">.</span><span class="n">isvalid</span><span class="p">(</span><span class="n">atom</span><span class="p">)</span> <span class="c"># ok, forgot the ID&#39;s =&gt; invalid XML ...</span>
-<span class="go">False</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">title</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">titel</span><span class="p">(</span><span class="s">&quot;News from lxml&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AttributeError</span>: <span class="n">&#39;module&#39; object has no attribute &#39;titel&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="mixing-languages-1">
-<h3>Mixing languages (1)<a class="headerlink" href="#mixing-languages-1" title="Permalink to this headline">¶</a></h3>
-<p>Atom can embed <em>serialised</em> HTML</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.html.builder</span> <span class="kn">as</span> <span class="nn">h</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">html_fragment</span> <span class="o">=</span> <span class="n">h</span><span class="o">.</span><span class="n">DIV</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="s">&quot;this is some</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span>
-<span class="gp">... </span>  <span class="n">h</span><span class="o">.</span><span class="n">A</span><span class="p">(</span><span class="s">&quot;HTML&quot;</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s">&quot;http://w3.org/MarkUp/&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="s">&quot;</span><span class="se">\n</span><span class="s">content&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<dl class="class">
-<dt>
-<em class="property">class </em><tt class="descname">incremental</tt></dt>
-<dd><div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">serialised_html</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html_fragment</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">summary</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">summary</span><span class="p">(</span><span class="n">serialised_html</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">&quot;html&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">summary</span><span class="p">))</span>
-<span class="go">&lt;summary xmlns=&quot;http://www.w3.org/2005/Atom&quot; type=&quot;html&quot;&gt;</span>
-<span class="go">   &amp;lt;div&amp;gt;this is some</span>
-<span class="go">   &amp;lt;a href=&quot;http://w3.org/MarkUp/&quot;&amp;gt;HTML&amp;lt;/a&amp;gt;</span>
-<span class="go">   content&amp;lt;/div&amp;gt;</span>
-<span class="go">&lt;/summary&gt;</span>
-</pre></div>
-</div>
-</dd></dl>
-
-</div>
-<div class="section" id="mixing-languages-2">
-<h3>Mixing languages (2)<a class="headerlink" href="#mixing-languages-2" title="Permalink to this headline">¶</a></h3>
-<p>Atom can also embed non-escaped XHTML</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml_fragment</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">html_fragment</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.html</span> <span class="kn">import</span> <span class="n">html_to_xhtml</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">html_to_xhtml</span><span class="p">(</span><span class="n">xhtml_fragment</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">summary</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">summary</span><span class="p">(</span><span class="n">xhtml_fragment</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">&quot;xhtml&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<dl class="class">
-<dt>
-<em class="property">class </em><tt class="descname">incremental</tt></dt>
-<dd><div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">summary</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;summary xmlns=&quot;http://www.w3.org/2005/Atom&quot; type=&quot;xhtml&quot;&gt;</span>
-<span class="go">  &lt;html:div xmlns:html=&quot;http://www.w3.org/1999/xhtml&quot;&gt;this is some</span>
-<span class="go">  &lt;html:a href=&quot;http://w3.org/MarkUp/&quot;&gt;HTML&lt;/html:a&gt;</span>
-<span class="go">  content&lt;/html:div&gt;</span>
-<span class="go">&lt;/summary&gt;</span>
-</pre></div>
-</div>
-</dd></dl>
-
-</div>
-<div class="section" id="summary-of-lesson-2">
-<h3>Summary of lesson 2<a class="headerlink" href="#summary-of-lesson-2" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>generating XML is easy<ul>
-<li>use the ElementMaker</li>
-</ul>
-</li>
-<li>wrap it in a module that provides<ul>
-<li>the target namespace</li>
-<li>an ElementMaker name for each language element</li>
-<li>a validator</li>
-<li>maybe additional helper functions</li>
-</ul>
-</li>
-<li>mixing languages is easy<ul>
-<li>define a generator module for each</li>
-</ul>
-</li>
-</ul>
-<p>... this is all you need for the <em>output</em> side of XML languages</p>
-</div>
-<div class="section" id="lesson-3-designing-xml-apis">
-<h3>Lesson 3: Designing XML APIs<a class="headerlink" href="#lesson-3-designing-xml-apis" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<div><p><strong>The Element API</strong></p>
-<p>(and how to make it the way <em>you</em> want)</p>
-</div></blockquote>
-</div>
-<div class="section" id="trees-in-c-and-in-python">
-<h3>Trees in C and in Python<a class="headerlink" href="#trees-in-c-and-in-python" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>Trees have two representations:<ul>
-<li>a plain, complete, low-level C tree provided by libxml2</li>
-<li>a set of Python Element proxies, each representing one element</li>
-</ul>
-</li>
-<li>Proxies are created on-the-fly:<ul>
-<li>lxml creates an Element object for a C node on request</li>
-<li>proxies are garbage collected when going out of scope</li>
-<li>XML trees are garbage collected when deleting the last proxy</li>
-</ul>
-</li>
-</ul>
-<dl class="class">
-<dt>
-<em class="property">class </em><tt class="descname">center</tt></dt>
-<dd><img alt="../_images/proxies.png" src="../_images/proxies.png" />
-</dd></dl>
-
-</div>
-<div class="section" id="mapping-python-classes-to-nodes">
-<h3>Mapping Python classes to nodes<a class="headerlink" href="#mapping-python-classes-to-nodes" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>Proxies can be assigned to XML nodes <em>by user code</em><ul>
-<li>lxml tells you about a node, you return a class</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="example-a-simple-element-class-1">
-<h3>Example: a simple Element class (1)<a class="headerlink" href="#example-a-simple-element-class-1" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">define a subclass of ElementBase</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">HonkElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
-<span class="gp">... </span>   <span class="nd">@property</span>
-<span class="gp">... </span>   <span class="k">def</span> <span class="nf">honking</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>      <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;honking&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s">&#39;true&#39;</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">let it replace the default Element class</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementDefaultClassLookup</span><span class="p">(</span>
-<span class="gp">... </span>                            <span class="n">element</span><span class="o">=</span><span class="n">HonkElement</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">lookup</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-</ul>
-</div>
-<div class="section" id="example-a-simple-element-class-2">
-<h3>Example: a simple Element class (2)<a class="headerlink" href="#example-a-simple-element-class-2" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">use the new Element class</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;root&gt;&lt;honk honking=&quot;true&quot;/&gt;&lt;/root&gt;&#39;</span><span class="p">,</span>
-<span class="gp">... </span>                 <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">honking</span>
-<span class="go">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">honking</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-</li>
-</ul>
-</div>
-<div class="section" id="id4">
-<h3>Mapping Python classes to nodes<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>The Element class lookup<ul>
-<li>lxml tells you about a node, you return a class</li>
-<li>no restrictions on lookup algorithm</li>
-<li>each parser can use a different class lookup scheme</li>
-<li>lookup schemes can be chained through fallbacks</li>
-</ul>
-</li>
-<li>Classes can be selected based on<ul>
-<li>the node type (element, comment or processing instruction)<ul>
-<li><tt class="docutils literal"><span class="pre">ElementDefaultClassLookup()</span></tt></li>
-</ul>
-</li>
-<li>the namespaced node name<ul>
-<li><tt class="docutils literal"><span class="pre">CustomElementClassLookup()</span></tt> + a fallback</li>
-<li><tt class="docutils literal"><span class="pre">ElementNamespaceClassLookup()</span></tt> + a fallback</li>
-</ul>
-</li>
-<li>the value of an attribute (e.g. <tt class="docutils literal"><span class="pre">id</span></tt> or <tt class="docutils literal"><span class="pre">class</span></tt>)<ul>
-<li><tt class="docutils literal"><span class="pre">AttributeBasedElementClassLookup()</span></tt> + a fallback</li>
-</ul>
-</li>
-<li>read-only inspection of the tree<ul>
-<li><tt class="docutils literal"><span class="pre">PythonElementClassLookup()</span></tt> + a fallback</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="designing-an-atom-api">
-<h3>Designing an Atom API<a class="headerlink" href="#designing-an-atom-api" title="Permalink to this headline">¶</a></h3>
-<ul>
-<li><p class="first">a feed is a container for entries</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># atom.py</span>
-
-<span class="n">ATOM_NAMESPACE</span> <span class="o">=</span> <span class="s">&quot;http://www.w3.org/2005/Atom&quot;</span>
-<span class="n">_ATOM_NS</span> <span class="o">=</span> <span class="s">&quot;{</span><span class="si">%s</span><span class="s">}&quot;</span> <span class="o">%</span> <span class="n">ATOM_NAMESPACE</span>
-
-<span class="k">class</span> <span class="nc">FeedElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
-    <span class="nd">@property</span>
-    <span class="k">def</span> <span class="nf">entries</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-       <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">_ATOM_NS</span> <span class="o">+</span> <span class="s">&quot;entry&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-<li><p class="first">it also has a couple of meta-data children, e.g. <tt class="docutils literal"><span class="pre">title</span></tt></p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">class</span> <span class="nc">FeedElement</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementBase</span><span class="p">):</span>
-    <span class="c"># ...</span>
-    <span class="nd">@property</span>
-    <span class="k">def</span> <span class="nf">title</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="s">&quot;return the title or None&quot;</span>
-        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&quot;title&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-</li>
-</ul>
-</div>
-<div class="section" id="consider-lxml-objectify">
-<h3>Consider lxml.objectify<a class="headerlink" href="#consider-lxml-objectify" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>ready-to-use, generic Python object API for XML</li>
-</ul>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">objectify</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">feed</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;atom-example.xml&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">feed</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
-<span class="go">Example Feed</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">entry</span><span class="o">.</span><span class="n">title</span> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">feed</span><span class="o">.</span><span class="n">entry</span><span class="p">])</span>
-<span class="go">[&#39;Atom-Powered Robots Run Amok&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">feed</span><span class="o">.</span><span class="n">entry</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
-<span class="go">Atom-Powered Robots Run Amok</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="still-room-for-more-convenience">
-<h3>Still room for more convenience<a class="headerlink" href="#still-room-for-more-convenience" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">chain</span>
-
-<span class="k">class</span> <span class="nc">FeedElement</span><span class="p">(</span><span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifiedElement</span><span class="p">):</span>
-
-    <span class="k">def</span> <span class="nf">addIDs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="s">&quot;initialise the IDs of feed and entries&quot;</span>
-
-        <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">chain</span><span class="p">([</span><span class="bp">self</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">entry</span><span class="p">):</span>
-            <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">_ATOM_NS</span> <span class="o">+</span> <span class="s">&quot;id&quot;</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
-                <span class="nb">id</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_ATOM_NS</span> <span class="o">+</span> <span class="s">&quot;id&quot;</span><span class="p">)</span>
-                <span class="nb">id</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">make_guid</span><span class="p">()</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="incremental-api-design">
-<h3>Incremental API design<a class="headerlink" href="#incremental-api-design" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li>choose an XML API to start with<ul>
-<li>lxml.etree is general purpose</li>
-<li>lxml.objectify is nice for document-style XML</li>
-</ul>
-</li>
-<li>fix Elements that really need some API sugar<ul>
-<li>dict-mappings to children with specific content/attributes</li>
-<li>properties for specially typed attributes or child values</li>
-<li>simplified access to varying content types of an element</li>
-<li>shortcuts for unnecessarily deep subtrees</li>
-</ul>
-</li>
-<li>ignore what works well enough with the Element API<ul>
-<li>lists of homogeneous children -&gt; Element iteration</li>
-<li>string attributes -&gt; .get()/.set()</li>
-</ul>
-</li>
-<li>let the API grow at your fingertips<ul>
-<li>play with it and test use cases</li>
-<li>avoid &#8220;I want because I can&#8221; feature explosion!</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="setting-up-the-element-mapping">
-<h3>Setting up the Element mapping<a class="headerlink" href="#setting-up-the-element-mapping" title="Permalink to this headline">¶</a></h3>
-<p>Atom has a namespace =&gt; leave the mapping to lxml</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># ...</span>
-<span class="n">_atom_lookup</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementNamespaceClassLookup</span><span class="p">(</span>
-                  <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectifyElementClassLookup</span><span class="p">())</span>
-
-<span class="c"># map the classes to tag names</span>
-<span class="n">ns</span> <span class="o">=</span> <span class="n">_atom_lookup</span><span class="o">.</span><span class="n">get_namespace</span><span class="p">(</span><span class="n">ATOM_NAMESPACE</span><span class="p">)</span>
-<span class="n">ns</span><span class="p">[</span><span class="s">&quot;feed&quot;</span><span class="p">]</span>  <span class="o">=</span> <span class="n">FeedElement</span>
-<span class="n">ns</span><span class="p">[</span><span class="s">&quot;entry&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">EntryElement</span>
-<span class="c"># ... and so on</span>
-<span class="c"># or use ns.update(vars()) with appropriate class names</span>
-
-<span class="c"># create a parser that does some whitespace cleanup</span>
-<span class="n">atom_parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-
-<span class="c"># make it use our Atom classes</span>
-<span class="n">atom_parser</span><span class="o">.</span><span class="n">set_element_class_lookup</span><span class="p">(</span><span class="n">_atom_lookup</span><span class="p">)</span>
-
-<span class="c"># and help users in using our parser setup</span>
-<span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="nb">input</span><span class="p">):</span>
-    <span class="k">return</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="nb">input</span><span class="p">,</span> <span class="n">atom_parser</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="using-your-new-atom-api">
-<h3>Using your new Atom API<a class="headerlink" href="#using-your-new-atom-api" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">atom</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">feed</span> <span class="o">=</span> <span class="n">atom</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s">&quot;ep2008/atom-example.xml&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">feed</span><span class="o">.</span><span class="n">entry</span><span class="p">))</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">entry</span><span class="o">.</span><span class="n">title</span> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">feed</span><span class="o">.</span><span class="n">entry</span><span class="p">])</span>
-<span class="go">[&#39;Atom-Powered Robots Run Amok&#39;]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">link_tag</span> <span class="o">=</span> <span class="s">&quot;{</span><span class="si">%s</span><span class="s">}link&quot;</span> <span class="o">%</span> <span class="n">atom</span><span class="o">.</span><span class="n">ATOM_NAMESPACE</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span><span class="n">link</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;href&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">link</span> <span class="ow">in</span> <span class="n">feed</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="n">link_tag</span><span class="p">)])</span>
-<span class="go">[&#39;http://example.org/&#39;, &#39;http://example.org/2003/12/13/atom03&#39;]</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="summary-of-lesson-3">
-<h3>Summary of lesson 3<a class="headerlink" href="#summary-of-lesson-3" title="Permalink to this headline">¶</a></h3>
-<p>To implement an XML API ...</p>
-<ol class="arabic simple">
-<li>start off with lxml&#8217;s Element API<ul>
-<li>or take a look at the object API of lxml.objectify</li>
-</ul>
-</li>
-<li>specialise it into a set of custom Element classes</li>
-<li>map them to XML tags using one of the lookup schemes</li>
-<li>improve the API incrementally while using it<ul>
-<li>discover inconveniences and beautify them</li>
-<li>avoid putting work into things that work</li>
-</ul>
-</li>
-</ol>
-</div>
-<div class="section" id="conclusion">
-<h3>Conclusion<a class="headerlink" href="#conclusion" title="Permalink to this headline">¶</a></h3>
-<p>lxml ...</p>
-<ul class="simple">
-<li>provides a convenient set of tools for XML and HTML<ul>
-<li>parsing</li>
-<li>generating</li>
-<li>working with in-memory trees</li>
-</ul>
-</li>
-<li>follows Python idioms wherever possible<ul>
-<li>highly extensible through wrapping and subclassing</li>
-<li>callable objects for XPath, CSS selectors, XSLT, schemas</li>
-<li>iteration for tree traversal (even while parsing)</li>
-<li>list-/dict-like APIs, properties, keyword arguments, ...</li>
-</ul>
-</li>
-<li>makes extension and specialisation easy<ul>
-<li>write a special XML generator module in trivial code</li>
-<li>write your own XML API incrementally on-the-fly</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../main.html">
-              <img class="logo" src="../_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="../main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Implementing XML languages with lxml</a><ul>
-<li><a class="reference internal" href="#dr-stefan-behnel">Dr. Stefan Behnel</a><ul>
-<li><a class="reference internal" href="#what-is-an-xml-language">What is an Â»XML language«?</a></li>
-<li><a class="reference internal" href="#popular-mistakes-to-avoid-1">Popular mistakes to avoid (1)</a></li>
-<li><a class="reference internal" href="#popular-mistakes-to-avoid-2">Popular mistakes to avoid (2)</a></li>
-<li><a class="reference internal" href="#id1">Popular mistakes to avoid (2)</a></li>
-<li><a class="reference internal" href="#popular-mistakes-to-avoid-3">Popular mistakes to avoid (3)</a></li>
-<li><a class="reference internal" href="#id2">Popular mistakes to avoid (3)</a></li>
-<li><a class="reference internal" href="#working-with-xml">Working with XML</a></li>
-<li><a class="reference internal" href="#how-can-you-work-with-xml">How can you work with XML?</a></li>
-<li><a class="reference internal" href="#what-if-you-could-simplify-this">What if you could simplify this?</a></li>
-<li><a class="reference internal" href="#id3">What if you could simplify this ...</a></li>
-<li><a class="reference internal" href="#overview">Overview</a></li>
-<li><a class="reference internal" href="#what-is-lxml">What is lxml?</a></li>
-<li><a class="reference internal" href="#what-do-you-get-for-your-money">What do you get for your money?</a></li>
-<li><a class="reference internal" href="#lesson-0-a-quick-overview">Lesson 0: a quick overview</a></li>
-<li><a class="reference internal" href="#namespaces-in-elementtree">Namespaces in ElementTree</a></li>
-<li><a class="reference internal" href="#text-content-in-elementtree">Text content in ElementTree</a></li>
-<li><a class="reference internal" href="#attributes-in-elementtree">Attributes in ElementTree</a></li>
-<li><a class="reference internal" href="#tree-iteration-in-lxml-etree-1">Tree iteration in lxml.etree (1)</a></li>
-<li><a class="reference internal" href="#tree-iteration-in-lxml-etree-2">Tree iteration in lxml.etree (2)</a></li>
-<li><a class="reference internal" href="#path-languages-in-lxml">Path languages in lxml</a></li>
-<li><a class="reference internal" href="#summary-of-lesson-0">Summary of lesson 0</a></li>
-<li><a class="reference internal" href="#lesson-1-parsing-xml-html">Lesson 1: parsing XML/HTML</a></li>
-<li><a class="reference internal" href="#parsing-xml-and-html-from">Parsing XML and HTML from ...</a></li>
-<li><a class="reference internal" href="#example-parsing-from-a-string">Example: parsing from a string</a></li>
-<li><a class="reference internal" href="#parsing-xml-into">Parsing XML into ...</a></li>
-<li><a class="reference internal" href="#summary-of-lesson-1">Summary of lesson 1</a></li>
-<li><a class="reference internal" href="#lesson-2-generating-xml">Lesson 2: generating XML</a></li>
-<li><a class="reference internal" href="#the-example-language-atom">The example language: Atom</a></li>
-<li><a class="reference internal" href="#example-generate-xml-1">Example: generate XML (1)</a></li>
-<li><a class="reference internal" href="#example-generate-xml-2">Example: generate XML (2)</a></li>
-<li><a class="reference internal" href="#be-careful-what-you-type">Be careful what you type!</a></li>
-<li><a class="reference internal" href="#want-more-type-safety">Want more &#8216;type safety&#8217;?</a></li>
-<li><a class="reference internal" href="#the-atom-generator-module">The Atom generator module</a></li>
-<li><a class="reference internal" href="#mixing-languages-1">Mixing languages (1)</a></li>
-<li><a class="reference internal" href="#mixing-languages-2">Mixing languages (2)</a></li>
-<li><a class="reference internal" href="#summary-of-lesson-2">Summary of lesson 2</a></li>
-<li><a class="reference internal" href="#lesson-3-designing-xml-apis">Lesson 3: Designing XML APIs</a></li>
-<li><a class="reference internal" href="#trees-in-c-and-in-python">Trees in C and in Python</a></li>
-<li><a class="reference internal" href="#mapping-python-classes-to-nodes">Mapping Python classes to nodes</a></li>
-<li><a class="reference internal" href="#example-a-simple-element-class-1">Example: a simple Element class (1)</a></li>
-<li><a class="reference internal" href="#example-a-simple-element-class-2">Example: a simple Element class (2)</a></li>
-<li><a class="reference internal" href="#id4">Mapping Python classes to nodes</a></li>
-<li><a class="reference internal" href="#designing-an-atom-api">Designing an Atom API</a></li>
-<li><a class="reference internal" href="#consider-lxml-objectify">Consider lxml.objectify</a></li>
-<li><a class="reference internal" href="#still-room-for-more-convenience">Still room for more convenience</a></li>
-<li><a class="reference internal" href="#incremental-api-design">Incremental API design</a></li>
-<li><a class="reference internal" href="#setting-up-the-element-mapping">Setting up the Element mapping</a></li>
-<li><a class="reference internal" href="#using-your-new-atom-api">Using your new Atom API</a></li>
-<li><a class="reference internal" href="#summary-of-lesson-3">Summary of lesson 3</a></li>
-<li><a class="reference internal" href="#conclusion">Conclusion</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="../_sources/s5/lxml-ep2008.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="../search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="../main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/sax.html b/doc/sphinx/sax.html
deleted file mode 100644 (file)
index 4cea0ed..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Sax support &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="sax-support">
-<h1><a class="toc-backref" href="#id1">Sax support</a><a class="headerlink" href="#sax-support" title="Permalink to this headline">¶</a></h1>
-<p>In this document we&#8217;ll describe lxml&#8217;s SAX support.  lxml has support for
-producing SAX events for an ElementTree or Element.  lxml can also turn SAX
-events into an ElementTree.  The SAX API used by lxml is compatible with that
-in the Python core (xml.sax), so is useful for interfacing lxml with code that
-uses the Python core SAX facilities.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#sax-support" id="id1">Sax support</a><ul>
-<li><a class="reference internal" href="#building-a-tree-from-sax-events" id="id2">Building a tree from SAX events</a></li>
-<li><a class="reference internal" href="#producing-sax-events-from-an-elementtree-or-element" id="id3">Producing SAX events from an ElementTree or Element</a></li>
-<li><a class="reference internal" href="#interfacing-with-pulldom-minidom" id="id4">Interfacing with pulldom/minidom</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="building-a-tree-from-sax-events">
-<h2><a class="toc-backref" href="#id2">Building a tree from SAX events</a><a class="headerlink" href="#building-a-tree-from-sax-events" title="Permalink to this headline">¶</a></h2>
-<p>First of all, lxml has support for building a new tree given SAX events.  To
-do this, we use the special SAX content handler defined by lxml named
-<tt class="docutils literal"><span class="pre">lxml.sax.ElementTreeContentHandler</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">lxml.sax</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">sax</span><span class="o">.</span><span class="n">ElementTreeContentHandler</span><span class="p">()</span>
-</pre></div>
-</div>
-<p>Now let&#8217;s fire some SAX events at it:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">startElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">&#39;a&#39;</span><span class="p">),</span> <span class="s">&#39;a&#39;</span><span class="p">,</span> <span class="p">{})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">startElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">&#39;b&#39;</span><span class="p">),</span> <span class="s">&#39;b&#39;</span><span class="p">,</span> <span class="p">{(</span><span class="bp">None</span><span class="p">,</span> <span class="s">&#39;foo&#39;</span><span class="p">):</span> <span class="s">&#39;bar&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">characters</span><span class="p">(</span><span class="s">&#39;Hello world&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">endElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">&#39;b&#39;</span><span class="p">),</span> <span class="s">&#39;b&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">endElementNS</span><span class="p">((</span><span class="bp">None</span><span class="p">,</span> <span class="s">&#39;a&#39;</span><span class="p">),</span> <span class="s">&#39;a&#39;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This constructs an equivalent tree.  You can access it through the <tt class="docutils literal"><span class="pre">etree</span></tt>
-property of the handler:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">handler</span><span class="o">.</span><span class="n">etree</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lxml</span><span class="o">.</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">())</span>
-<span class="go">b&#39;&lt;a&gt;&lt;b foo=&quot;bar&quot;&gt;Hello world&lt;/b&gt;&lt;/a&gt;&#39;</span>
-</pre></div>
-</div>
-<p>By passing a <tt class="docutils literal"><span class="pre">makeelement</span></tt> function the constructor of
-<tt class="docutils literal"><span class="pre">ElementTreeContentHandler</span></tt>, e.g. the one of a parser you configured, you
-can determine which element class lookup scheme should be used.</p>
-</div>
-<div class="section" id="producing-sax-events-from-an-elementtree-or-element">
-<h2><a class="toc-backref" href="#id3">Producing SAX events from an ElementTree or Element</a><a class="headerlink" href="#producing-sax-events-from-an-elementtree-or-element" title="Permalink to this headline">¶</a></h2>
-<p>Let&#8217;s make a tree we can generate SAX events for:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">lxml</span><span class="o">.</span><span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>To see whether the correct SAX events are produced, we&#8217;ll write a custom
-content handler.:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">xml.sax.handler</span> <span class="kn">import</span> <span class="n">ContentHandler</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">MyContentHandler</span><span class="p">(</span><span class="n">ContentHandler</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">a_amount</span> <span class="o">=</span> <span class="mi">0</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">b_amount</span> <span class="o">=</span> <span class="mi">0</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="bp">None</span>
-<span class="gp">...</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">startElementNS</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">qname</span><span class="p">,</span> <span class="n">attributes</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="n">uri</span><span class="p">,</span> <span class="n">localname</span> <span class="o">=</span> <span class="n">name</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="n">localname</span> <span class="o">==</span> <span class="s">&#39;a&#39;</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="bp">self</span><span class="o">.</span><span class="n">a_amount</span> <span class="o">+=</span> <span class="mi">1</span>
-<span class="gp">... </span>        <span class="k">if</span> <span class="n">localname</span> <span class="o">==</span> <span class="s">&#39;b&#39;</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="bp">self</span><span class="o">.</span><span class="n">b_amount</span> <span class="o">+=</span> <span class="mi">1</span>
-<span class="gp">...</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">characters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">data</span>
-</pre></div>
-</div>
-<p>Note that it only defines the startElementNS() method and not startElement().
-The SAX event generator in lxml.sax currently only supports namespace-aware
-processing.</p>
-<p>To test the content handler, we can produce SAX events from the tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span> <span class="o">=</span> <span class="n">MyContentHandler</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lxml</span><span class="o">.</span><span class="n">sax</span><span class="o">.</span><span class="n">saxify</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">handler</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>This is what we expect:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">a_amount</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">b_amount</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;Text&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="interfacing-with-pulldom-minidom">
-<h2><a class="toc-backref" href="#id4">Interfacing with pulldom/minidom</a><a class="headerlink" href="#interfacing-with-pulldom-minidom" title="Permalink to this headline">¶</a></h2>
-<p>lxml.sax is a simple way to interface with the standard XML support in the
-Python library.  Note, however, that this is a one-way solution, as Python&#8217;s
-DOM implementation connot generate SAX events from a DOM tree.</p>
-<p>You can use xml.dom.pulldom to build a minidom from lxml:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">xml.dom.pulldom</span> <span class="kn">import</span> <span class="n">SAX2DOM</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">handler</span> <span class="o">=</span> <span class="n">SAX2DOM</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">lxml</span><span class="o">.</span><span class="n">sax</span><span class="o">.</span><span class="n">saxify</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">handler</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>PullDOM makes the result available through the <tt class="docutils literal"><span class="pre">document</span></tt> attribute:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">dom</span> <span class="o">=</span> <span class="n">handler</span><span class="o">.</span><span class="n">document</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">dom</span><span class="o">.</span><span class="n">firstChild</span><span class="o">.</span><span class="n">localName</span><span class="p">)</span>
-<span class="go">a</span>
-</pre></div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Sax support</a><ul>
-<li><a class="reference internal" href="#building-a-tree-from-sax-events">Building a tree from SAX events</a></li>
-<li><a class="reference internal" href="#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li>
-<li><a class="reference internal" href="#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/sax.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/search.html b/doc/sphinx/search.html
deleted file mode 100644 (file)
index 9b65c89..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Search &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <script type="text/javascript" src="_static/searchtools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" />
-  <script type="text/javascript">
-    jQuery(function() { Search.loadIndex("searchindex.js"); });
-  </script>
-   
-
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <h1 id="search-documentation">Search</h1>
-  <div id="fallback" class="admonition warning">
-  <script type="text/javascript">$('#fallback').hide();</script>
-  <p>
-    Please activate JavaScript to enable the search
-    functionality.
-  </p>
-  </div>
-  <p>
-    From here you can search these documents. Enter your search
-    words into the box below and click "search". Note that the search
-    function will automatically search for all of the words. Pages
-    containing fewer words won't appear in the result list.
-  </p>
-  <form action="" method="get">
-    <input type="text" name="q" value="" />
-    <input type="submit" value="search" />
-    <span id="search-progress" style="padding-left: 10px"></span>
-  </form>
-  
-  <div id="search-results">
-  
-  </div>
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/sitemap.html b/doc/sphinx/sitemap.html
deleted file mode 100644 (file)
index 04a2323..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Sitemap &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="sitemap">
-<h1>Sitemap<a class="headerlink" href="#sitemap" title="Permalink to this headline">¶</a></h1>
-<p>Contents:</p>
-<div class="toctree-wrapper compound">
-<ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="main.html">lxml</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="main.html#introduction">Introduction</a></li>
-<li class="toctree-l2"><a class="reference internal" href="main.html#documentation">Documentation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="main.html#download">Download</a></li>
-<li class="toctree-l2"><a class="reference internal" href="main.html#mailing-list">Mailing list</a></li>
-<li class="toctree-l2"><a class="reference internal" href="main.html#bug-tracker">Bug tracker</a></li>
-<li class="toctree-l2"><a class="reference internal" href="main.html#license">License</a></li>
-<li class="toctree-l2"><a class="reference internal" href="main.html#old-versions">Old Versions</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="intro.html">Why lxml?</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="intro.html#motto">Motto</a></li>
-<li class="toctree-l2"><a class="reference internal" href="intro.html#aims">Aims</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="api.html">APIs specific to lxml.etree</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="api.html#lxml-etree">lxml.etree</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#other-element-apis">Other Element APIs</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#trees-and-documents">Trees and Documents</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#iteration">Iteration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#error-logging">Error logging</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#serialisation">Serialisation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#cdata">CDATA</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="performance.html">Benchmarks and Speed</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#general-notes">General notes</a></li>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#how-to-read-the-timings">How to read the timings</a></li>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#the-elementtree-api">The ElementTree API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#xpath">XPath</a></li>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#a-longer-example">A longer example</a></li>
-<li class="toctree-l2"><a class="reference internal" href="performance.html#lxml-objectify">lxml.objectify</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="compatibility.html">ElementTree compatibility of lxml.etree</a></li>
-<li class="toctree-l1"><a class="reference internal" href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#general-questions">General Questions</a></li>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#installation">Installation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#contributing">Contributing</a></li>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#bugs">Bugs</a></li>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#id1">Threading</a></li>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="tutorial.html">The lxml.etree Tutorial</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="tutorial.html#the-element-class">The Element class</a></li>
-<li class="toctree-l2"><a class="reference internal" href="tutorial.html#the-elementtree-class">The ElementTree class</a></li>
-<li class="toctree-l2"><a class="reference internal" href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li>
-<li class="toctree-l2"><a class="reference internal" href="tutorial.html#namespaces">Namespaces</a></li>
-<li class="toctree-l2"><a class="reference internal" href="tutorial.html#the-e-factory">The E-factory</a></li>
-<li class="toctree-l2"><a class="reference internal" href="tutorial.html#elementpath">ElementPath</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="api.html">API reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="api.html#lxml-etree">lxml.etree</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#other-element-apis">Other Element APIs</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#trees-and-documents">Trees and Documents</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#iteration">Iteration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#error-logging">Error logging</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#serialisation">Serialisation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#cdata">CDATA</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li>
-<li class="toctree-l2"><a class="reference internal" href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="parsing.html">Parsing XML and HTML with lxml</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="parsing.html#parsers">Parsers</a></li>
-<li class="toctree-l2"><a class="reference internal" href="parsing.html#the-target-parser-interface">The target parser interface</a></li>
-<li class="toctree-l2"><a class="reference internal" href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li>
-<li class="toctree-l2"><a class="reference internal" href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li>
-<li class="toctree-l2"><a class="reference internal" href="parsing.html#python-unicode-strings">Python unicode strings</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="validation.html">Validation with lxml</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="validation.html#validation-at-parse-time">Validation at parse time</a></li>
-<li class="toctree-l2"><a class="reference internal" href="validation.html#id1">DTD</a></li>
-<li class="toctree-l2"><a class="reference internal" href="validation.html#relaxng">RelaxNG</a></li>
-<li class="toctree-l2"><a class="reference internal" href="validation.html#xmlschema">XMLSchema</a></li>
-<li class="toctree-l2"><a class="reference internal" href="validation.html#id2">Schematron</a></li>
-<li class="toctree-l2"><a class="reference internal" href="validation.html#id3">(Pre-ISO-Schematron)</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="xpathxslt.html">XPath and XSLT with lxml</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="xpathxslt.html#xpath">XPath</a></li>
-<li class="toctree-l2"><a class="reference internal" href="xpathxslt.html#xslt">XSLT</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="objectify.html">lxml.objectify</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="objectify.html#asserting-a-schema">Asserting a Schema</a></li>
-<li class="toctree-l2"><a class="reference internal" href="objectify.html#objectpath">ObjectPath</a></li>
-<li class="toctree-l2"><a class="reference internal" href="objectify.html#python-data-types">Python data types</a></li>
-<li class="toctree-l2"><a class="reference internal" href="objectify.html#how-data-types-are-matched">How data types are matched</a></li>
-<li class="toctree-l2"><a class="reference internal" href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="lxmlhtml.html">lxml.html</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#parsing-html">Parsing HTML</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#working-with-links">Working with links</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#forms">Forms</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#html-diff">HTML Diff</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxmlhtml.html#examples">Examples</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="cssselect.html">lxml.cssselect</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li>
-<li class="toctree-l2"><a class="reference internal" href="cssselect.html#css-selectors">CSS Selectors</a></li>
-<li class="toctree-l2"><a class="reference internal" href="cssselect.html#namespaces">Namespaces</a></li>
-<li class="toctree-l2"><a class="reference internal" href="cssselect.html#limitations">Limitations</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="elementsoup.html">BeautifulSoup Parser</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li>
-<li class="toctree-l2"><a class="reference internal" href="elementsoup.html#entity-handling">Entity handling</a></li>
-<li class="toctree-l2"><a class="reference internal" href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li>
-<li class="toctree-l2"><a class="reference internal" href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="html5parser.html">html5lib Parser</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li>
-<li class="toctree-l2"><a class="reference internal" href="html5parser.html#function-reference">Function Reference</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="resolvers.html">Document loading and URL resolving</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="resolvers.html#xml-catalogs">XML Catalogs</a></li>
-<li class="toctree-l2"><a class="reference internal" href="resolvers.html#uri-resolvers">URI Resolvers</a></li>
-<li class="toctree-l2"><a class="reference internal" href="resolvers.html#document-loading-in-context">Document loading in context</a></li>
-<li class="toctree-l2"><a class="reference internal" href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="extensions.html">Python extensions for XPath and XSLT</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li>
-<li class="toctree-l2"><a class="reference internal" href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="element_classes.html">Using custom Element classes in lxml</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li>
-<li class="toctree-l2"><a class="reference internal" href="element_classes.html#element-initialization">Element initialization</a></li>
-<li class="toctree-l2"><a class="reference internal" href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li>
-<li class="toctree-l2"><a class="reference internal" href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li>
-<li class="toctree-l2"><a class="reference internal" href="element_classes.html#id1">Implementing namespaces</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="sax.html">Sax support</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li>
-<li class="toctree-l2"><a class="reference internal" href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li>
-<li class="toctree-l2"><a class="reference internal" href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="capi.html">The public C-API of lxml.etree</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li>
-<li class="toctree-l2"><a class="reference internal" href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">How to build lxml from source</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="build.html#cython">Cython</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#github-git-and-hg">Github, git and hg</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#id2">Setuptools</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#building-an-egg">Building an egg</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#static-linking-on-windows">Static linking on Windows</a></li>
-<li class="toctree-l2"><a class="reference internal" href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="lxml-source-howto.html">How to read the source of lxml</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxml-source-howto.html#where-to-start">Where to start?</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxml-source-howto.html#python-modules">Python modules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li>
-<li class="toctree-l2"><a class="reference internal" href="lxml-source-howto.html#lxml-html">lxml.html</a></li>
-</ul>
-</li>
-<li class="toctree-l1 current"><a class="current reference internal" href="">Sitemap</a></li>
-</ul>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/sitemap.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/tutorial.html b/doc/sphinx/tutorial.html
deleted file mode 100644 (file)
index 76fba5c..0000000
+++ /dev/null
@@ -1,1167 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <meta content="The lxml tutorial on XML processing with Python" name="description" />
-<meta content="XML processing with Python, lxml, lxml.etree, tutorial, ElementTree, Python, XML, HTML" name="keywords" />
-
-    <title>The lxml.etree Tutorial &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="the-lxml-etree-tutorial">
-<h1><a class="toc-backref" href="#id2">The lxml.etree Tutorial</a><a class="headerlink" href="#the-lxml-etree-tutorial" title="Permalink to this headline">¶</a></h1>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name">Author:</th><td class="field-body">Stefan Behnel</td>
-</tr>
-</tbody>
-</table>
-<p>This is a tutorial on XML processing with <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>.  It briefly
-overviews the main concepts of the <a class="reference external" href="http://effbot.org/zone/element-index.htm#documentation">ElementTree API</a>, and some simple
-enhancements that make your life as a programmer easier.</p>
-<p>For a complete reference of the API, see the <a class="reference external" href="api/index.html">generated API
-documentation</a>.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#the-lxml-etree-tutorial" id="id2">The lxml.etree Tutorial</a><ul>
-<li><a class="reference internal" href="#the-element-class" id="id3">The Element class</a><ul>
-<li><a class="reference internal" href="#elements-are-lists" id="id4">Elements are lists</a></li>
-<li><a class="reference internal" href="#elements-carry-attributes" id="id5">Elements carry attributes</a></li>
-<li><a class="reference internal" href="#elements-contain-text" id="id6">Elements contain text</a></li>
-<li><a class="reference internal" href="#using-xpath-to-find-text" id="id7">Using XPath to find text</a></li>
-<li><a class="reference internal" href="#tree-iteration" id="id8">Tree iteration</a></li>
-<li><a class="reference internal" href="#serialisation" id="id9">Serialisation</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#the-elementtree-class" id="id10">The ElementTree class</a></li>
-<li><a class="reference internal" href="#parsing-from-strings-and-files" id="id11">Parsing from strings and files</a><ul>
-<li><a class="reference internal" href="#the-fromstring-function" id="id12">The fromstring() function</a></li>
-<li><a class="reference internal" href="#the-xml-function" id="id13">The XML() function</a></li>
-<li><a class="reference internal" href="#the-parse-function" id="id14">The parse() function</a></li>
-<li><a class="reference internal" href="#parser-objects" id="id15">Parser objects</a></li>
-<li><a class="reference internal" href="#incremental-parsing" id="id16">Incremental parsing</a></li>
-<li><a class="reference internal" href="#event-driven-parsing" id="id17">Event-driven parsing</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#namespaces" id="id18">Namespaces</a></li>
-<li><a class="reference internal" href="#the-e-factory" id="id19">The E-factory</a></li>
-<li><a class="reference internal" href="#elementpath" id="id20">ElementPath</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<p>A common way to import <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> is as follows:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-</pre></div>
-</div>
-<p>If your code only uses the ElementTree API and does not rely on any
-functionality that is specific to <tt class="docutils literal"><span class="pre">lxml.etree</span></tt>, you can also use (any part
-of) the following import chain as a fall-back to the original ElementTree:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="k">try</span><span class="p">:</span>
-  <span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-  <span class="k">print</span><span class="p">(</span><span class="s">&quot;running with lxml.etree&quot;</span><span class="p">)</span>
-<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-  <span class="k">try</span><span class="p">:</span>
-    <span class="c"># Python 2.5</span>
-    <span class="kn">import</span> <span class="nn">xml.etree.cElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-    <span class="k">print</span><span class="p">(</span><span class="s">&quot;running with cElementTree on Python 2.5+&quot;</span><span class="p">)</span>
-  <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-    <span class="k">try</span><span class="p">:</span>
-      <span class="c"># Python 2.5</span>
-      <span class="kn">import</span> <span class="nn">xml.etree.ElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-      <span class="k">print</span><span class="p">(</span><span class="s">&quot;running with ElementTree on Python 2.5+&quot;</span><span class="p">)</span>
-    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-      <span class="k">try</span><span class="p">:</span>
-        <span class="c"># normal cElementTree install</span>
-        <span class="kn">import</span> <span class="nn">cElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-        <span class="k">print</span><span class="p">(</span><span class="s">&quot;running with cElementTree&quot;</span><span class="p">)</span>
-      <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-        <span class="k">try</span><span class="p">:</span>
-          <span class="c"># normal ElementTree install</span>
-          <span class="kn">import</span> <span class="nn">elementtree.ElementTree</span> <span class="kn">as</span> <span class="nn">etree</span>
-          <span class="k">print</span><span class="p">(</span><span class="s">&quot;running with ElementTree&quot;</span><span class="p">)</span>
-        <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
-          <span class="k">print</span><span class="p">(</span><span class="s">&quot;Failed to import ElementTree from any known place&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>To aid in writing portable code, this tutorial makes it clear in the examples
-which part of the presented API is an extension of lxml.etree over the
-original <a class="reference external" href="http://effbot.org/zone/element-index.htm#documentation">ElementTree API</a>, as defined by Fredrik Lundh&#8217;s <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree
-library</a>.</p>
-<div class="section" id="the-element-class">
-<h2><a class="toc-backref" href="#id3">The Element class</a><a class="headerlink" href="#the-element-class" title="Permalink to this headline">¶</a></h2>
-<p>An <tt class="docutils literal"><span class="pre">Element</span></tt> is the main container object for the ElementTree API.  Most of
-the XML tree functionality is accessed through this class.  Elements are
-easily created through the <tt class="docutils literal"><span class="pre">Element</span></tt> factory:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>The XML tag name of elements is accessed through the <tt class="docutils literal"><span class="pre">tag</span></tt> property:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-</pre></div>
-</div>
-<p>Elements are organised in an XML tree structure.  To create child elements and
-add them to a parent element, you can use the <tt class="docutils literal"><span class="pre">append()</span></tt> method:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;child1&quot;</span><span class="p">)</span> <span class="p">)</span>
-</pre></div>
-</div>
-<p>However, this is so common that there is a shorter and much more efficient way
-to do this: the <tt class="docutils literal"><span class="pre">SubElement</span></tt> factory.  It accepts the same arguments as the
-<tt class="docutils literal"><span class="pre">Element</span></tt> factory, but additionally requires the parent as first argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child2&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child3</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child3&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>To see that this is really XML, you can serialise the tree you have created:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;child1/&gt;</span>
-<span class="go">  &lt;child2/&gt;</span>
-<span class="go">  &lt;child3/&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<div class="section" id="elements-are-lists">
-<h3><a class="toc-backref" href="#id4">Elements are lists</a><a class="headerlink" href="#elements-are-lists" title="Permalink to this headline">¶</a></h3>
-<p>To make the access to these subelements as easy and straight forward as
-possible, elements behave like normal Python lists:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">child1</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">3</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="c"># lxml.etree only!</span>
-<span class="go">1</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">children</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">child1</span>
-<span class="go">child2</span>
-<span class="go">child3</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;child0&quot;</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">start</span> <span class="o">=</span> <span class="n">root</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">end</span>   <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">:]</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">start</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">child0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">end</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">child3</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="c"># this moves the element in lxml.etree!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">root</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">child3</span>
-<span class="go">child1</span>
-<span class="go">child2</span>
-</pre></div>
-</div>
-<p>Prior to ElementTree 1.3 and lxml 2.0, you could also check the truth value of
-an Element to see if it has children, i.e. if the list of children is empty.
-This is no longer supported as people tend to find it surprising that a
-non-None reference to an existing Element can evaluate to False.  Instead, use
-<tt class="docutils literal"><span class="pre">len(element)</span></tt>, which is both more explicit and less error prone.</p>
-<p>Note in the examples that the last element was <em>moved</em> to a different position
-in the last example.  This is a difference from the original ElementTree (and
-from lists), where elements can sit in multiple positions of any number of
-trees.  In lxml.etree, elements can only sit in one position of one tree at a
-time.</p>
-<p>If you want to <em>copy</em> an element to a different position, consider creating an
-independent <em>deep copy</em> using the <tt class="docutils literal"><span class="pre">copy</span></tt> module from Python&#8217;s standard
-library:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;neu&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">element</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">child1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">([</span> <span class="n">c</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">root</span> <span class="p">])</span>
-<span class="go">[&#39;child3&#39;, &#39;child1&#39;, &#39;child2&#39;]</span>
-</pre></div>
-</div>
-<p>The way up in the tree is provided through the <tt class="docutils literal"><span class="pre">getparent()</span></tt> method:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span>  <span class="c"># lxml.etree only!</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>The siblings (or neighbours) of an element are accessed as next and previous
-elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getprevious</span><span class="p">()</span> <span class="c"># lxml.etree only!</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">is</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getnext</span><span class="p">()</span> <span class="c"># lxml.etree only!</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="elements-carry-attributes">
-<h3><a class="toc-backref" href="#id5">Elements carry attributes</a><a class="headerlink" href="#elements-carry-attributes" title="Permalink to this headline">¶</a></h3>
-<p>XML elements support attributes.  You can create them directly in the Element
-factory:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">,</span> <span class="n">interesting</span><span class="o">=</span><span class="s">&quot;totally&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root interesting=&quot;totally&quot;/&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Fast and direct access to these attributes is provided by the <tt class="docutils literal"><span class="pre">set()</span></tt> and
-<tt class="docutils literal"><span class="pre">get()</span></tt> methods of elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;interesting&quot;</span><span class="p">))</span>
-<span class="go">totally</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">&quot;interesting&quot;</span><span class="p">,</span> <span class="s">&quot;somewhat&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;interesting&quot;</span><span class="p">))</span>
-<span class="go">somewhat</span>
-</pre></div>
-</div>
-<p>However, a very convenient way of dealing with them is through the dictionary
-interface of the <tt class="docutils literal"><span class="pre">attrib</span></tt> property:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">attributes</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">attrib</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="p">[</span><span class="s">&quot;interesting&quot;</span><span class="p">])</span>
-<span class="go">somewhat</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;hello&quot;</span><span class="p">))</span>
-<span class="go">None</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">attributes</span><span class="p">[</span><span class="s">&quot;hello&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;Guten Tag&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;hello&quot;</span><span class="p">))</span>
-<span class="go">Guten Tag</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;hello&quot;</span><span class="p">))</span>
-<span class="go">Guten Tag</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="elements-contain-text">
-<h3><a class="toc-backref" href="#id6">Elements contain text</a><a class="headerlink" href="#elements-contain-text" title="Permalink to this headline">¶</a></h3>
-<p>Elements can contain text:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;TEXT&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">TEXT</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;TEXT&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>In many XML documents (<em>data-centric</em> documents), this is the only place where
-text can be found.  It is encapsulated by a leaf tag at the very bottom of the
-tree hierarchy.</p>
-<p>However, if XML is used for tagged text documents such as (X)HTML, text can
-also appear between different elements, right in the middle of the tree:</p>
-<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;html&gt;&lt;body&gt;</span>Hello<span class="nt">&lt;br/&gt;</span>World<span class="nt">&lt;/body&gt;&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>Here, the <tt class="docutils literal"><span class="pre">&lt;br/&gt;</span></tt> tag is surrounded by text.  This is often referred to as
-<em>document-style</em> or <em>mixed-content</em> XML.  Elements support this through their
-<tt class="docutils literal"><span class="pre">tail</span></tt> property.  It contains the text that directly follows the element, up
-to the next element in the XML tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;html&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="s">&quot;body&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;TEXT&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">b&#39;&lt;html&gt;&lt;body&gt;TEXT&lt;/body&gt;&lt;/html&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="s">&quot;br&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">b&#39;&lt;html&gt;&lt;body&gt;TEXT&lt;br/&gt;&lt;/body&gt;&lt;/html&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s">&quot;TAIL&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="go">b&#39;&lt;html&gt;&lt;body&gt;TEXT&lt;br/&gt;TAIL&lt;/body&gt;&lt;/html&gt;&#39;</span>
-</pre></div>
-</div>
-<p>The two properties <tt class="docutils literal"><span class="pre">.text</span></tt> and <tt class="docutils literal"><span class="pre">.tail</span></tt> are enough to represent any
-text content in an XML document.  This way, the ElementTree API does
-not require any <a class="reference external" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1312295772">special text nodes</a> in addition to the Element
-class, that tend to get in the way fairly often (as you might know
-from classic <a class="reference external" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html">DOM</a> APIs).</p>
-<p>However, there are cases where the tail text also gets in the way.
-For example, when you serialise an Element from within the tree, you
-do not always want its tail text in the result (although you would
-still want the tail text of its children).  For this purpose, the
-<tt class="docutils literal"><span class="pre">tostring()</span></tt> function accepts the keyword argument <tt class="docutils literal"><span class="pre">with_tail</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">br</span><span class="p">)</span>
-<span class="go">b&#39;&lt;br/&gt;TAIL&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">br</span><span class="p">,</span> <span class="n">with_tail</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span> <span class="c"># lxml.etree only!</span>
-<span class="go">b&#39;&lt;br/&gt;&#39;</span>
-</pre></div>
-</div>
-<p>If you want to read <em>only</em> the text, i.e. without any intermediate
-tags, you have to recursively concatenate all <tt class="docutils literal"><span class="pre">text</span></tt> and <tt class="docutils literal"><span class="pre">tail</span></tt>
-attributes in the correct order.  Again, the <tt class="docutils literal"><span class="pre">tostring()</span></tt> function
-comes to the rescue, this time using the <tt class="docutils literal"><span class="pre">method</span></tt> keyword:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">html</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&quot;text&quot;</span><span class="p">)</span>
-<span class="go">b&#39;TEXTTAIL&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="using-xpath-to-find-text">
-<h3><a class="toc-backref" href="#id7">Using XPath to find text</a><a class="headerlink" href="#using-xpath-to-find-text" title="Permalink to this headline">¶</a></h3>
-<p>Another way to extract the text content of a tree is <a class="reference external" href="xpathxslt.html#xpath">XPath</a>, which
-also allows you to extract the separate text chunks into a list:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;string()&quot;</span><span class="p">))</span> <span class="c"># lxml.etree only!</span>
-<span class="go">TEXTTAIL</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//text()&quot;</span><span class="p">))</span> <span class="c"># lxml.etree only!</span>
-<span class="go">[&#39;TEXT&#39;, &#39;TAIL&#39;]</span>
-</pre></div>
-</div>
-<p>If you want to use this more often, you can wrap it in a function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">build_text_list</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//text()&quot;</span><span class="p">)</span> <span class="c"># lxml.etree only!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">build_text_list</span><span class="p">(</span><span class="n">html</span><span class="p">))</span>
-<span class="go">[&#39;TEXT&#39;, &#39;TAIL&#39;]</span>
-</pre></div>
-</div>
-<p>Note that a string result returned by XPath is a special &#8216;smart&#8217;
-object that knows about its origins.  You can ask it where it came
-from through its <tt class="docutils literal"><span class="pre">getparent()</span></tt> method, just as you would with
-Elements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">texts</span> <span class="o">=</span> <span class="n">build_text_list</span><span class="p">(</span><span class="n">html</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
-<span class="go">TEXT</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parent</span> <span class="o">=</span> <span class="n">texts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">body</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
-<span class="go">TAIL</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">br</span>
-</pre></div>
-</div>
-<p>You can also find out if it&#8217;s normal text content or tail text:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">is_text</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">is_text</span><span class="p">)</span>
-<span class="go">False</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">is_tail</span><span class="p">)</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>While this works for the results of the <tt class="docutils literal"><span class="pre">text()</span></tt> function, lxml will
-not tell you the origin of a string value that was constructed by the
-XPath functions <tt class="docutils literal"><span class="pre">string()</span></tt> or <tt class="docutils literal"><span class="pre">concat()</span></tt>:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">stringify</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;string()&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">stringify</span><span class="p">(</span><span class="n">html</span><span class="p">))</span>
-<span class="go">TEXTTAIL</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">stringify</span><span class="p">(</span><span class="n">html</span><span class="p">)</span><span class="o">.</span><span class="n">getparent</span><span class="p">())</span>
-<span class="go">None</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="tree-iteration">
-<h3><a class="toc-backref" href="#id8">Tree iteration</a><a class="headerlink" href="#tree-iteration" title="Permalink to this headline">¶</a></h3>
-<p>For problems like the above, where you want to recursively traverse the tree
-and do something with its elements, tree iteration is a very convenient
-solution.  Elements provide a tree iterator for this purpose.  It yields
-elements in <em>document order</em>, i.e. in the order their tags would appear if you
-serialised the tree to XML:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;root&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Child 1&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;child&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Child 2&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&quot;another&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Child 3&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;child&gt;Child 1&lt;/child&gt;</span>
-<span class="go">  &lt;child&gt;Child 2&lt;/child&gt;</span>
-<span class="go">  &lt;another&gt;Child 3&lt;/another&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">root - None</span>
-<span class="go">child - Child 1</span>
-<span class="go">child - Child 2</span>
-<span class="go">another - Child 3</span>
-</pre></div>
-</div>
-<p>If you know you are only interested in a single tag, you can pass its name to
-<tt class="docutils literal"><span class="pre">iter()</span></tt> to have it filter for you:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">&quot;child&quot;</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">child - Child 1</span>
-<span class="go">child - Child 2</span>
-</pre></div>
-</div>
-<p>By default, iteration yields all nodes in the tree, including
-ProcessingInstructions, Comments and Entity instances.  If you want to
-make sure only Element objects are returned, you can pass the
-<tt class="docutils literal"><span class="pre">Element</span></tt> factory as tag parameter:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Entity</span><span class="p">(</span><span class="s">&quot;#234&quot;</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Comment</span><span class="p">(</span><span class="s">&quot;some comment&quot;</span><span class="p">))</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">():</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">basestring</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">else</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;SPECIAL: </span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">root - None</span>
-<span class="go">child - Child 1</span>
-<span class="go">child - Child 2</span>
-<span class="go">another - Child 3</span>
-<span class="go">SPECIAL: &amp;#234; - &amp;#234;</span>
-<span class="go">SPECIAL: &lt;!--some comment--&gt; - some comment</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> - </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">root - None</span>
-<span class="go">child - Child 1</span>
-<span class="go">child - Child 2</span>
-<span class="go">another - Child 3</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="n">tag</span><span class="o">=</span><span class="n">etree</span><span class="o">.</span><span class="n">Entity</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">&amp;#234;</span>
-</pre></div>
-</div>
-<p>In lxml.etree, elements provide <a class="reference external" href="api.html#iteration">further iterators</a> for all directions in the
-tree: children, parents (or rather ancestors) and siblings.</p>
-</div>
-<div class="section" id="serialisation">
-<h3><a class="toc-backref" href="#id9">Serialisation</a><a class="headerlink" href="#serialisation" title="Permalink to this headline">¶</a></h3>
-<p>Serialisation commonly uses the <tt class="docutils literal"><span class="pre">tostring()</span></tt> function that returns a
-string, or the <tt class="docutils literal"><span class="pre">ElementTree.write()</span></tt> method that writes to a file, a
-file-like object, or a URL (via FTP PUT or HTTP POST).  Both calls accept
-the same keyword arguments like <tt class="docutils literal"><span class="pre">pretty_print</span></tt> for formatted output
-or <tt class="docutils literal"><span class="pre">encoding</span></tt> to select a specific output encoding other than plain
-ASCII:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">xml_declaration</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;?xml version=&#39;1.0&#39; encoding=&#39;ASCII&#39;?&gt;</span>
-<span class="go">&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&#39;iso-8859-1&#39;</span><span class="p">))</span>
-<span class="go">&lt;?xml version=&#39;1.0&#39; encoding=&#39;iso-8859-1&#39;?&gt;</span>
-<span class="go">&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;a&gt;</span>
-<span class="go">    &lt;b/&gt;</span>
-<span class="go">  &lt;/a&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p>Note that pretty printing appends a newline at the end.</p>
-<p>Since lxml 2.0 (and ElementTree 1.3), the serialisation functions can
-do more than XML serialisation.  You can serialise to HTML or extract
-the text content by passing the <tt class="docutils literal"><span class="pre">method</span></tt> keyword:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span>
-<span class="gp">... </span>   <span class="s">&#39;&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="c"># default: method = &#39;xml&#39;</span>
-<span class="go">b&#39;&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;xml&#39;</span><span class="p">)</span> <span class="c"># same as above</span>
-<span class="go">b&#39;&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br/&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;html&#39;</span><span class="p">)</span>
-<span class="go">b&#39;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello&lt;br&gt;World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;html&#39;</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">&lt;head&gt;&lt;/head&gt;</span>
-<span class="go">&lt;body&gt;&lt;p&gt;Hello&lt;br&gt;World&lt;/p&gt;&lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;text&#39;</span><span class="p">)</span>
-<span class="go">b&#39;HelloWorld&#39;</span>
-</pre></div>
-</div>
-<p>As for XML serialisation, the default encoding for plain text
-serialisation is ASCII:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">br</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;.//br&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">br</span><span class="o">.</span><span class="n">tail</span> <span class="o">=</span> <span class="s">u&#39;W</span><span class="se">\xf6</span><span class="s">rld&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;text&#39;</span><span class="p">)</span>  
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">UnicodeEncodeError</span>: <span class="n">&#39;ascii&#39; codec can&#39;t encode character u&#39;\xf6&#39; ...</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;text&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;UTF-8&quot;</span><span class="p">)</span>
-<span class="go">b&#39;HelloW\xc3\xb6rld&#39;</span>
-</pre></div>
-</div>
-<p>Here, serialising to a Python unicode string instead of a byte string
-might become handy.  Just pass the <tt class="docutils literal"><span class="pre">unicode</span></tt> type as encoding:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="nb">unicode</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">&#39;text&#39;</span><span class="p">)</span>
-<span class="go">u&#39;HelloW\xf6rld&#39;</span>
-</pre></div>
-</div>
-<p>The W3C has a good <a class="reference external" href="http://www.w3.org/International/tutorials/tutorial-char-enc/">article about the Unicode character set and
-character encodings</a>.</p>
-</div>
-</div>
-<div class="section" id="the-elementtree-class">
-<h2><a class="toc-backref" href="#id10">The ElementTree class</a><a class="headerlink" href="#the-elementtree-class" title="Permalink to this headline">¶</a></h2>
-<p>An <tt class="docutils literal"><span class="pre">ElementTree</span></tt> is mainly a document wrapper around a tree with a
-root node.  It provides a couple of methods for parsing, serialisation
-and general document handling.  One of the bigger differences is that
-it serialises as a complete document, as opposed to a single
-<tt class="docutils literal"><span class="pre">Element</span></tt>.  This includes top-level processing instructions and
-comments, as well as a DOCTYPE and other DTD content in the document:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;?xml version=&quot;1.0&quot;?&gt;</span>
-<span class="gp">... </span><span class="s">&lt;!DOCTYPE root SYSTEM &quot;test&quot; [ &lt;!ENTITY tasty &quot;eggs&quot;&gt; ]&gt;</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&amp;tasty;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">))</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">docinfo</span><span class="o">.</span><span class="n">doctype</span><span class="p">)</span>
-<span class="go">&lt;!DOCTYPE root SYSTEM &quot;test&quot;&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="c"># lxml 1.3.4 and later</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">))</span>
-<span class="go">&lt;!DOCTYPE root SYSTEM &quot;test&quot; [</span>
-<span class="go">&lt;!ENTITY tasty &quot;eggs&quot;&gt;</span>
-<span class="go">]&gt;</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;a&gt;eggs&lt;/a&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="c"># lxml 1.3.4 and later</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">())))</span>
-<span class="go">&lt;!DOCTYPE root SYSTEM &quot;test&quot; [</span>
-<span class="go">&lt;!ENTITY tasty &quot;eggs&quot;&gt;</span>
-<span class="go">]&gt;</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;a&gt;eggs&lt;/a&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="c"># ElementTree and lxml &lt;= 1.3.3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()))</span>
-<span class="go">&lt;root&gt;</span>
-<span class="go">  &lt;a&gt;eggs&lt;/a&gt;</span>
-<span class="go">&lt;/root&gt;</span>
-</pre></div>
-</div>
-<p>Note that this has changed in lxml 1.3.4 to match the behaviour of
-lxml 2.0.  Before, the examples were serialised without DTD content,
-which made lxml loose DTD information in an input-output cycle.</p>
-</div>
-<div class="section" id="parsing-from-strings-and-files">
-<h2><a class="toc-backref" href="#id11">Parsing from strings and files</a><a class="headerlink" href="#parsing-from-strings-and-files" title="Permalink to this headline">¶</a></h2>
-<p><tt class="docutils literal"><span class="pre">lxml.etree</span></tt> supports parsing XML in a number of ways and from all
-important sources, namely strings, files, URLs (http/ftp) and
-file-like objects.  The main parse functions are <tt class="docutils literal"><span class="pre">fromstring()</span></tt> and
-<tt class="docutils literal"><span class="pre">parse()</span></tt>, both called with the source as first argument.  By
-default, they use the standard parser, but you can always pass a
-different parser as second argument.</p>
-<div class="section" id="the-fromstring-function">
-<h3><a class="toc-backref" href="#id12">The fromstring() function</a><a class="headerlink" href="#the-fromstring-function" title="Permalink to this headline">¶</a></h3>
-<p>The <tt class="docutils literal"><span class="pre">fromstring()</span></tt> function is the easiest way to parse a string:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_xml_data</span> <span class="o">=</span> <span class="s">&quot;&lt;root&gt;data&lt;/root&gt;&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">some_xml_data</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;data&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-xml-function">
-<h3><a class="toc-backref" href="#id13">The XML() function</a><a class="headerlink" href="#the-xml-function" title="Permalink to this headline">¶</a></h3>
-<p>The <tt class="docutils literal"><span class="pre">XML()</span></tt> function behaves like the <tt class="docutils literal"><span class="pre">fromstring()</span></tt> function, but is
-commonly used to write XML literals right into the source:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;data&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;data&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-parse-function">
-<h3><a class="toc-backref" href="#id14">The parse() function</a><a class="headerlink" href="#the-parse-function" title="Permalink to this headline">¶</a></h3>
-<p>The <tt class="docutils literal"><span class="pre">parse()</span></tt> function is used to parse from files and file-like objects:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;data&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;data&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Note that <tt class="docutils literal"><span class="pre">parse()</span></tt> returns an ElementTree object, not an Element object as
-the string parser functions:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">root</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;data&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>The reasoning behind this difference is that <tt class="docutils literal"><span class="pre">parse()</span></tt> returns a
-complete document from a file, while the string parsing functions are
-commonly used to parse XML fragments.</p>
-<p>The <tt class="docutils literal"><span class="pre">parse()</span></tt> function supports any of the following sources:</p>
-<ul class="simple">
-<li>an open file object</li>
-<li>a file-like object that has a <tt class="docutils literal"><span class="pre">.read(byte_count)</span></tt> method returning
-a byte string on each call</li>
-<li>a filename string</li>
-<li>an HTTP or FTP URL string</li>
-</ul>
-<p>Note that passing a filename or URL is usually faster than passing an
-open file.</p>
-</div>
-<div class="section" id="parser-objects">
-<h3><a class="toc-backref" href="#id15">Parser objects</a><a class="headerlink" href="#parser-objects" title="Permalink to this headline">¶</a></h3>
-<p>By default, <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> uses a standard parser with a default setup.  If
-you want to configure the parser, you can create a you instance:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">remove_blank_text</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="c"># lxml.etree only!</span>
-</pre></div>
-</div>
-<p>This creates a parser that removes empty text between tags while parsing,
-which can reduce the size of the tree and avoid dangling tail text if you know
-that whitespace-only content is not meaningful for your data.  An example:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;  &lt;a/&gt;   &lt;b&gt;  &lt;/b&gt;     &lt;/root&gt;&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;a/&gt;&lt;b&gt;  &lt;/b&gt;&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Note that the whitespace content inside the <tt class="docutils literal"><span class="pre">&lt;b&gt;</span></tt> tag was not removed, as
-content at leaf elements tends to be data content (even if blank).  You can
-easily remove it in an additional step by traversing the tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s">&quot;*&quot;</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
-<span class="gp">... </span>        <span class="n">element</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="bp">None</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;a/&gt;&lt;b/&gt;&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>See <tt class="docutils literal"><span class="pre">help(etree.XMLParser)</span></tt> to find out about the available parser options.</p>
-</div>
-<div class="section" id="incremental-parsing">
-<h3><a class="toc-backref" href="#id16">Incremental parsing</a><a class="headerlink" href="#incremental-parsing" title="Permalink to this headline">¶</a></h3>
-<p><tt class="docutils literal"><span class="pre">lxml.etree</span></tt> provides two ways for incremental step-by-step parsing.  One is
-through file-like objects, where it calls the <tt class="docutils literal"><span class="pre">read()</span></tt> method repeatedly.
-This is best used where the data arrives from a source like <tt class="docutils literal"><span class="pre">urllib</span></tt> or any
-other file-like object that can provide data on request.  Note that the parser
-will block and wait until data becomes available in this case:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">DataSource</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="n">data</span> <span class="o">=</span> <span class="p">[</span> <span class="n">b</span><span class="s">&quot;&lt;roo&quot;</span><span class="p">,</span> <span class="n">b</span><span class="s">&quot;t&gt;&lt;&quot;</span><span class="p">,</span> <span class="n">b</span><span class="s">&quot;a/&quot;</span><span class="p">,</span> <span class="n">b</span><span class="s">&quot;&gt;&lt;&quot;</span><span class="p">,</span> <span class="n">b</span><span class="s">&quot;/root&gt;&quot;</span> <span class="p">]</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">requested_size</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="k">try</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
-<span class="gp">... </span>            <span class="k">return</span> <span class="n">b</span><span class="s">&#39;&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">DataSource</span><span class="p">())</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">tree</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;a/&gt;&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>The second way is through a feed parser interface, given by the <tt class="docutils literal"><span class="pre">feed(data)</span></tt>
-and <tt class="docutils literal"><span class="pre">close()</span></tt> methods:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;&lt;roo&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;t&gt;&lt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;a/&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;&gt;&lt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root&gt;&lt;a/&gt;&lt;/root&gt;&#39;</span>
-</pre></div>
-</div>
-<p>Here, you can interrupt the parsing process at any time and continue it later
-on with another call to the <tt class="docutils literal"><span class="pre">feed()</span></tt> method.  This comes in handy if you
-want to avoid blocking calls to the parser, e.g. in frameworks like Twisted,
-or whenever data comes in slowly or in chunks and you want to do other things
-while waiting for the next chunk.</p>
-<p>After calling the <tt class="docutils literal"><span class="pre">close()</span></tt> method (or when an exception was raised
-by the parser), you can reuse the parser by calling its <tt class="docutils literal"><span class="pre">feed()</span></tt>
-method again:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="s">&quot;&lt;root/&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="go">b&#39;&lt;root/&gt;&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="event-driven-parsing">
-<h3><a class="toc-backref" href="#id17">Event-driven parsing</a><a class="headerlink" href="#event-driven-parsing" title="Permalink to this headline">¶</a></h3>
-<p>Sometimes, all you need from a document is a small fraction somewhere deep
-inside the tree, so parsing the whole tree into memory, traversing it and
-dropping it can be too much overhead.  <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> supports this use case
-with two event-driven parser interfaces, one that generates parser events
-while building the tree (<tt class="docutils literal"><span class="pre">iterparse</span></tt>), and one that does not build the tree
-at all, and instead calls feedback methods on a target object in a SAX-like
-fashion.</p>
-<p>Here is a simple <tt class="docutils literal"><span class="pre">iterparse()</span></tt> example:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;data&lt;/a&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">, </span><span class="si">%4s</span><span class="s">, </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">end,    a, data</span>
-<span class="go">end, root, None</span>
-</pre></div>
-</div>
-<p>By default, <tt class="docutils literal"><span class="pre">iterparse()</span></tt> only generates events when it is done parsing an
-element, but you can control this through the <tt class="docutils literal"><span class="pre">events</span></tt> keyword argument:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;data&lt;/a&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">,</span>
-<span class="gp">... </span>                                      <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="s">&quot;end&quot;</span><span class="p">)):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%5s</span><span class="s">, </span><span class="si">%4s</span><span class="s">, </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="go">start, root, None</span>
-<span class="go">start,    a, data</span>
-<span class="go">  end,    a, data</span>
-<span class="go">  end, root, None</span>
-</pre></div>
-</div>
-<p>Note that the text, tail and children of an Element are not necessarily there
-yet when receiving the <tt class="docutils literal"><span class="pre">start</span></tt> event.  Only the <tt class="docutils literal"><span class="pre">end</span></tt> event guarantees
-that the Element has been parsed completely.</p>
-<p>It also allows to <tt class="docutils literal"><span class="pre">.clear()</span></tt> or modify the content of an Element to
-save memory. So if you parse a large tree and you want to keep memory
-usage small, you should clean up parts of the tree that you no longer
-need:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">some_file_like</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="s">&quot;&lt;root&gt;&lt;a&gt;&lt;b&gt;data&lt;/b&gt;&lt;/a&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">some_file_like</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s">&#39;b&#39;</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="k">elif</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s">&#39;a&#39;</span><span class="p">:</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&quot;** cleaning up the subtree&quot;</span><span class="p">)</span>
-<span class="gp">... </span>        <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
-<span class="go">data</span>
-<span class="go">** cleaning up the subtree</span>
-<span class="go">None</span>
-<span class="go">** cleaning up the subtree</span>
-</pre></div>
-</div>
-<p>A very important use cases for <tt class="docutils literal"><span class="pre">iterparse()</span></tt> is parsing large
-generated XML files, e.g. database dumps.  Most often, these XML
-formats only have one main data item element that hangs directly below
-the root node and that is repeated thousands of times.  In this case,
-it is best practice to let <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> do the tree building and to
-only intercept exactly on this one Element, using the normal tree API
-for data extraction.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml_file</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;root&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&lt;b&gt;ABC&lt;/b&gt;&lt;c&gt;abc&lt;/c&gt;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&lt;b&gt;MORE DATA&lt;/b&gt;&lt;c&gt;more data&lt;/c&gt;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;a&gt;&lt;b&gt;XYZ&lt;/b&gt;&lt;c&gt;xyz&lt;/c&gt;&lt;/a&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/root&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">xml_file</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s">&#39;a&#39;</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s"> -- </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">findtext</span><span class="p">(</span><span class="s">&#39;b&#39;</span><span class="p">),</span> <span class="n">element</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="n">element</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
-<span class="go">ABC -- abc</span>
-<span class="go">MORE DATA -- more data</span>
-<span class="go">XYZ -- xyz</span>
-</pre></div>
-</div>
-<p>If, for some reason, building the tree is not desired at all, the
-target parser interface of <tt class="docutils literal"><span class="pre">lxml.etree</span></tt> can be used.  It creates
-SAX-like events by calling the methods of a target object.  By
-implementing some or all of these methods, you can control which
-events are generated:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">ParserTarget</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="n">events</span> <span class="o">=</span> <span class="p">[]</span>
-<span class="gp">... </span>    <span class="n">close_count</span> <span class="o">=</span> <span class="mi">0</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">&quot;start&quot;</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-<span class="gp">... </span>        <span class="n">events</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">events</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">events</span><span class="p">,</span> <span class="p">[]</span>
-<span class="gp">... </span>        <span class="bp">self</span><span class="o">.</span><span class="n">close_count</span> <span class="o">+=</span> <span class="mi">1</span>
-<span class="gp">... </span>        <span class="k">return</span> <span class="n">events</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser_target</span> <span class="o">=</span> <span class="n">ParserTarget</span><span class="p">()</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">parser_target</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&lt;root test=&quot;true&quot;/&gt;&#39;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
-<span class="go">1</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;event: </span><span class="si">%s</span><span class="s"> - tag: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">event</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
-<span class="gp">... </span>    <span class="k">for</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">event</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&#39; * </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
-<span class="go">event: start - tag: root</span>
-<span class="go"> * test = true</span>
-</pre></div>
-</div>
-<p>You can reuse the parser and its target as often as you like, so you
-should take care that the <tt class="docutils literal"><span class="pre">.close()</span></tt> methods really resets the
-target to a usable state (also in the case of an error!).</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&lt;root test=&quot;true&quot;/&gt;&#39;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
-<span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&lt;root test=&quot;true&quot;/&gt;&#39;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
-<span class="go">3</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">events</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&#39;&lt;root test=&quot;true&quot;/&gt;&#39;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">parser_target</span><span class="o">.</span><span class="n">close_count</span><span class="p">)</span>
-<span class="go">4</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;event: </span><span class="si">%s</span><span class="s"> - tag: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">event</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
-<span class="gp">... </span>    <span class="k">for</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">event</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-<span class="gp">... </span>        <span class="k">print</span><span class="p">(</span><span class="s">&#39; * </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
-<span class="go">event: start - tag: root</span>
-<span class="go"> * test = true</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="namespaces">
-<h2><a class="toc-backref" href="#id18">Namespaces</a><a class="headerlink" href="#namespaces" title="Permalink to this headline">¶</a></h2>
-<p>The ElementTree API avoids <a class="reference external" href="http://www.w3.org/TR/xml-names/#ns-qualnames">namespace prefixes</a> wherever possible and deploys
-the real namespaces instead:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;{http://www.w3.org/1999/xhtml}html&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="s">&quot;{http://www.w3.org/1999/xhtml}body&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Hello World&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;html:html xmlns:html=&quot;http://www.w3.org/1999/xhtml&quot;&gt;</span>
-<span class="go">  &lt;html:body&gt;Hello World&lt;/html:body&gt;</span>
-<span class="go">&lt;/html:html&gt;</span>
-</pre></div>
-</div>
-<p>The notation that ElementTree uses was originally brought up by <a class="reference external" href="http://www.jclark.com/xml/xmlns.htm">James
-Clark</a>.  It has the major advantage of providing a universally
-qualified name for a tag, regardless of any prefixes that may or may
-not have been used or defined in a document.  By moving the
-indirection of prefixes out of the way, it makes namespace aware code
-much clearer and safer.</p>
-<p>As you can see from the example, prefixes only become important when
-you serialise the result.  However, the above code looks somewhat
-verbose due to the lengthy namespace names.  And retyping or copying a
-string over and over again is error prone.  It is therefore common
-practice to store a namespace URI in a global variable.  To adapt the
-namespace prefixes for serialisation, you can also pass a mapping to
-the Element factory function, e.g. to define the default namespace:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">XHTML_NAMESPACE</span> <span class="o">=</span> <span class="s">&quot;http://www.w3.org/1999/xhtml&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">XHTML</span> <span class="o">=</span> <span class="s">&quot;{</span><span class="si">%s</span><span class="s">}&quot;</span> <span class="o">%</span> <span class="n">XHTML_NAMESPACE</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">NSMAP</span> <span class="o">=</span> <span class="p">{</span><span class="bp">None</span> <span class="p">:</span> <span class="n">XHTML_NAMESPACE</span><span class="p">}</span> <span class="c"># the default namespace (no prefix)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s">&quot;html&quot;</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="n">NSMAP</span><span class="p">)</span> <span class="c"># lxml only!</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">XHTML</span> <span class="o">+</span> <span class="s">&quot;body&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Hello World&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;</span>
-<span class="go">  &lt;body&gt;Hello World&lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>lxml.etree allows you to look up the current namespaces defined for a
-node through the <tt class="docutils literal"><span class="pre">.nsmap</span></tt> property:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xhtml</span><span class="o">.</span><span class="n">nsmap</span>
-<span class="go">{None: &#39;http://www.w3.org/1999/xhtml&#39;}</span>
-</pre></div>
-</div>
-<p>Note, however, that this includes all prefixes known in the context of
-an Element, not only those that it defines itself.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&#39;root&#39;</span><span class="p">,</span> <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;a&#39;</span><span class="p">:</span> <span class="s">&#39;http://a.b/c&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">&#39;child&#39;</span><span class="p">,</span>
-<span class="gp">... </span>                         <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;b&#39;</span><span class="p">:</span> <span class="s">&#39;http://b.c/d&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">nsmap</span><span class="p">)</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">)</span>
-<span class="go">2</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">[</span><span class="s">&#39;a&#39;</span><span class="p">]</span>
-<span class="go">&#39;http://a.b/c&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">child</span><span class="o">.</span><span class="n">nsmap</span><span class="p">[</span><span class="s">&#39;b&#39;</span><span class="p">]</span>
-<span class="go">&#39;http://b.c/d&#39;</span>
-</pre></div>
-</div>
-<p>Therefore, modifying the returned dict cannot have any meaningful
-impact on the Element.  Any changes to it are ignored.</p>
-<p>Namespaces on attributes work alike, but since version 2.3, lxml.etree
-will make sure that the attribute uses a prefixed namespace
-declaration.  This is because unprefixed attribute names are not
-considered being in a namespace by the XML namespace specification
-(<a class="reference external" href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#defaulting">section 6.2</a>), so they may end up loosing their namespace on a
-serialise-parse roundtrip, even if they appear in a namespaced
-element.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s">&quot;bgcolor&quot;</span><span class="p">,</span> <span class="s">&quot;#CCFFAA&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">xhtml</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;</span>
-<span class="go">  &lt;body xmlns:html=&quot;http://www.w3.org/1999/xhtml&quot; html:bgcolor=&quot;#CCFFAA&quot;&gt;Hello World&lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;bgcolor&quot;</span><span class="p">))</span>
-<span class="go">None</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">XHTML</span> <span class="o">+</span> <span class="s">&quot;bgcolor&quot;</span><span class="p">)</span>
-<span class="go">&#39;#CCFFAA&#39;</span>
-</pre></div>
-</div>
-<p>You can also use XPath with fully qualified names:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find_xhtml_body</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ETXPath</span><span class="p">(</span>      <span class="c"># lxml only !</span>
-<span class="gp">... </span>    <span class="s">&quot;//{</span><span class="si">%s</span><span class="s">}body&quot;</span> <span class="o">%</span> <span class="n">XHTML_NAMESPACE</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">results</span> <span class="o">=</span> <span class="n">find_xhtml_body</span><span class="p">(</span><span class="n">xhtml</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{http://www.w3.org/1999/xhtml}body</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-e-factory">
-<h2><a class="toc-backref" href="#id19">The E-factory</a><a class="headerlink" href="#the-e-factory" title="Permalink to this headline">¶</a></h2>
-<p>The <tt class="docutils literal"><span class="pre">E-factory</span></tt> provides a simple and compact syntax for generating XML and
-HTML:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">E</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">CLASS</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">):</span> <span class="c"># class is a reserved word in Python</span>
-<span class="gp">... </span>    <span class="k">return</span> <span class="p">{</span><span class="s">&quot;class&quot;</span><span class="p">:</span><span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)}</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">html</span> <span class="o">=</span> <span class="n">page</span> <span class="o">=</span> <span class="p">(</span>
-<span class="gp">... </span>  <span class="n">E</span><span class="o">.</span><span class="n">html</span><span class="p">(</span>       <span class="c"># create an Element called &quot;html&quot;</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">head</span><span class="p">(</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&quot;This is a sample document&quot;</span><span class="p">)</span>
-<span class="gp">... </span>    <span class="p">),</span>
-<span class="gp">... </span>    <span class="n">E</span><span class="o">.</span><span class="n">body</span><span class="p">(</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">h1</span><span class="p">(</span><span class="s">&quot;Hello!&quot;</span><span class="p">,</span> <span class="n">CLASS</span><span class="p">(</span><span class="s">&quot;title&quot;</span><span class="p">)),</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s">&quot;This is a paragraph with &quot;</span><span class="p">,</span> <span class="n">E</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="s">&quot;bold&quot;</span><span class="p">),</span> <span class="s">&quot; text in it!&quot;</span><span class="p">),</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s">&quot;This is another paragraph, with a&quot;</span><span class="p">,</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">      &quot;</span><span class="p">,</span>
-<span class="gp">... </span>        <span class="n">E</span><span class="o">.</span><span class="n">a</span><span class="p">(</span><span class="s">&quot;link&quot;</span><span class="p">,</span> <span class="n">href</span><span class="o">=</span><span class="s">&quot;http://www.python.org&quot;</span><span class="p">),</span> <span class="s">&quot;.&quot;</span><span class="p">),</span>
-<span class="gp">... </span>      <span class="n">E</span><span class="o">.</span><span class="n">p</span><span class="p">(</span><span class="s">&quot;Here are some reservered characters: &lt;spam&amp;egg&gt;.&quot;</span><span class="p">),</span>
-<span class="gp">... </span>      <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;p&gt;And finally an embedded XHTML fragment.&lt;/p&gt;&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="p">)</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;html&gt;</span>
-<span class="go">  &lt;head&gt;</span>
-<span class="go">    &lt;title&gt;This is a sample document&lt;/title&gt;</span>
-<span class="go">  &lt;/head&gt;</span>
-<span class="go">  &lt;body&gt;</span>
-<span class="go">    &lt;h1 class=&quot;title&quot;&gt;Hello!&lt;/h1&gt;</span>
-<span class="go">    &lt;p&gt;This is a paragraph with &lt;b&gt;bold&lt;/b&gt; text in it!&lt;/p&gt;</span>
-<span class="go">    &lt;p&gt;This is another paragraph, with a</span>
-<span class="go">      &lt;a href=&quot;http://www.python.org&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;</span>
-<span class="go">    &lt;p&gt;Here are some reservered characters: &amp;lt;spam&amp;amp;egg&amp;gt;.&lt;/p&gt;</span>
-<span class="go">    &lt;p&gt;And finally an embedded XHTML fragment.&lt;/p&gt;</span>
-<span class="go">  &lt;/body&gt;</span>
-<span class="go">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<p>The Element creation based on attribute access makes it easy to build up a
-simple vocabulary for an XML language:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml.builder</span> <span class="kn">import</span> <span class="n">ElementMaker</span> <span class="c"># lxml only !</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">E</span> <span class="o">=</span> <span class="n">ElementMaker</span><span class="p">(</span><span class="n">namespace</span><span class="o">=</span><span class="s">&quot;http://my.de/fault/namespace&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                 <span class="n">nsmap</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;p&#39;</span> <span class="p">:</span> <span class="s">&quot;http://my.de/fault/namespace&quot;</span><span class="p">})</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">DOC</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">doc</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">TITLE</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">title</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">SECTION</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">section</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">PAR</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">par</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">my_doc</span> <span class="o">=</span> <span class="n">DOC</span><span class="p">(</span>
-<span class="gp">... </span>  <span class="n">TITLE</span><span class="p">(</span><span class="s">&quot;The dog and the hog&quot;</span><span class="p">),</span>
-<span class="gp">... </span>  <span class="n">SECTION</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">TITLE</span><span class="p">(</span><span class="s">&quot;The dog&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s">&quot;Once upon a time, ...&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s">&quot;And then ...&quot;</span><span class="p">)</span>
-<span class="gp">... </span>  <span class="p">),</span>
-<span class="gp">... </span>  <span class="n">SECTION</span><span class="p">(</span>
-<span class="gp">... </span>    <span class="n">TITLE</span><span class="p">(</span><span class="s">&quot;The hog&quot;</span><span class="p">),</span>
-<span class="gp">... </span>    <span class="n">PAR</span><span class="p">(</span><span class="s">&quot;Sooner or later ...&quot;</span><span class="p">)</span>
-<span class="gp">... </span>  <span class="p">)</span>
-<span class="gp">... </span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">my_doc</span><span class="p">,</span> <span class="n">pretty_print</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
-<span class="go">&lt;p:doc xmlns:p=&quot;http://my.de/fault/namespace&quot;&gt;</span>
-<span class="go">  &lt;p:title&gt;The dog and the hog&lt;/p:title&gt;</span>
-<span class="go">  &lt;p:section&gt;</span>
-<span class="go">    &lt;p:title&gt;The dog&lt;/p:title&gt;</span>
-<span class="go">    &lt;p:par&gt;Once upon a time, ...&lt;/p:par&gt;</span>
-<span class="go">    &lt;p:par&gt;And then ...&lt;/p:par&gt;</span>
-<span class="go">  &lt;/p:section&gt;</span>
-<span class="go">  &lt;p:section&gt;</span>
-<span class="go">    &lt;p:title&gt;The hog&lt;/p:title&gt;</span>
-<span class="go">    &lt;p:par&gt;Sooner or later ...&lt;/p:par&gt;</span>
-<span class="go">  &lt;/p:section&gt;</span>
-<span class="go">&lt;/p:doc&gt;</span>
-</pre></div>
-</div>
-<p>One such example is the module <tt class="docutils literal"><span class="pre">lxml.html.builder</span></tt>, which provides a
-vocabulary for HTML.</p>
-</div>
-<div class="section" id="elementpath">
-<h2><a class="toc-backref" href="#id20">ElementPath</a><a class="headerlink" href="#elementpath" title="Permalink to this headline">¶</a></h2>
-<p>The ElementTree library comes with a simple XPath-like path language
-called <a class="reference external" href="http://effbot.org/zone/element-xpath.htm">ElementPath</a>.  The main difference is that you can use the
-<tt class="docutils literal"><span class="pre">{namespace}tag</span></tt> notation in ElementPath expressions.  However,
-advanced features like value comparison and functions are not
-available.</p>
-<p>In addition to a <a class="reference external" href="xpathxslt.html#xpath">full XPath implementation</a>, lxml.etree supports the
-ElementPath language in the same way ElementTree does, even using
-(almost) the same implementation.  The API provides four methods here
-that you can find on Elements and ElementTrees:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">iterfind()</span></tt> iterates over all Elements that match the path
-expression</li>
-<li><tt class="docutils literal"><span class="pre">findall()</span></tt> returns a list of matching Elements</li>
-<li><tt class="docutils literal"><span class="pre">find()</span></tt> efficiently returns only the first match</li>
-<li><tt class="docutils literal"><span class="pre">findtext()</span></tt> returns the <tt class="docutils literal"><span class="pre">.text</span></tt> content of the first match</li>
-</ul>
-<p>Here are some examples:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a x=&#39;123&#39;&gt;aText&lt;b/&gt;&lt;c/&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Find a child of an Element:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&quot;b&quot;</span><span class="p">))</span>
-<span class="go">None</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&quot;a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">a</span>
-</pre></div>
-</div>
-<p>Find an Element anywhere in the tree:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&quot;.//b&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span> <span class="n">b</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span class="n">root</span><span class="o">.</span><span class="n">iterfind</span><span class="p">(</span><span class="s">&quot;.//b&quot;</span><span class="p">)</span> <span class="p">]</span>
-<span class="go">[&#39;b&#39;, &#39;b&#39;]</span>
-</pre></div>
-</div>
-<p>Find Elements with a certain attribute:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&quot;.//a[@x]&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">a</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&quot;.//a[@y]&quot;</span><span class="p">))</span>
-<span class="go">[]</span>
-</pre></div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">The lxml.etree Tutorial</a><ul>
-<li><a class="reference internal" href="#the-element-class">The Element class</a><ul>
-<li><a class="reference internal" href="#elements-are-lists">Elements are lists</a></li>
-<li><a class="reference internal" href="#elements-carry-attributes">Elements carry attributes</a></li>
-<li><a class="reference internal" href="#elements-contain-text">Elements contain text</a></li>
-<li><a class="reference internal" href="#using-xpath-to-find-text">Using XPath to find text</a></li>
-<li><a class="reference internal" href="#tree-iteration">Tree iteration</a></li>
-<li><a class="reference internal" href="#serialisation">Serialisation</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#the-elementtree-class">The ElementTree class</a></li>
-<li><a class="reference internal" href="#parsing-from-strings-and-files">Parsing from strings and files</a><ul>
-<li><a class="reference internal" href="#the-fromstring-function">The fromstring() function</a></li>
-<li><a class="reference internal" href="#the-xml-function">The XML() function</a></li>
-<li><a class="reference internal" href="#the-parse-function">The parse() function</a></li>
-<li><a class="reference internal" href="#parser-objects">Parser objects</a></li>
-<li><a class="reference internal" href="#incremental-parsing">Incremental parsing</a></li>
-<li><a class="reference internal" href="#event-driven-parsing">Event-driven parsing</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#namespaces">Namespaces</a></li>
-<li><a class="reference internal" href="#the-e-factory">The E-factory</a></li>
-<li><a class="reference internal" href="#elementpath">ElementPath</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/tutorial.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/valgrind.html b/doc/sphinx/valgrind.html
deleted file mode 100644 (file)
index 1ff7f38..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title><no title> &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="shortcut icon" href="_static/favicon.ico"/>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <p>The command used to run the tests with valgrind:</p>
-<p>valgrind &#8211;tool=memcheck &#8211;leak-check=full &#8211;suppressions=valgrind-python.supp python2.3 test.py</p>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="_sources/valgrind.txt"
-                     rel="nofollow">Show Source</a></li>
-            </ul>
-          <div id="searchbox" style="display: none">
-            <h3>Quick search</h3>
-              <form class="search" action="search.html" method="get">
-                <input type="text" name="q" size="18" />
-                <input type="submit" value="Go" />
-                <input type="hidden" name="check_keywords" value="yes" />
-                <input type="hidden" name="area" value="default" />
-              </form>
-              <p class="searchtip" style="font-size: 90%">
-              Enter search terms or a module, class or function name.
-              </p>
-          </div>
-          <script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/validation.html b/doc/sphinx/validation.html
deleted file mode 100644 (file)
index da8946e..0000000
+++ /dev/null
@@ -1,584 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Validation with lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="validation-with-lxml">
-<h1><a class="toc-backref" href="#id4">Validation with lxml</a><a class="headerlink" href="#validation-with-lxml" title="Permalink to this headline">¶</a></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
-identical APIs in lxml, represented by validator classes with the obvious
-names.</p>
-<p>lxml also provides support for ISO-<a class="reference external" href="http://www.schematron.com">Schematron</a>, based on the pure-XSLT
-<a class="reference external" href="http://www.schematron.com/implementation.html">skeleton implementation</a> of Schematron:</p>
-<p>There is also basic support for <span class="incremental">pre-ISO-Schematron</span> through the libxml2
-Schematron features. However, this does not currently support error reporting
-in the validation phase due to insufficiencies in the implementation as of
-libxml2 2.6.30.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#validation-with-lxml" id="id4">Validation with lxml</a><ul>
-<li><a class="reference internal" href="#validation-at-parse-time" id="id5">Validation at parse time</a></li>
-<li><a class="reference internal" href="#id1" id="id6">DTD</a></li>
-<li><a class="reference internal" href="#relaxng" id="id7">RelaxNG</a></li>
-<li><a class="reference internal" href="#xmlschema" id="id8">XMLSchema</a></li>
-<li><a class="reference internal" href="#id2" id="id9">Schematron</a></li>
-<li><a class="reference internal" href="#id3" id="id10">(Pre-ISO-Schematron)</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<p>The usual setup procedure:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-</pre></div>
-</div>
-<div class="section" id="validation-at-parse-time">
-<h2><a class="toc-backref" href="#id5">Validation at parse time</a><a class="headerlink" href="#validation-at-parse-time" title="Permalink to this headline">¶</a></h2>
-<p>The parser in lxml can do on-the-fly validation of a document against
-a DTD or an XML schema.  The DTD is retrieved automatically based on
-the DOCTYPE of the parsed document.  All you have to do is use a
-parser that has DTD validation enabled:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">dtd_validation</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Obviously, a request for validation enables the DTD loading feature.
-There are two other options that enable loading the DTD, but that do
-not perform any validation.  The first is the <tt class="docutils literal"><span class="pre">load_dtd</span></tt> keyword
-option, which simply loads the DTD into the parser and makes it
-available to the document as external subset.  You can retrieve the
-DTD from the parsed document using the <tt class="docutils literal"><span class="pre">docinfo</span></tt> property of the
-result ElementTree object.  The internal subset is available as
-<tt class="docutils literal"><span class="pre">internalDTD</span></tt>, the external subset is provided as <tt class="docutils literal"><span class="pre">externalDTD</span></tt>.</p>
-<p>The third way way to activate DTD loading is with the
-<tt class="docutils literal"><span class="pre">attribute_defaults</span></tt> option, which loads the DTD and weaves
-attribute default values into the document.  Again, no validation is
-performed unless explicitly requested.</p>
-<p>XML schema is supported in a similar way, but requires an explicit
-schema to be provided:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">schema_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">  &lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:element name=&quot;a&quot; type=&quot;xsd:integer&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsd:schema&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schema</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSchema</span><span class="p">(</span><span class="n">schema_root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLParser</span><span class="p">(</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;a&gt;5&lt;/a&gt;&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>If the validation fails (be it for a DTD or an XML schema), the parser
-will raise an exception:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">&quot;&lt;a&gt;no int&lt;/a&gt;&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="gr">lxml.etree.XMLSyntaxError: Element &#39;a&#39;</span>: <span class="n">&#39;no int&#39; is not a valid value of the atomic type &#39;xs:integer&#39;.</span>
-</pre></div>
-</div>
-<p>If you want the parser to succeed regardless of the outcome of the
-validation, you should use a non validating parser and run the
-validation separately after parsing the document.</p>
-</div>
-<div class="section" id="id1">
-<h2><a class="toc-backref" href="#id6">DTD</a><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
-<p>As described above, the parser support for DTDs depends on internal or
-external subsets of the XML file.  This means that the XML file itself
-must either contain a DTD or must reference a DTD to make this work.
-If you want to validate an XML document against a DTD that is not
-referenced by the document itself, you can use the <tt class="docutils literal"><span class="pre">DTD</span></tt> class.</p>
-<p>To use the <tt class="docutils literal"><span class="pre">DTD</span></tt> class, you must first pass a filename or file-like object
-into the constructor to parse a DTD:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&quot;&lt;!ELEMENT b EMPTY&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Now you can use it to validate documents:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;b/&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">dtd</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;b&gt;&lt;a/&gt;&lt;/b&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">dtd</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>The reason for the validation failure can be found in the error log:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">dtd</span><span class="o">.</span><span class="n">error_log</span><span class="o">.</span><span class="n">filter_from_errors</span><span class="p">()[</span><span class="mi">0</span><span class="p">])</span>
-<span class="go">&lt;string&gt;:1:0:ERROR:VALID:DTD_NOT_EMPTY: Element b was declared EMPTY this one has content</span>
-</pre></div>
-</div>
-<p>As an alternative to parsing from a file, you can use the
-<tt class="docutils literal"><span class="pre">external_id</span></tt> keyword argument to parse from a catalog.  The
-following example reads the DocBook DTD in version 4.2, if available
-in the system catalog:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">dtd</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">DTD</span><span class="p">(</span><span class="n">external_id</span> <span class="o">=</span> <span class="s">&quot;-//OASIS//DTD DocBook XML V4.2//EN&quot;</span><span class="p">)</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="relaxng">
-<h2><a class="toc-backref" href="#id7">RelaxNG</a><a class="headerlink" href="#relaxng" title="Permalink to this headline">¶</a></h2>
-<p>The <tt class="docutils literal"><span class="pre">RelaxNG</span></tt> class takes an ElementTree object to construct a Relax NG
-validator:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;element name=&quot;a&quot; xmlns=&quot;http://relaxng.org/ns/structure/1.0&quot;&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;zeroOrMore&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;element name=&quot;b&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;text /&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/element&gt;</span>
-<span class="gp">... </span><span class="s"> &lt;/zeroOrMore&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/element&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">RelaxNG</span><span class="p">(</span><span class="n">relaxng_doc</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>Alternatively, pass a filename to the <tt class="docutils literal"><span class="pre">file</span></tt> keyword argument to parse from
-a file.  This also enables correct handling of include files from within the
-RelaxNG parser.</p>
-<p>You can then validate some ElementTree document against the schema. You&#8217;ll get
-back True if the document is valid against the Relax NG schema, and False if
-not:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>Calling the schema object has the same effect as calling its validate
-method. This is sometimes used in conditional statements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">relaxng</span><span class="p">(</span><span class="n">doc2</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;invalid!&quot;</span><span class="p">)</span>
-<span class="go">invalid!</span>
-</pre></div>
-</div>
-<p>If you prefer getting an exception when validating, you can use the
-<tt class="docutils literal"><span class="pre">assert_</span></tt> or <tt class="docutils literal"><span class="pre">assertValid</span></tt> methods:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span><span class="o">.</span><span class="n">assertValid</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.DocumentInvalid</span>: <span class="n">Did not expect element c there, line 1</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">relaxng</span><span class="o">.</span><span class="n">assert_</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AssertionError</span>: <span class="n">Did not expect element c there, line 1</span>
-</pre></div>
-</div>
-<p>If you want to find out why the validation failed in the second case, you can
-look up the error log of the validation process and check it for relevant
-messages:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">log</span> <span class="o">=</span> <span class="n">relaxng</span><span class="o">.</span><span class="n">error_log</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">log</span><span class="o">.</span><span class="n">last_error</span><span class="p">)</span>
-<span class="go">&lt;string&gt;:1:0:ERROR:RELAXNGV:RELAXNG_ERR_ELEMWRONG: Did not expect element c there</span>
-</pre></div>
-</div>
-<p>You can see that the error (ERROR) happened during RelaxNG validation
-(RELAXNGV).  The message then tells you what went wrong.  You can also
-look at the error domain and its type directly:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">error</span> <span class="o">=</span> <span class="n">log</span><span class="o">.</span><span class="n">last_error</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">domain_name</span><span class="p">)</span>
-<span class="go">RELAXNGV</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">type_name</span><span class="p">)</span>
-<span class="go">RELAXNG_ERR_ELEMWRONG</span>
-</pre></div>
-</div>
-<p>Note that this error log is local to the RelaxNG object.  It will only
-contain log entries that appeared during the validation.</p>
-<p>Similar to XSLT, there&#8217;s also a less efficient but easier shortcut method to
-do one-shot RelaxNG validation:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">relaxng</span><span class="p">(</span><span class="n">relaxng_doc</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span><span class="o">.</span><span class="n">relaxng</span><span class="p">(</span><span class="n">relaxng_doc</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>libxml2 does not currently support the <a class="reference external" href="http://www.thaiopensource.com/relaxng/trang.html">RelaxNG Compact Syntax</a>.
-However, the <a class="reference external" href="http://www.thaiopensource.com/relaxng/trang.html">trang</a> translator can convert the compact syntax to the
-XML syntax, which can then be used with lxml.</p>
-</div>
-<div class="section" id="xmlschema">
-<h2><a class="toc-backref" href="#id8">XMLSchema</a><a class="headerlink" href="#xmlschema" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree also has XML Schema (XSD) support, using the class
-lxml.etree.XMLSchema.  The API is very similar to the Relax NG and DTD
-classes.  Pass an ElementTree object to construct a XMLSchema validator:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</span>
-<span class="gp">... </span><span class="s">&lt;xsd:element name=&quot;a&quot; type=&quot;AType&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">&lt;xsd:complexType name=&quot;AType&quot;&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsd:element name=&quot;b&quot; type=&quot;xsd:string&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/xsd:sequence&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsd:complexType&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsd:schema&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XMLSchema</span><span class="p">(</span><span class="n">xmlschema_doc</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>You can then validate some ElementTree document with this.  Like with RelaxNG,
-you&#8217;ll get back true if the document is valid against the XML schema, and
-false if not:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>Calling the schema object has the same effect as calling its validate method.
-This is sometimes used in conditional statements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">invalid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">xmlschema</span><span class="p">(</span><span class="n">doc2</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;invalid!&quot;</span><span class="p">)</span>
-<span class="go">invalid!</span>
-</pre></div>
-</div>
-<p>If you prefer getting an exception when validating, you can use the
-<tt class="docutils literal"><span class="pre">assert_</span></tt> or <tt class="docutils literal"><span class="pre">assertValid</span></tt> methods:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">assertValid</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.DocumentInvalid: Element &#39;c&#39;</span>: <span class="n">This element is not expected. Expected is ( b )., line 1</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">assert_</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">AssertionError: Element &#39;c&#39;</span>: <span class="n">This element is not expected. Expected is ( b )., line 1</span>
-</pre></div>
-</div>
-<p>Error reporting works as for the RelaxNG class:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">log</span> <span class="o">=</span> <span class="n">xmlschema</span><span class="o">.</span><span class="n">error_log</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">error</span> <span class="o">=</span> <span class="n">log</span><span class="o">.</span><span class="n">last_error</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">domain_name</span><span class="p">)</span>
-<span class="go">SCHEMASV</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">type_name</span><span class="p">)</span>
-<span class="go">SCHEMAV_ELEMENT_CONTENT</span>
-</pre></div>
-</div>
-<p>If you were to print this log entry, you would get something like the
-following.  Note that the error message depends on the libxml2 version in
-use:</p>
-<div class="highlight-python"><pre>&lt;string&gt;:1:ERROR::SCHEMAV_ELEMENT_CONTENT: Element 'c': This element is not expected. Expected is ( b ).</pre>
-</div>
-<p>Similar to XSLT and RelaxNG, there&#8217;s also a less efficient but easier shortcut
-method to do XML Schema validation:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">xmlschema</span><span class="p">(</span><span class="n">xmlschema_doc</span><span class="p">)</span>
-<span class="go">True</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc2</span><span class="o">.</span><span class="n">xmlschema</span><span class="p">(</span><span class="n">xmlschema_doc</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="id2">
-<h2><a class="toc-backref" href="#id9">Schematron</a><a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2>
-<p>From version 2.3 on lxml features ISO-<a class="reference external" href="http://www.schematron.com">Schematron</a> support built on the
-de-facto reference implementation of Schematron, the pure-XSLT-1.0
-<a class="reference external" href="http://www.schematron.com/implementation.html">skeleton implementation</a>. This is provided by the lxml.isoschematron package
-that implements the Schematron class, with an API compatible to the other
-validators&#8217;.  Pass an Element or ElementTree object to construct a Schematron
-validator:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">isoschematron</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;schema xmlns=&quot;http://purl.oclc.org/dsdl/schematron&quot; &gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern id=&quot;sum_equals_100_percent&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;Sum equals 100%.&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context=&quot;Total&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test=&quot;sum(//Percent)=100&quot;&gt;Sum is not 100%.&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/schema&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sct_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>You can then validate some ElementTree document with this. Just like with
-XMLSchema or RelaxNG, you&#8217;ll get back true if the document is valid against the
-schema, and false if not:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="s">&quot;Percent&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;10&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>Calling the schema object has the same effect as calling its validate method.
-This can be useful for conditional statements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">is_valid</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">is_valid</span><span class="p">(</span><span class="n">doc</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;invalid!&quot;</span><span class="p">)</span>
-<span class="go">invalid!</span>
-</pre></div>
-</div>
-<p>Built on a pure-xslt implementation, the actual validator is created as an
-XSLT 1.0 stylesheet using these steps:</p>
-<ol class="arabic simple" start="0">
-<li>(Extract embedded Schematron from XML Schema or RelaxNG schema)</li>
-<li>Process inclusions</li>
-<li>Process abstract patterns</li>
-<li>Compile the schematron schema to XSLT</li>
-</ol>
-<p>To allow more control over the individual steps, isoschematron.Schematron
-supports an extended API:</p>
-<p>The <tt class="docutils literal"><span class="pre">include</span></tt> and <tt class="docutils literal"><span class="pre">expand</span></tt> keyword arguments can be used to switch off
-steps 1) and 2).</p>
-<p>To set parameters for steps 1), 2) and 3) dictionaries containing parameters
-for XSLT can be provided using the keyword arguments <tt class="docutils literal"><span class="pre">include_params</span></tt>,
-<tt class="docutils literal"><span class="pre">expand_params</span></tt> or <tt class="docutils literal"><span class="pre">compile_params</span></tt>. Schematron automatically converts these
-parameters to stylesheet parameters so you need not worry to set string
-parameters using quotes or to use XSLT.strparam(). If you ever need to pass an
-XPath as argument to the XSLT stylesheet you can pass in an etree.XPath object
-(see XPath and XSLT with lxml: <a class="reference external" href="xpathxslt.html#stylesheet-parameters">Stylesheet-parameters</a> for background on this).</p>
-<p>The <tt class="docutils literal"><span class="pre">phase</span></tt> parameter of the compile step is additionally exposed as a keyword
-argument. If set, it overrides occurrence in <tt class="docutils literal"><span class="pre">compile_params</span></tt>. Note that
-isoschematron.Schematron might expose more common parameters as additional keyword
-args in the future.</p>
-<p>By setting <tt class="docutils literal"><span class="pre">store_schematron</span></tt> to True, the (included-and-expanded) schematron
-document tree is stored and made available through the <tt class="docutils literal"><span class="pre">schematron</span></tt> property.</p>
-<p>Similarly, setting <tt class="docutils literal"><span class="pre">store_xslt</span></tt> to True will result in the validation XSLT
-document tree being kept; it can be retrieved through the <tt class="docutils literal"><span class="pre">validator_xslt</span></tt>
-property.</p>
-<p>Finally, with <tt class="docutils literal"><span class="pre">store_report</span></tt> set to True (default: False), the resulting
-validation report document gets stored and can be accessed as the
-<tt class="docutils literal"><span class="pre">validation_report</span></tt> property.</p>
-<p>Using the <tt class="docutils literal"><span class="pre">phase</span></tt> parameter of isoschematron.Schematron allows for selective
-validation of predefined pattern groups:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;schema xmlns=&quot;http://purl.oclc.org/dsdl/schematron&quot; &gt;</span>
-<span class="gp">... </span><span class="s">  &lt;phase id=&quot;phase.sum_check&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;active pattern=&quot;sum_equals_100_percent&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/phase&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;phase id=&quot;phase.entries_check&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;active pattern=&quot;all_positive&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/phase&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern id=&quot;sum_equals_100_percent&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;Sum equals 100%.&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context=&quot;Total&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test=&quot;sum(//Percent)=100&quot;&gt;Sum is not 100%.&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern id=&quot;all_positive&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;title&gt;All entries must be positive.&lt;/title&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context=&quot;Percent&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test=&quot;number(.)&gt;0&quot;&gt;Number (&lt;value-of select=&quot;.&quot;/&gt;) not positive&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/schema&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sct_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">invalid_positive</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;0&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">invalid_positive</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>If the constraint of Percent entries being positive is not of interest in a
-certain validation scenario, it can now be disabled:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">selective</span> <span class="o">=</span> <span class="n">isoschematron</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">,</span> <span class="n">phase</span><span class="o">=</span><span class="s">&quot;phase.sum_check&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">selective</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>The usage of validation phases is a unique feature of ISO-Schematron and can be
-a very powerful tool e.g. for establishing validation stages or to provide
-different validators for different &#8220;validation audiences&#8221;.</p>
-</div>
-<div class="section" id="id3">
-<h2><a class="toc-backref" href="#id10">(Pre-ISO-Schematron)</a><a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h2>
-<p>Since version 2.0, lxml.etree features <a class="reference external" href="http://www.ascc.net/xml/schematron">pre-ISO-Schematron</a> support, using the
-class lxml.etree.Schematron.  It requires at least libxml2 2.6.21 to
-work.  The API is the same as for the other validators.  Pass an
-ElementTree object to construct a Schematron validator:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;schema xmlns=&quot;http://www.ascc.net/xml/schematron&quot; &gt;</span>
-<span class="gp">... </span><span class="s">  &lt;pattern name=&quot;Sum equals 100%.&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;rule context=&quot;Total&quot;&gt;</span>
-<span class="gp">... </span><span class="s">      &lt;assert test=&quot;sum(//Percent)=100&quot;&gt;Sum is not 100%.&lt;/assert&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/rule&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;/pattern&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/schema&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">sct_doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>You can then validate some ElementTree document with this.  Like with RelaxNG,
-you&#8217;ll get back true if the document is valid against the schema, and false if
-not:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">valid</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;Total&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;20&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;30&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">  &lt;Percent&gt;50&lt;/Percent&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/Total&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">valid</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">getroot</span><span class="p">(),</span> <span class="s">&quot;Percent&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s">&quot;10&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">schematron</span><span class="o">.</span><span class="n">validate</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-<p>Calling the schema object has the same effect as calling its validate method.
-This is sometimes used in conditional statements:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">is_valid</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Schematron</span><span class="p">(</span><span class="n">sct_doc</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">if</span> <span class="ow">not</span> <span class="n">is_valid</span><span class="p">(</span><span class="n">doc</span><span class="p">):</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&quot;invalid!&quot;</span><span class="p">)</span>
-<span class="go">invalid!</span>
-</pre></div>
-</div>
-<p>Note that libxml2 restricts error reporting to the parsing step (when creating
-the Schematron instance).  There is not currently any support for error
-reporting during validation.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Validation with lxml</a><ul>
-<li><a class="reference internal" href="#validation-at-parse-time">Validation at parse time</a></li>
-<li><a class="reference internal" href="#id1">DTD</a></li>
-<li><a class="reference internal" href="#relaxng">RelaxNG</a></li>
-<li><a class="reference internal" href="#xmlschema">XMLSchema</a></li>
-<li><a class="reference internal" href="#id2">Schematron</a></li>
-<li><a class="reference internal" href="#id3">(Pre-ISO-Schematron)</a></li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/validation.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/sphinx/xpathxslt.html b/doc/sphinx/xpathxslt.html
deleted file mode 100644 (file)
index 16d702c..0000000
+++ /dev/null
@@ -1,736 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>XPath and XSLT with lxml &mdash; lxml v2.3 - Processing XML and HTML with Python</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '2.3',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="lxml v2.3 - Processing XML and HTML with Python" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <div class="section" id="xpath-and-xslt-with-lxml">
-<h1><a class="toc-backref" href="#id1">XPath and XSLT with lxml</a><a class="headerlink" href="#xpath-and-xslt-with-lxml" title="Permalink to this headline">¶</a></h1>
-<p>lxml supports XPath 1.0, XSLT 1.0 and the EXSLT extensions through
-libxml2 and libxslt in a standards compliant way.</p>
-<div class="contents topic" id="contents">
-<p class="topic-title first">Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#xpath-and-xslt-with-lxml" id="id1">XPath and XSLT with lxml</a><ul>
-<li><a class="reference internal" href="#xpath" id="id2">XPath</a><ul>
-<li><a class="reference internal" href="#the-xpath-method" id="id3">The <tt class="docutils literal"><span class="pre">xpath()</span></tt> method</a></li>
-<li><a class="reference internal" href="#namespaces-and-prefixes" id="id4">Namespaces and prefixes</a></li>
-<li><a class="reference internal" href="#xpath-return-values" id="id5">XPath return values</a></li>
-<li><a class="reference internal" href="#generating-xpath-expressions" id="id6">Generating XPath expressions</a></li>
-<li><a class="reference internal" href="#the-xpath-class" id="id7">The <tt class="docutils literal"><span class="pre">XPath</span></tt> class</a></li>
-<li><a class="reference internal" href="#regular-expressions-in-xpath" id="id8">Regular expressions in XPath</a></li>
-<li><a class="reference internal" href="#the-xpathevaluator-classes" id="id9">The <tt class="docutils literal"><span class="pre">XPathEvaluator</span></tt> classes</a></li>
-<li><a class="reference internal" href="#etxpath" id="id10"><tt class="docutils literal"><span class="pre">ETXPath</span></tt></a></li>
-<li><a class="reference internal" href="#error-handling" id="id11">Error handling</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xslt" id="id12">XSLT</a><ul>
-<li><a class="reference internal" href="#xslt-result-objects" id="id13">XSLT result objects</a></li>
-<li><a class="reference internal" href="#stylesheet-parameters" id="id14">Stylesheet parameters</a></li>
-<li><a class="reference internal" href="#errors-and-messages" id="id15">Errors and messages</a></li>
-<li><a class="reference internal" href="#the-xslt-tree-method" id="id16">The <tt class="docutils literal"><span class="pre">xslt()</span></tt> tree method</a></li>
-<li><a class="reference internal" href="#dealing-with-stylesheet-complexity" id="id17">Dealing with stylesheet complexity</a></li>
-<li><a class="reference internal" href="#profiling" id="id18">Profiling</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<p>The usual setup procedure:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
-</pre></div>
-</div>
-<div class="section" id="xpath">
-<h2><a class="toc-backref" href="#id2">XPath</a><a class="headerlink" href="#xpath" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree supports the simple path syntax of the <a class="reference external" href="http://effbot.org/zone/element.htm#searching-for-subelements">find, findall and
-findtext</a> methods on ElementTree and Element, as known from the original
-ElementTree library (<a class="reference external" href="http://effbot.org/zone/element-xpath.htm">ElementPath</a>).  As an lxml specific extension, these
-classes also provide an <tt class="docutils literal"><span class="pre">xpath()</span></tt> method that supports expressions in the
-complete XPath syntax, as well as <a class="reference external" href="extensions.html#xpath-extension-functions">custom extension functions</a>.</p>
-<p>There are also specialized XPath evaluator classes that are more efficient for
-frequent evaluation: <tt class="docutils literal"><span class="pre">XPath</span></tt> and <tt class="docutils literal"><span class="pre">XPathEvaluator</span></tt>.  See the <a class="reference external" href="performance.html#xpath">performance
-comparison</a> to learn when to use which.  Their semantics when used on
-Elements and ElementTrees are the same as for the <tt class="docutils literal"><span class="pre">xpath()</span></tt> method described
-here.</p>
-<div class="section" id="the-xpath-method">
-<h3><a class="toc-backref" href="#id3">The <tt class="docutils literal"><span class="pre">xpath()</span></tt> method</a><a class="headerlink" href="#the-xpath-method" title="Permalink to this headline">¶</a></h3>
-<p>For ElementTree, the xpath method performs a global XPath query against the
-document (if absolute) or against the root node (if relative):</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;foo&gt;&lt;bar&gt;&lt;/bar&gt;&lt;/foo&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;/foo/bar&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;bar&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;bar&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;bar&#39;</span>
-</pre></div>
-</div>
-<p>When <tt class="docutils literal"><span class="pre">xpath()</span></tt> is used on an Element, the XPath expression is evaluated
-against the element (if relative) or against the root tree (if absolute):</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;bar&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;bar&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">bar</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">bar</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;/foo/bar&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;bar&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">bar</span><span class="o">.</span><span class="n">getroottree</span><span class="p">()</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;/foo/bar&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;bar&#39;</span>
-</pre></div>
-</div>
-<p>The <tt class="docutils literal"><span class="pre">xpath()</span></tt> method has support for XPath variables:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">expr</span> <span class="o">=</span> <span class="s">&quot;//*[local-name() = $name]&quot;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;foo&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">foo</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;bar&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">bar</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;$text&quot;</span><span class="p">,</span> <span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Hello World!&quot;</span><span class="p">))</span>
-<span class="go">Hello World!</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="namespaces-and-prefixes">
-<h3><a class="toc-backref" href="#id4">Namespaces and prefixes</a><a class="headerlink" href="#namespaces-and-prefixes" title="Permalink to this headline">¶</a></h3>
-<p>If your XPath expression uses namespace prefixes, you must define them
-in a prefix mapping.  To this end, pass a dictionary to the
-<tt class="docutils literal"><span class="pre">namespaces</span></tt> keyword argument that maps the namespace prefixes used
-in the XPath expression to namespace URIs:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;a:foo xmlns:a=&quot;http://codespeak.net/ns/test1&quot;</span>
-<span class="gp">... </span><span class="s">       xmlns:b=&quot;http://codespeak.net/ns/test2&quot;&gt;</span>
-<span class="gp">... </span><span class="s">   &lt;b:bar&gt;Text&lt;/b:bar&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/a:foo&gt;</span>
-<span class="gp">... </span><span class="s">&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&#39;/t:foo/b:bar&#39;</span><span class="p">,</span>
-<span class="gp">... </span>              <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;t&#39;</span><span class="p">:</span> <span class="s">&#39;http://codespeak.net/ns/test1&#39;</span><span class="p">,</span>
-<span class="gp">... </span>                          <span class="s">&#39;b&#39;</span><span class="p">:</span> <span class="s">&#39;http://codespeak.net/ns/test2&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
-<span class="go">1</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
-<span class="go">&#39;{http://codespeak.net/ns/test2}bar&#39;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;Text&#39;</span>
-</pre></div>
-</div>
-<p>The prefixes you choose here are not linked to the prefixes used
-inside the XML document.  The document may define whatever prefixes it
-likes, including the empty prefix, without breaking the above code.</p>
-<p>Note that XPath does not have a notion of a default namespace.  The
-empty prefix is therefore undefined for XPath and cannot be used in
-namespace prefix mappings.</p>
-<p>There is also an optional <tt class="docutils literal"><span class="pre">extensions</span></tt> argument which is used to
-define <a class="reference external" href="extensions.html#xpath-extension-functions">custom extension functions</a> in Python that are local to this
-evaluation.  The namespace prefixes that they use in the XPath
-expression must also be defined in the namespace prefix mapping.</p>
-</div>
-<div class="section" id="xpath-return-values">
-<h3><a class="toc-backref" href="#id5">XPath return values</a><a class="headerlink" href="#xpath-return-values" title="Permalink to this headline">¶</a></h3>
-<p>The return value types of XPath evaluations vary, depending on the
-XPath expression used:</p>
-<ul class="simple">
-<li>True or False, when the XPath expression has a boolean result</li>
-<li>a float, when the XPath expression has a numeric result (integer or float)</li>
-<li>a &#8216;smart&#8217; string (as described below), when the XPath expression has
-a string result.</li>
-<li>a list of items, when the XPath expression has a list as result.
-The items may include Elements (also comments and processing
-instructions), strings and tuples.  Text nodes and attributes in the
-result are returned as &#8216;smart&#8217; string values.  Namespace
-declarations are returned as tuples of strings: <tt class="docutils literal"><span class="pre">(prefix,</span> <span class="pre">URI)</span></tt>.</li>
-</ul>
-<p>XPath string results are &#8216;smart&#8217; in that they provide a
-<tt class="docutils literal"><span class="pre">getparent()</span></tt> method that knows their origin:</p>
-<ul class="simple">
-<li>for attribute values, <tt class="docutils literal"><span class="pre">result.getparent()</span></tt> returns the Element
-that carries them.  An example is <tt class="docutils literal"><span class="pre">//foo/&#64;attribute</span></tt>, where the
-parent would be a <tt class="docutils literal"><span class="pre">foo</span></tt> Element.</li>
-<li>for the <tt class="docutils literal"><span class="pre">text()</span></tt> function (as in <tt class="docutils literal"><span class="pre">//text()</span></tt>), it returns the
-Element that contains the text or tail that was returned.</li>
-</ul>
-<p>You can distinguish between different text origins with the boolean
-properties <tt class="docutils literal"><span class="pre">is_text</span></tt>, <tt class="docutils literal"><span class="pre">is_tail</span></tt> and <tt class="docutils literal"><span class="pre">is_attribute</span></tt>.</p>
-<p>Note that <tt class="docutils literal"><span class="pre">getparent()</span></tt> may not always return an Element.  For
-example, the XPath functions <tt class="docutils literal"><span class="pre">string()</span></tt> and <tt class="docutils literal"><span class="pre">concat()</span></tt> will
-construct strings that do not have an origin.  For them,
-<tt class="docutils literal"><span class="pre">getparent()</span></tt> will return None.</p>
-<p>There are certain cases where the smart string behaviour is
-undesirable.  For example, it means that the tree will be kept alive
-by the string, which may have a considerable memory impact in the case
-that the string value is the only thing in the tree that is actually
-of interest.  For these cases, you can deactivate the parental
-relationship using the keyword argument <tt class="docutils literal"><span class="pre">smart_strings</span></tt>.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;TEXT&lt;/a&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find_text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//text()&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">text</span> <span class="o">=</span> <span class="n">find_text</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
-<span class="go">TEXT</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">text</span><span class="o">.</span><span class="n">getparent</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">TEXT</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find_text</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//text()&quot;</span><span class="p">,</span> <span class="n">smart_strings</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">text</span> <span class="o">=</span> <span class="n">find_text</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
-<span class="go">TEXT</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">hasattr</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s">&#39;getparent&#39;</span><span class="p">)</span>
-<span class="go">False</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="generating-xpath-expressions">
-<h3><a class="toc-backref" href="#id6">Generating XPath expressions</a><a class="headerlink" href="#generating-xpath-expressions" title="Permalink to this headline">¶</a></h3>
-<p>ElementTree objects have a method <tt class="docutils literal"><span class="pre">getpath(element)</span></tt>, which returns a
-structural, absolute XPath expression to find that element:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">a</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;a&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s">&quot;b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">c</span>  <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="s">&quot;c&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d1</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s">&quot;d&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">d2</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">SubElement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s">&quot;d&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ElementTree</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getpath</span><span class="p">(</span><span class="n">d2</span><span class="p">))</span>
-<span class="go">/c/d[2]</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">getpath</span><span class="p">(</span><span class="n">d2</span><span class="p">))</span> <span class="o">==</span> <span class="p">[</span><span class="n">d2</span><span class="p">]</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="the-xpath-class">
-<h3><a class="toc-backref" href="#id7">The <tt class="docutils literal"><span class="pre">XPath</span></tt> class</a><a class="headerlink" href="#the-xpath-class" title="Permalink to this headline">¶</a></h3>
-<p>The <tt class="docutils literal"><span class="pre">XPath</span></tt> class compiles an XPath expression into a callable function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-</pre></div>
-</div>
-<p>The compilation takes as much time as in the <tt class="docutils literal"><span class="pre">xpath()</span></tt> method, but it is
-done only once per class instantiation.  This makes it especially efficient
-for repeated evaluation of the same XPath expression.</p>
-<p>Just like the <tt class="docutils literal"><span class="pre">xpath()</span></tt> method, the <tt class="docutils literal"><span class="pre">XPath</span></tt> class supports XPath
-variables:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">count_elements</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;count(//*[local-name() = $name])&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">count_elements</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;a&quot;</span><span class="p">))</span>
-<span class="go">1.0</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">count_elements</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;b&quot;</span><span class="p">))</span>
-<span class="go">2.0</span>
-</pre></div>
-</div>
-<p>This supports very efficient evaluation of modified versions of an XPath
-expression, as compilation is still only required once.</p>
-<p>Prefix-to-namespace mappings can be passed as second parameter:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root xmlns=&#39;NS&#39;&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//n:b&quot;</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;n&#39;</span><span class="p">:</span><span class="s">&#39;NS&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{NS}b</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="regular-expressions-in-xpath">
-<h3><a class="toc-backref" href="#id8">Regular expressions in XPath</a><a class="headerlink" href="#regular-expressions-in-xpath" title="Permalink to this headline">¶</a></h3>
-<p>By default, <tt class="docutils literal"><span class="pre">XPath</span></tt> supports regular expressions in the <a class="reference external" href="http://www.exslt.org/">EXSLT</a> namespace:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">regexpNS</span> <span class="o">=</span> <span class="s">&quot;http://exslt.org/regular-expressions&quot;</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//*[re:test(., &#39;^abc$&#39;, &#39;i&#39;)]&quot;</span><span class="p">,</span>
-<span class="gp">... </span>                   <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;re&#39;</span><span class="p">:</span><span class="n">regexpNS</span><span class="p">})</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;aB&lt;/a&gt;&lt;b&gt;aBc&lt;/b&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-<span class="go">aBc</span>
-</pre></div>
-</div>
-<p>You can disable this with the boolean keyword argument <tt class="docutils literal"><span class="pre">regexp</span></tt> which
-defaults to True.</p>
-</div>
-<div class="section" id="the-xpathevaluator-classes">
-<h3><a class="toc-backref" href="#id9">The <tt class="docutils literal"><span class="pre">XPathEvaluator</span></tt> classes</a><a class="headerlink" href="#the-xpathevaluator-classes" title="Permalink to this headline">¶</a></h3>
-<p>lxml.etree provides two other efficient XPath evaluators that work on
-ElementTrees or Elements respectively: <tt class="docutils literal"><span class="pre">XPathDocumentEvaluator</span></tt> and
-<tt class="docutils literal"><span class="pre">XPathElementEvaluator</span></tt>.  They are automatically selected if you use the
-XPathEvaluator helper for instantiation:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">xpatheval</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathEvaluator</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">xpatheval</span><span class="p">,</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPathElementEvaluator</span><span class="p">))</span>
-<span class="go">True</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">xpatheval</span><span class="p">(</span><span class="s">&quot;//b&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">b</span>
-</pre></div>
-</div>
-<p>This class provides efficient support for evaluating different XPath
-expressions on the same Element or ElementTree.</p>
-</div>
-<div class="section" id="etxpath">
-<h3><a class="toc-backref" href="#id10"><tt class="docutils literal"><span class="pre">ETXPath</span></tt></a><a class="headerlink" href="#etxpath" title="Permalink to this headline">¶</a></h3>
-<p>ElementTree supports a language named <a class="reference external" href="http://effbot.org/zone/element-xpath.htm">ElementPath</a> in its <tt class="docutils literal"><span class="pre">find*()</span></tt> methods.
-One of the main differences between XPath and ElementPath is that the XPath
-language requires an indirection through prefixes for namespace support,
-whereas ElementTree uses the Clark notation (<tt class="docutils literal"><span class="pre">{ns}name</span></tt>) to avoid prefixes
-completely.  The other major difference regards the capabilities of both path
-languages.  Where XPath supports various sophisticated ways of restricting the
-result set through functions and boolean expressions, ElementPath only
-supports pure path traversal without nesting or further conditions.  So, while
-the ElementPath syntax is self-contained and therefore easier to write and
-handle, XPath is much more powerful and expressive.</p>
-<p>lxml.etree bridges this gap through the class <tt class="docutils literal"><span class="pre">ETXPath</span></tt>, which accepts XPath
-expressions with namespaces in Clark notation.  It is identical to the
-<tt class="docutils literal"><span class="pre">XPath</span></tt> class, except for the namespace notation.  Normally, you would
-write:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&quot;&lt;root xmlns=&#39;ns&#39;&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;&lt;b/&gt;&lt;/root&gt;&quot;</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//p:b&quot;</span><span class="p">,</span> <span class="n">namespaces</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;p&#39;</span> <span class="p">:</span> <span class="s">&#39;ns&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{ns}b</span>
-</pre></div>
-</div>
-<p><tt class="docutils literal"><span class="pre">ETXPath</span></tt> allows you to change this to:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">ETXPath</span><span class="p">(</span><span class="s">&quot;//{ns}b&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
-<span class="go">{ns}b</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="error-handling">
-<h3><a class="toc-backref" href="#id11">Error handling</a><a class="headerlink" href="#error-handling" title="Permalink to this headline">¶</a></h3>
-<p>lxml.etree raises exceptions when errors occur while parsing or evaluating an
-XPath expression:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XPathSyntaxError</span>: <span class="n">Invalid expression</span>
-</pre></div>
-</div>
-<p>lxml will also try to give you a hint what went wrong, so if you pass a more
-complex expression, you may get a somewhat more specific error:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//*[1.1.1]&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XPathSyntaxError</span>: <span class="n">Invalid predicate</span>
-</pre></div>
-</div>
-<p>During evaluation, lxml will emit an XPathEvalError on errors:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;//ns:a&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Undefined namespace prefix</span>
-</pre></div>
-</div>
-<p>This works for the <tt class="docutils literal"><span class="pre">XPath</span></tt> class, however, the other evaluators (including
-the <tt class="docutils literal"><span class="pre">xpath()</span></tt> method) are one-shot operations that do parsing and evaluation
-in one step.  They therefore raise evaluation exceptions in all cases:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s">&quot;test&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//*[1.1.1]&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Invalid predicate</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;//ns:a&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Undefined namespace prefix</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">lxml.etree.XPathEvalError</span>: <span class="n">Invalid expression</span>
-</pre></div>
-</div>
-<p>Note that lxml versions before 1.3 always raised an <tt class="docutils literal"><span class="pre">XPathSyntaxError</span></tt> for
-all errors, including evaluation errors.  The best way to support older
-versions is to except on the superclass <tt class="docutils literal"><span class="pre">XPathError</span></tt>.</p>
-</div>
-</div>
-<div class="section" id="xslt">
-<h2><a class="toc-backref" href="#id12">XSLT</a><a class="headerlink" href="#xslt" title="Permalink to this headline">¶</a></h2>
-<p>lxml.etree introduces a new class, lxml.etree.XSLT. The class can be
-given an ElementTree or Element object to construct an XSLT
-transformer:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select=&quot;/a/b/text()&quot; /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_root</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>You can then run the transformation on an ElementTree document by simply
-calling it, and this results in another ElementTree object:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result_tree</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>By default, XSLT supports all extension functions from libxslt and
-libexslt as well as Python regular expressions through the <a class="reference external" href="http://www.exslt.org/regexp/">EXSLT
-regexp functions</a>.  Also see the documentation on <a class="reference external" href="extensions.html#xpath-extension-functions">custom extension
-functions</a>, <a class="reference external" href="extensions.html#xslt-extension-elements">XSLT extension elements</a> and <a class="reference external" href="resolvers.html">document resolvers</a>.
-There is a separate section on <a class="reference external" href="resolvers.html#i-o-access-control-in-xslt">controlling access</a> to external
-documents and resources.</p>
-<div class="section" id="xslt-result-objects">
-<h3><a class="toc-backref" href="#id13">XSLT result objects</a><a class="headerlink" href="#xslt-result-objects" title="Permalink to this headline">¶</a></h3>
-<p>The result of an XSL transformation can be accessed like a normal ElementTree
-document:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span><span class="o">.</span><span class="n">text</span>
-<span class="go">&#39;Text&#39;</span>
-</pre></div>
-</div>
-<p>but, as opposed to normal ElementTree objects, can also be turned into an (XML
-or text) string by applying the str() function:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>The result is always a plain string, encoded as requested by the
-<tt class="docutils literal"><span class="pre">xsl:output</span></tt> element in the stylesheet.  If you want a Python unicode string
-instead, you should set this encoding to <tt class="docutils literal"><span class="pre">UTF-8</span></tt> (unless the <span class="incremental">ASCII</span> default
-is sufficient).  This allows you to call the builtin <tt class="docutils literal"><span class="pre">unicode()</span></tt> function on
-the result:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="nb">unicode</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">u&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>You can use other encodings at the cost of multiple recoding.  Encodings that
-are not supported by Python will result in an error:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:output encoding=&quot;UCS4&quot;/&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select=&quot;/a/b/text()&quot; /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">unicode</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="gr">LookupError: unknown encoding</span>: <span class="n">UCS4</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="stylesheet-parameters">
-<h3><a class="toc-backref" href="#id14">Stylesheet parameters</a><a class="headerlink" href="#stylesheet-parameters" title="Permalink to this headline">¶</a></h3>
-<p>It is possible to pass parameters, in the form of XPath expressions, to the
-XSLT template:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:param name=&quot;a&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select=&quot;$a&quot; /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-</pre></div>
-</div>
-<p>The parameters are passed as keyword parameters to the transform call.
-First, let&#8217;s try passing in a simple integer expression:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">&quot;5&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;5&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>You can use any valid XPath expression as parameter value:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">&quot;/a/b/text()&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>It&#8217;s also possible to pass an XPath object as a parameter:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="n">etree</span><span class="o">.</span><span class="n">XPath</span><span class="p">(</span><span class="s">&quot;/a/b/text()&quot;</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>Passing a string expression looks like this:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">&quot;&#39;A&#39;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;A&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>To pass a string that (potentially) contains quotes, you can use the
-<tt class="docutils literal"><span class="pre">.strparam()</span></tt> class method.  Note that it does not escape the
-string.  Instead, it returns an opaque object that keeps the string
-value.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">plain_string_value</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="o">.</span><span class="n">strparam</span><span class="p">(</span>
-<span class="gp">... </span>                         <span class="sd">&quot;&quot;&quot; It&#39;s &quot;Monty Python&quot; &quot;&quot;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="n">plain_string_value</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt; It\&#39;s &quot;Monty Python&quot; &lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>If you need to pass parameters that are not legal Python identifiers,
-pass them inside of a dictionary:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:param name=&quot;non-python-identifier&quot; /&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select=&quot;$non-python-identifier&quot; /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;&#39;&#39;&#39;</span><span class="p">))</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">,</span> <span class="o">**</span><span class="p">{</span><span class="s">&#39;non-python-identifier&#39;</span><span class="p">:</span> <span class="s">&#39;5&#39;</span><span class="p">})</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;5&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="errors-and-messages">
-<h3><a class="toc-backref" href="#id15">Errors and messages</a><a class="headerlink" href="#errors-and-messages" title="Permalink to this headline">¶</a></h3>
-<p>Like most of the processing oriented objects in lxml.etree, <tt class="docutils literal"><span class="pre">XSLT</span></tt>
-provides an error log that lists messages and error output from the
-last run.  See the <a class="reference external" href="parsing.html#error-log">parser documentation</a> for a description of the
-error log.</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xslt_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&#39;&#39;</span><span class="se">\</span>
-<span class="gp">... </span><span class="s">&lt;xsl:stylesheet version=&quot;1.0&quot;</span>
-<span class="gp">... </span><span class="s">    xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;xsl:template match=&quot;/&quot;&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;xsl:message terminate=&quot;no&quot;&gt;STARTING&lt;/xsl:message&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;foo&gt;&lt;xsl:value-of select=&quot;/a/b/text()&quot; /&gt;&lt;/foo&gt;</span>
-<span class="gp">... </span><span class="s">        &lt;xsl:message terminate=&quot;no&quot;&gt;DONE&lt;/xsl:message&gt;</span>
-<span class="gp">... </span><span class="s">    &lt;/xsl:template&gt;</span>
-<span class="gp">... </span><span class="s">&lt;/xsl:stylesheet&gt;&#39;&#39;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_root</span><span class="p">)</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">doc_root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">&#39;&lt;a&gt;&lt;b&gt;Text&lt;/b&gt;&lt;/a&gt;&#39;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc_root</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;Text&lt;/foo&gt;\n&#39;</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span><span class="o">.</span><span class="n">error_log</span>
-<span class="go">&lt;string&gt;:0:0:ERROR:XSLT:ERR_OK: STARTING</span>
-<span class="go">&lt;string&gt;:0:0:ERROR:XSLT:ERR_OK: DONE</span>
-
-<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">transform</span><span class="o">.</span><span class="n">error_log</span><span class="p">:</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;message from line </span><span class="si">%s</span><span class="s">, col </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span>
-<span class="gp">... </span>               <span class="n">entry</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">column</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;domain: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%d</span><span class="s">)&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">domain_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">domain</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;type: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%d</span><span class="s">)&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">type_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">type</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;level: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%d</span><span class="s">)&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">level_name</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">level</span><span class="p">))</span>
-<span class="gp">... </span>    <span class="k">print</span><span class="p">(</span><span class="s">&#39;filename: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">entry</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
-<span class="go">message from line 0, col 0: STARTING</span>
-<span class="go">domain: XSLT (22)</span>
-<span class="go">type: ERR_OK (0)</span>
-<span class="go">level: ERROR (2)</span>
-<span class="go">filename: &lt;string&gt;</span>
-<span class="go">message from line 0, col 0: DONE</span>
-<span class="go">domain: XSLT (22)</span>
-<span class="go">type: ERR_OK (0)</span>
-<span class="go">level: ERROR (2)</span>
-<span class="go">filename: &lt;string&gt;</span>
-</pre></div>
-</div>
-<p>Note that there is no way in XSLT to distinguish between user
-messages, warnings and error messages that occurred during the
-run. <tt class="docutils literal"><span class="pre">libxslt</span></tt> simply does not provide this information.  You can
-partly work around this limitation by making your own messages
-uniquely identifiable, e.g. with a common text prefix.</p>
-</div>
-<div class="section" id="the-xslt-tree-method">
-<h3><a class="toc-backref" href="#id16">The <tt class="docutils literal"><span class="pre">xslt()</span></tt> tree method</a><a class="headerlink" href="#the-xslt-tree-method" title="Permalink to this headline">¶</a></h3>
-<p>There&#8217;s also a convenience method on ElementTree objects for doing XSL
-transformations.  This is less efficient if you want to apply the same XSL
-transformation to multiple documents, but is shorter to write for one-shot
-operations, as you do not have to instantiate a stylesheet yourself:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">xslt</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">&quot;&#39;A&#39;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;A&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-<p>This is a shortcut for the following code:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">transform</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XSLT</span><span class="p">(</span><span class="n">xslt_tree</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">&quot;&#39;A&#39;&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
-<span class="go">&#39;&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;foo&gt;A&lt;/foo&gt;\n&#39;</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="dealing-with-stylesheet-complexity">
-<h3><a class="toc-backref" href="#id17">Dealing with stylesheet complexity</a><a class="headerlink" href="#dealing-with-stylesheet-complexity" title="Permalink to this headline">¶</a></h3>
-<p>Some applications require a larger set of rather diverse stylesheets.
-lxml.etree allows you to deal with this in a number of ways.  Here are
-some ideas to try.</p>
-<p>The most simple way to reduce the diversity is by using XSLT
-parameters that you pass at call time to configure the stylesheets.
-The <tt class="docutils literal"><span class="pre">partial()</span></tt> function in the <tt class="docutils literal"><span class="pre">functools</span></tt> module of Python 2.5
-may come in handy here.  It allows you to bind a set of keyword
-arguments (i.e. stylesheet parameters) to a reference of a callable
-stylesheet.  The same works for instances of the <tt class="docutils literal"><span class="pre">XPath()</span></tt>
-evaluator, obviously.</p>
-<p>You may also consider creating stylesheets programmatically.  Just
-create an XSL tree, e.g. from a parsed template, and then add or
-replace parts as you see fit.  Passing an XSL tree into the <tt class="docutils literal"><span class="pre">XSLT()</span></tt>
-constructor multiple times will create independent stylesheets, so
-later modifications of the tree will not be reflected in the already
-created stylesheets.  This makes stylesheet generation very straight
-forward.</p>
-<p>A third thing to remember is the support for <a class="reference external" href="extensions.html#xpath-extension-functions">custom extension
-functions</a> and <a class="reference external" href="extensions.html#xslt-extension-elements">XSLT extension elements</a>.  Some things are much
-easier to express in XSLT than in Python, while for others it is the
-complete opposite.  Finding the right mixture of Python code and XSL
-code can help a great deal in keeping applications well designed and
-maintainable.</p>
-</div>
-<div class="section" id="profiling">
-<h3><a class="toc-backref" href="#id18">Profiling</a><a class="headerlink" href="#profiling" title="Permalink to this headline">¶</a></h3>
-<p>If you want to know how your stylesheet performed, pass the <tt class="docutils literal"><span class="pre">profile_run</span></tt>
-keyword to the transform:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="s">&quot;/a/b/text()&quot;</span><span class="p">,</span> <span class="n">profile_run</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">profile</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">xslt_profile</span>
-</pre></div>
-</div>
-<p>The value of the <tt class="docutils literal"><span class="pre">xslt_profile</span></tt> property is an ElementTree with profiling
-data about each template, similar to the following:</p>
-<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;profile&gt;</span>
-  <span class="nt">&lt;template</span> <span class="na">rank=</span><span class="s">&quot;1&quot;</span> <span class="na">match=</span><span class="s">&quot;/&quot;</span> <span class="na">name=</span><span class="s">&quot;&quot;</span> <span class="na">mode=</span><span class="s">&quot;&quot;</span> <span class="na">calls=</span><span class="s">&quot;1&quot;</span> <span class="na">time=</span><span class="s">&quot;1&quot;</span> <span class="na">average=</span><span class="s">&quot;1&quot;</span><span class="nt">/&gt;</span>
-<span class="nt">&lt;/profile&gt;</span>
-</pre></div>
-</div>
-<p>Note that this is a read-only document.  You must not move any of its elements
-to other documents.  Please deep-copy the document if you need to modify it.
-If you want to free it from memory, just do:</p>
-<div class="highlight-pycon"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">result</span><span class="o">.</span><span class="n">xslt_profile</span>
-</pre></div>
-</div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="main.html">
-              <img class="logo" src="_static/python-xml-title.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="main.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">XPath and XSLT with lxml</a><ul>
-<li><a class="reference internal" href="#xpath">XPath</a><ul>
-<li><a class="reference internal" href="#the-xpath-method">The <tt class="docutils literal"><span class="pre">xpath()</span></tt> method</a></li>
-<li><a class="reference internal" href="#namespaces-and-prefixes">Namespaces and prefixes</a></li>
-<li><a class="reference internal" href="#xpath-return-values">XPath return values</a></li>
-<li><a class="reference internal" href="#generating-xpath-expressions">Generating XPath expressions</a></li>
-<li><a class="reference internal" href="#the-xpath-class">The <tt class="docutils literal"><span class="pre">XPath</span></tt> class</a></li>
-<li><a class="reference internal" href="#regular-expressions-in-xpath">Regular expressions in XPath</a></li>
-<li><a class="reference internal" href="#the-xpathevaluator-classes">The <tt class="docutils literal"><span class="pre">XPathEvaluator</span></tt> classes</a></li>
-<li><a class="reference internal" href="#etxpath"><tt class="docutils literal"><span class="pre">ETXPath</span></tt></a></li>
-<li><a class="reference internal" href="#error-handling">Error handling</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#xslt">XSLT</a><ul>
-<li><a class="reference internal" href="#xslt-result-objects">XSLT result objects</a></li>
-<li><a class="reference internal" href="#stylesheet-parameters">Stylesheet parameters</a></li>
-<li><a class="reference internal" href="#errors-and-messages">Errors and messages</a></li>
-<li><a class="reference internal" href="#the-xslt-tree-method">The <tt class="docutils literal"><span class="pre">xslt()</span></tt> tree method</a></li>
-<li><a class="reference internal" href="#dealing-with-stylesheet-complexity">Dealing with stylesheet complexity</a></li>
-<li><a class="reference internal" href="#profiling">Profiling</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h3>This Page</h3>
-  <ul class="this-page-menu">
-    <li><a href="_sources/xpathxslt.txt"
-           rel="nofollow">Show Source</a></li>
-  </ul>
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li><a href="main.html">lxml v2.3 - Processing XML and HTML with Python</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2011, Stefan Behnel et al..
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
-    </div>
-  </body>
-</html>
\ No newline at end of file
index e04c38f..e7bbd09 100644 (file)
@@ -237,9 +237,9 @@ def libraries():
             libs = ['%s_a' % lib for lib in libs]
         libs.extend(['zlib', 'WS2_32'])
     elif OPTION_STATIC:
-        libs = ['z', 'm']
+        libs = ['rt', 'z', 'm']
     else:
-        libs = ['xslt', 'exslt', 'xml2', 'z', 'm']
+        libs = ['xslt', 'exslt', 'rt', 'xml2', 'z', 'm']
     return libs
 
 def library_dirs(static_library_dirs):
index d6a6f22..90b8e97 100644 (file)
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.6.2
+Version: 3.6.3
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
@@ -36,7 +36,7 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         as soon as a maintenance branch has been established.  Note that this
         requires Cython to be installed at an appropriate version for the build.
         
-        3.6.2 (2016-08-18)
+        3.6.3 (2016-08-18)
         ==================
         
         * release without source changes to provide cleanly built Linux wheels
index 9661f0c..12672fb 100644 (file)
@@ -9,6 +9,7 @@ TODO.txt
 buildlibxml.py
 ez_setup.py
 requirements.txt
+setup.cfg
 setup.py
 setupinfo.py
 test.py
@@ -25,10 +26,8 @@ doc/api.txt
 doc/build.txt
 doc/capi.txt
 doc/compatibility.txt
-doc/conf.py
 doc/cssselect.txt
 doc/docstructure.py
-doc/donating.txt
 doc/element_classes.txt
 doc/elementsoup.txt
 doc/extensions.txt
@@ -50,7 +49,6 @@ doc/resolvers.txt
 doc/rest2html.py
 doc/rest2latex.py
 doc/sax.txt
-doc/sitemap.txt
 doc/test.xml
 doc/tutorial.txt
 doc/valgrind.txt
@@ -60,17 +58,13 @@ doc/html/FAQ.html
 doc/html/api.html
 doc/html/build.html
 doc/html/capi.html
-doc/html/changes-3.5.0.beta1.html
-doc/html/changes-3.5.0.html
-doc/html/changes-3.5.dev.html
-doc/html/changes-3.6.0.html
+doc/html/changes-3.6.3.html
 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/funding.html
 doc/html/html5parser.html
 doc/html/index.html
 doc/html/installation.html
@@ -550,6 +544,7 @@ doc/licenses/BSD.txt
 doc/licenses/GPL.txt
 doc/licenses/ZopePublicLicense.txt
 doc/licenses/elementtree.txt
+doc/pdf/pubkey.asc
 doc/s5/Makefile
 doc/s5/lxml-ep2008.html
 doc/s5/lxml-ep2008.txt
@@ -572,81 +567,6 @@ doc/s5/ui/default/s5-core.css
 doc/s5/ui/default/slides.css
 doc/s5/ui/default/slides.js
 doc/s5/ui/default/tagpython.png
-doc/sphinx/FAQ.html
-doc/sphinx/Makefile
-doc/sphinx/api.html
-doc/sphinx/build.html
-doc/sphinx/capi.html
-doc/sphinx/compatibility.html
-doc/sphinx/cssselect.html
-doc/sphinx/element_classes.html
-doc/sphinx/elementsoup.html
-doc/sphinx/extensions.html
-doc/sphinx/genindex.html
-doc/sphinx/html5parser.html
-doc/sphinx/index.html
-doc/sphinx/intro.html
-doc/sphinx/lxml-source-howto.html
-doc/sphinx/lxml2.html
-doc/sphinx/lxmlhtml.html
-doc/sphinx/main.html
-doc/sphinx/memorymanagement.html
-doc/sphinx/objectify.html
-doc/sphinx/parsing.html
-doc/sphinx/performance.html
-doc/sphinx/resolvers.html
-doc/sphinx/sax.html
-doc/sphinx/search.html
-doc/sphinx/sitemap.html
-doc/sphinx/tutorial.html
-doc/sphinx/valgrind.html
-doc/sphinx/validation.html
-doc/sphinx/xpathxslt.html
-doc/sphinx/_images/tagpython.png
-doc/sphinx/_sources/FAQ.txt
-doc/sphinx/_sources/api.txt
-doc/sphinx/_sources/build.txt
-doc/sphinx/_sources/capi.txt
-doc/sphinx/_sources/compatibility.txt
-doc/sphinx/_sources/cssselect.txt
-doc/sphinx/_sources/element_classes.txt
-doc/sphinx/_sources/elementsoup.txt
-doc/sphinx/_sources/extensions.txt
-doc/sphinx/_sources/html5parser.txt
-doc/sphinx/_sources/index.txt
-doc/sphinx/_sources/intro.txt
-doc/sphinx/_sources/lxml-source-howto.txt
-doc/sphinx/_sources/lxml2.txt
-doc/sphinx/_sources/lxmlhtml.txt
-doc/sphinx/_sources/main.txt
-doc/sphinx/_sources/memorymanagement.txt
-doc/sphinx/_sources/objectify.txt
-doc/sphinx/_sources/parsing.txt
-doc/sphinx/_sources/performance.txt
-doc/sphinx/_sources/resolvers.txt
-doc/sphinx/_sources/sax.txt
-doc/sphinx/_sources/sitemap.txt
-doc/sphinx/_sources/tutorial.txt
-doc/sphinx/_sources/valgrind.txt
-doc/sphinx/_sources/validation.txt
-doc/sphinx/_sources/xpathxslt.txt
-doc/sphinx/_sources/html/api/api-objects.txt
-doc/sphinx/_sources/licenses/BSD.txt
-doc/sphinx/_sources/licenses/GPL.txt
-doc/sphinx/_sources/licenses/ZopePublicLicense.txt
-doc/sphinx/_sources/licenses/elementtree.txt
-doc/sphinx/_sources/s5/lxml-ep2008.txt
-doc/sphinx/_static/basic.css
-doc/sphinx/_static/default.css
-doc/sphinx/_static/pygments.css
-doc/sphinx/_static/sphinxdoc.css
-doc/sphinx/_static/tagpython-big.png
-doc/sphinx/html/api/api-objects.html
-doc/sphinx/licenses/BSD.html
-doc/sphinx/licenses/GPL.html
-doc/sphinx/licenses/ZopePublicLicense.html
-doc/sphinx/licenses/elementtree.html
-doc/sphinx/s5/lxml-ep2008.html
 samples/simple-ns.xml
 samples/simple.xml
 src/local_doctest.py
index 1077615..0c3dd59 100644 (file)
@@ -1,4 +1,8 @@
 
+
+[source]
+Cython>=0.20
+
 [cssselect]
 cssselect>=0.7
 
@@ -6,7 +10,4 @@ cssselect>=0.7
 html5lib
 
 [htmlsoup]
-BeautifulSoup4
-
-[source]
-Cython>=0.20
+BeautifulSoup4
\ No newline at end of file
index ff000c1..53d3e05 100644 (file)
@@ -1,3 +1,3 @@
 #ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "3.6.2"
+#define LXML_VERSION_STRING "3.6.3"
 #endif
index ccece43..58110d9 100644 (file)
@@ -4,59 +4,75 @@
 {
     "distutils": {
         "depends": [
-            "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/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/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/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", 
+            "/usr/lib/python2.7/dist-packages/lxml/includes/etree_defs.h", 
+            "/usr/lib/python2.7/dist-packages/lxml/includes/lxml-version.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/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/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/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": [
-            "/usr/include/libxml2",
+            "/usr/include/libxml2", 
             "src/lxml/includes"
-        ],
+        ], 
         "libraries": [
-            "xslt",
-            "exslt",
-            "xml2",
-            "z",
+            "xslt", 
+            "exslt", 
+            "rt", 
+            "xml2", 
+            "z", 
             "m"
         ]
     }
@@ -6358,7 +6374,7 @@ static char __pyx_k_Input_object_has_no_document_s[] = "Input object has no docu
 static char __pyx_k_Invalid_attribute_dictionary_s[] = "Invalid attribute dictionary: %s";
 static char __pyx_k_XPath_evaluator_locking_failed[] = "XPath evaluator locking failed";
 static char __pyx_k_cannot_append_parent_to_itself[] = "cannot append parent to itself";
-static char __pyx_k_home_stefan_source_Python_lxml[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/lxml.etree.pyx";
+static char __pyx_k_home_stefan_source_Python_lxml[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx";
 static char __pyx_k_http_www_w3_org_2001_XMLSchema[] = "http://www.w3.org/2001/XMLSchema";
 static char __pyx_k_invalid_node_type_d_expected_d[] = "invalid node type %d, expected %d";
 static char __pyx_k_s_s_object_name_r_type_r_occur[] = "<%s.%s object name=%r type=%r occur=%r at 0x%x>";
@@ -6512,14 +6528,14 @@ static char __pyx_k_empty_namespace_prefix_is_not_su[] = "empty namespace prefix
 static char __pyx_k_empty_prefix_is_not_supported_in[] = "empty prefix is not supported in XPath";
 static char __pyx_k_extensions_must_have_non_empty_n[] = "extensions must have non empty names";
 static char __pyx_k_extensions_must_not_have_empty_n[] = "extensions must not have empty namespaces";
-static char __pyx_k_home_stefan_source_Python_lxml_2[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/xmlerror.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_3[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/classlookup.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_4[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/nsclasses.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_5[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/parser.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_6[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/parsertarget.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_7[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/xmlid.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_8[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/cleanup.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_9[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/extensions.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_2[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_3[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_4[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_5[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_6[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_7[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_8[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_9[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi";
 static char __pyx_k_http_codespeak_net_lxml_objectif[] = "http://codespeak.net/lxml/objectify/pytype";
 static char __pyx_k_http_exslt_org_regular_expressio[] = "http://exslt.org/regular-expressions";
 static char __pyx_k_http_www_w3_org_1999_02_22_rdf_s[] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
@@ -6538,8 +6554,8 @@ static char __pyx_k_setting_default_namespace_is_not[] = "setting default namesp
 static char __pyx_k_this_element_does_not_have_child[] = "this element does not have children or attributes";
 static char __pyx_k_unsupported_element_type_for_top[] = "unsupported element type for top-level node: %d";
 static char __pyx_k_The_custom_resolver_registry_of_2[] = "The custom resolver registry of the last (or current) parser run.\n        ";
-static char __pyx_k_home_stefan_source_Python_lxml_10[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/xpath.pxi";
-static char __pyx_k_home_stefan_source_Python_lxml_11[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/xslt.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_10[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi";
+static char __pyx_k_home_stefan_source_Python_lxml_11[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi";
 static char __pyx_k_Error_executing_extension_elemen_2[] = "Error executing extension element '%s'";
 static char __pyx_k_Error_while_parsing_an_XML_docum_2[] = "Error while parsing an XML document as XML Schema.\n    ";
 static char __pyx_k_Error_while_parsing_an_XML_docum_3[] = "Error while parsing an XML document as Schematron schema.\n    ";
index 0a4cf59..3f54f37 100644 (file)
@@ -1542,7 +1542,7 @@ static char __pyx_k_index_must_be_enclosed_in[] = "index must be enclosed in []"
 static char __pyx_k_Type_name_must_be_a_string[] = "Type name must be a string";
 static char __pyx_k_invalid_types_for_operator[] = "invalid types for * operator";
 static char __pyx_k_ObjectifyElementClassLookup[] = "ObjectifyElementClassLookup";
-static char __pyx_k_home_stefan_source_Python_lxml[] = "/home/stefan/source/Python/lxml/lxml-hg/src/lxml/lxml.objectify.pyx";
+static char __pyx_k_home_stefan_source_Python_lxml[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx";
 static char __pyx_k_http_www_w3_org_2001_XMLSchema[] = "http://www.w3.org/2001/XMLSchema";
 static char __pyx_k_index_not_allowed_on_root_node[] = "index not allowed on root node";
 static char __pyx_k_The_lxml_objectify_module_imple[] = "\nThe ``lxml.objectify`` module implements a Python object API for XML.\nIt is based on `lxml.etree`.\n";
index 61826cb..cadac92 100755 (executable)
@@ -38,11 +38,11 @@ prepare_system() {
 
 build_wheels() {
     # Compile wheels for all python versions
+    test -e "$SDIST" && source="$SDIST" || source=
     for PYBIN in /opt/python/*/bin; do
-        test -e "$SDIST" && source="$SDIST" || source=
         # Install build requirements if we need them and file exists
-        test -z "$SDIST" -a -e "$REQUIREMENTS" \
-            && ${PYBIN}/pip install -r "$REQUIREMENTS"
+        test -n "$source" -o ! -e "$REQUIREMENTS" \
+            || ${PYBIN}/pip install -r "$REQUIREMENTS"
 
         build_wheel "$source"
     done
index b727628..4a788a0 100644 (file)
@@ -1 +1 @@
-3.6.2
+3.6.3